Ale*_*dru 7 .net windows installer windows-installer wix
WiX抱怨(赔率对吗?):
错误95组件'blahblah'的密钥文件的路径为'TARGETDIR \ blah.dll'。由于此路径未植于标准目录之一(例如ProgramFilesFolder)中,因此该组件不适合具有自动生成的guid的条件。(如果路径包含可能的标准目录,例如在ProgramFilesFolder下嵌套名称为“ Common Files”的目录,也会发生此错误。)
但是我想要一个自动生成的GUID,并且我不想将TARGETDIR设置为包含ProgramFilesFolder的其他路径,因为我在UI中设置了TARGETDIR甚至允许用户更改它,以便人们可以指定他们要在其上安装应用程序的路径...某人如何获得此功能?可能吗?我的意思是,我可以两全其美吗?为什么这么重要?WiX有时过于严格...
您所需要做的就是设置Directory / @ ComponentGuidGenerationSeed,然后可以对非标准文件夹使用自动导航。
Ale*_*dru -1
我刚刚得到它......有点烦人,但它工作正常......
我之前正在修改 TARGETDIR 并使用它...但是现在,我意识到我可以轻松地使用 INSTALLDIR ...例如,我重构了我的目录结构,如下所示:
<Directory Id='TARGETDIR' Name='SourceDir'>
...
<Directory Id="ProgramFilesFolder">
<Directory Id="blahFolder" Name="blah">
<Directory Id="INSTALLFOLDER" Name="blah"/>
</Directory>
</Directory>
</Directory>
Run Code Online (Sandbox Code Playgroud)
我可以让组件引用 INSTALLFOLDER,它会自动为它们生成 GUID:
<ComponentGroup Id='blahgroup'>
<Component Id='blahId' Directory='INSTALLFOLDER' Transitive='no'>
<RegistryKey Root='HKLM' Key='Software\blah\blah' ForceCreateOnInstall='no' ForceDeleteOnUninstall='no'>
<RegistryValue Type='string' Name='blah' Value='BLAH' />
</RegistryKey>
</Component>
...
</ComponentGroup>
Run Code Online (Sandbox Code Playgroud)
但在我的用户界面中,它很好,因为我可以很好地修改安装文件夹路径:
<Product ...>
...
<CustomAction Id='SetInstallFolder' Property='INSTALLFOLDER' Value='[ProgramFilesFolder]blah\blah\'/>
...
</Product>
Run Code Online (Sandbox Code Playgroud)
然后我可以强制 INSTALLFOLDER 指向我想要的任何位置:
<InstallUISequence>
<Custom Action='SetInstallFolder' Sequence='1'/>
...
</InstallUISequence>
<AdminUISequence>
<Custom Action='SetInstallFolder' Sequence='1'/>
...
</AdminUISequence>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1954 次 |
最近记录: |