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

我是否应该将所有要安装到单个组件的文件进行包装? 将多个文件放在一个组件中的优点是什么?

“每个组件一个文件”的一个原因是弹性 。 当应用程序启动时,Windows安装程序可以检查是否缺less任何组件的keypath 。 如果缺lesskeypath,则重新安装/修复该组件。

如果一个组件有多个文件,那么只有一个文件可以是关键path。 在wix中,你可以通过在File元素上设置KeyPath=yes来指明这一点。 其他文件将不会完全受到Windows安装程序弹性的保护。 只有在keypath文件丢失的情况下才能重新安装。

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

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

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