Wix:在组件,目录,文件,注册表等上使用KeyPath
在使用WiX之后阅读
this answer“每个组件一个文件”方法后,我很好奇,以了解在包括组件,目录,注册表等在其他元素上使用KeyPath属性时最佳做法是什么。
我对任何一般建议感兴趣,但这里有几个具体问题: >如果我有一个空的目录,安装程序需要创建我应该 谢谢! 编辑#1 – 澄清re:目录 我知道目录没有KeyPath,但在我的问题没有明确/详细。 <Directory Id="LOGS" Name="Logs"> <Component Id="LogsDir" Guid="*" KeyPath="yes"> <CreateFolder Directory="LOGS" /> </Component> </Directory>
一般来说,您应该根据KeyPath选项的主要思想做出决定。从
MSDN:
所以,如果您为每个组件创建1个文件,那么当您不小心删除文件时,您将不会面临这种情况,并且修复没有将其返回。如果您为每个组件创建N个文件,则无论如何,您都可以选择其中一个作为KeyPath(并且WiX文档鼓励您明确执行此操作),或者添加额外的注册表项,并将其作为KeyPath。 回到你的问题:
Directory元素没有KeyPath属性。
不,基本上这没有意义。如果Component具有KeyPath =“yes”,则安装此组件的目录将成为关键路径。当您明确地将其设置为File时,显然该文件是一个关键路径。
这听起来像废话。再次,基于KeyPath的一般需要 – 检测组件。为什么需要额外的注册表项来检测文件系统上是否存在文件?对于每个组件场景的N个文件,当您为每个组件(即N个文件)创建1个注册表项,并且让Windows Installer根据该注册表项判断该组件是否被视为“未破碎”,这可能是有意义的。 更新:您不必引入一个注册表项,仅用作一个关键路径来帮助安装程序跟踪一个空文件夹。如果您将KeyPath =’yes’添加到父组件就足够了。 不要使事情复杂化Windows Installer是非常复杂的。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows7安装MySQL-python遇到的坑
- .net – 强制Windows显示系统托盘图标
- Windows XP中的Symlink
- windows-8 – windows 8商店应用程序 – 依赖性问题 – 认证
- Windows – SDL 2.0:在主线程中创建窗口,但是单独执行所有
- Windows 7计划任务命令行
- 如何在Windows上安装和使用cli53工具?
- Windows-8 – HDD序列号在Windows XP,Vista和7中每2个字节翻
- Test-Cluster Powershell cmdlet List vs Validate
- windows-server-2008 – 监控出站DNS(网站)流量