Windows Installer 支持通过实例转换安装多个实例。本质上,您可以使用新的产品代码升级代码安装软件包,并且可以单独管理不同的产品。
您将一个InstanceTransforms
元素添加到您的包中,并Instance
为除了默认实例之外的每个要支持的自定义实例添加一个子元素:
<InstanceTransforms Property="INSTANCEID">
<Instance Id="P1" ProductCode="GUID1" UpgradeCode="GUID2" ProductName="My App P1" />
<Instance Id="P2" ProductCode="GUID3" UpgradeCode="GUID4" ProductName="My App P2" />
</InstanceTransforms>
这允许您安装最多三个副本:默认实例以及实例 P1 和 P2。要安装每个,请使用以下命令之一:
msiexec /i MyApp.msi
msiexec /i MyApp.msi MSINEWINSTANCE=1 TRANSFORMS=":P1"
msiexec /i MyApp.msi MSINEWINSTANCE=1 TRANSFORMS=":P2"
然后在您的非文件组件上,添加该Component/@MultiInstance="yes"
属性。这将为每个转换创建一个新的组件 guid,因此您可以安装组件的多个副本(每个转换一个)。
这篇博文“重温:多实例安装和补丁”更详细地描述了InstanceTransforms
元素和Component/@MultiInstance
属性的使用。