我应该将所有要安装的文件包装在单个组件中吗? 将多个文件放在一个组件中有什么好处?
答案 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
上述链接给出了这种方法的优点。