Wix:每个组件一个文件或每个组件多个文件?

Nes*_*tor 64 windows-installer wix wix3

我应该将我想要安装的所有文件包装在单个组件中吗?将多个文件放在一个组件中有什么好处?

Wim*_*nen 83

"每个组件一个文件"的一个原因是弹性.启动应用程序时,Windows Installer可以检查是否缺少任何组件的键路径.如果缺少密钥路径,则重新安装/修复组件.

如果组件有多个文件,则只有一个文件可以是keypath.在威克斯可以通过设置指示此KeyPath=yes一上文件的元素.其他文件将不受Windows Installer弹性的完全保护.只有在丢失密钥路径文件时才会重新安装它们.

拥有"每个组件一个文件"的另一个原因是将文件安装到可能已存在的位置(例如,应用程序升级或安装时c:\windows\system32).Windows安装程序通过检查密钥路径来确定是否需要安装组件.如果密钥路径是文件且文件已经存在(具有相同版本或更高版本),则不会安装该组件.如果组件中的其他文件实际上需要安装/升级,则会出现问题.

  • 我不明白为什么Wix不会暗中支持它:(((为什么我要将所有这些样板写入包含每个文件的单独组件中). (10认同)
  • 这是一个很好的答案,但没有说明为什么反向是有用的.这是合理的,因为我只知道一个优点:在安装过程中保存一些注册时间,因为每个组件都已注册,但每个组件都没有.这通常不是一个很好的权衡,因为它会杀死弹性并阻碍升级,因此更加关注wcoenen的建议. (7认同)

Lin*_*nda 8

我遵循InstallShield也使用的Microsoft方法:http://msdn.microsoft.com/en-us/library/aa368269(VS.85).aspx

上述链接给出了这种方法的优点.