我们现在已经使用WiX一段时间了,尽管人们普遍抱怨易用性,但它还是相当不错.我正在寻找的是有用的建议:
什么是Wix'KeyPath '属性?特别是,它如何适用于以下内容:
<Component Id="ProgramMenuDir" Guid="*">
<RemoveFolder Id="ProgramMenuDir" On="uninstall" />
<RegistryValue Root="HKCU" Key="Software\CompName\AppName"
Type="string" Value="" KeyPath="yes" />
</Component>
Run Code Online (Sandbox Code Playgroud) 我应该何时更改或不更改WIX中的组件GUID? Microsoft SDK信息令人困惑.
Glytzhkof编辑:为了澄清,该问题涉及何时应该为MSI组件更改组件GUID.组件可以通过以下方面进行更改:更改目标路径,向/从同一组件添加或删除文件,添加注册表数据等...这会导致所谓的组件引用问题,即最佳实践在MSI中创建组件.
看完这个答案的"组件一档"的方式使用WiX的时候,我很好奇,想找出使用时,什么是最好的做法KeyPath上的其他元素的属性,包括Component,Directory,Registry等,等.
我对任何一般性建议感兴趣,但这里有几个具体问题:
KeyPath="yes"上Directory或其父Component?如果它不是空的怎么办?KeyPath="yes"每个组件的文件方案,是否有必要或良好做法在其父组件上设置它?KeyPath应该在文件上设置,而是应该为每个文件使用注册表项并KeyPath="yes"在Registry元素上设置...这是真的/必要吗?谢谢!
Directory我知道Directory没有KeyPath,但在我的问题中没有明确/详细.主要是,当我必须创建一个空目录时,我很好奇在组件上使用KeyPath.我看到KeyPath ="yes"就是在父Component上设置的.但这足以让安装程序检测/修复丢失的空文件夹吗?或者是否应该与注册表项一起使用?示例代码段:
<Directory Id="LOGS" Name="Logs">
<Component Id="LogsDir" Guid="*" KeyPath="yes">
<CreateFolder Directory="LOGS" />
</Component>
</Directory>
Run Code Online (Sandbox Code Playgroud) 我正在使用WiX来创建Windows安装程序.不幸的是,我的安装程序会在每次更新时覆盖配置文件.我真正想要的是,如果找不到,安装程序只会创建该文件.
谢谢和问候,forki