使用WIX安装同一IIS站点的并排版本

时间:2013-08-13 16:35:35

标签: wix installer installation wix3.5

是否可以使用WIX来安装同一IIS网站的并排版本。包括单独升级它们的能力?我搜索过高低,在网上找不到任何东西。

另外,为什么使用热量来自动收集文件,每次构建都不是没有?如果你在开发过程中大量添加视图,模型和控制器,那么当它已经在VS和源代码控制中处理时,必须手动更新WIX中的文件结构。

我希望能够在TFS构建期间发布网站,然后收集安装程序的输出。

有没有比WIX更好的方法呢?像Octopus或Web Deploy这样的部署工具不是一个选项,因为它需要是一个安装程序。付费选项也已经出局。

1 个答案:

答案 0 :(得分:4)

Windows Installer支持通过instance transforms安装多个实例。基本上,您可以使用新的产品代码升级代码安装软件包,并且可以单独管理不同的产品。

您在包中添加了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,因此您可以安装组件的多个副本(每个转换一个)。

此博文“Revisited: Multiple Instance installations and patches”介绍了如何更详细地使用InstanceTransforms元素和Component/@MultiInstance属性。