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

时间:2009-10-21 18:51:32

标签: wix windows-installer wix3

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

2 个答案:

答案 0 :(得分:82)

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

如果某个组件有多个文件,那么只能有一个文件可以作为密钥路径。在wix中,您可以通过在File元素上设置KeyPath=yes来表明这一点。其他文件将不受Windows Installer弹性的完全保护。只有在丢失密钥路径文件时才会重新安装它们。

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

答案 1 :(得分:7)

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

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