2

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

另外,为什么每次构建时都使用热量自动收集文件这样不?如果您在开发过程中添加了很多视图、模型、控制器,那么当 WIX 已经在 VS 和源代码控制中处理时,必须手动更新 WIX 中的文件结构是一件非常痛苦的事情。

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

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

4

1 回答 1

4

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属性的使用。

于 2013-09-11T06:11:33.943 回答