构建一个可以使用多种配置多次安装同一包(到不同文件夹)的安装程序

Kie*_*ton 5 .net c# installation service wix

我们的设置有点奇怪,这是因为我们向客户提供软件的托管安装,并且每个客户端可能使用我们软件的不同版本,并使用单独的数据库运行。

我们还允许客户(根据不同的许可方案)在他们自己的机器上本地安装我们的软件。

这使得为​​我们的应用程序之一(.NET Windows 服务)构建安装包 MSI(我们正在使用 WIX)相当困难,而且我有一个主要的绊脚石。

我不知道如何让一个版本(MyApp V2.0.0)的安装程序可以在一台计算机上多次安装,并具有以下属性:

  1. 添加/删除程序中的应用程序名称:“MyApp (CUSTOMERNAME)”,其中 CUSTOMERNAME 在安装过程中定义为 GUI 的一部分。

  2. 应用程序的每个实例都安装到 \Program Files\Company\MyApp (CUSTOMERNAME) 中。

  3. 创建/更新了名为“MyApp (CUSTOMERNAME)”的服务。

  4. 允许单个安装升级而不影响其他安装。

基本上,影响一个实例的安装不应以任何方式影响任何其他实例。

有谁知道如何实现这一点或者是否有任何其他可用的技术?

谢谢。

sas*_*ont 2

请参阅有关安装产品和补丁的多个实例的Microsoft 文档。

基本上,您无法在运行时在 MSI“内部”执行此操作(在不破坏 Windows Installer 的其他核心功能的情况下,在这种情况下您最好只使用非 MSI 解决方案,例如 NSIS)

如果您想创建一个真正的动态系统,其中最终用户可以在运行时定义多个实例,您需要创建一个引导程序来提示用户输入信息,动态生成 MST,然后启动 MSI所需的参数。或者,您可以根据每个客户自行创建 MST(编写脚本相当简单。查看 Windows SDK 中提供的示例)

据我记忆,上个月WiX 列表上有人讨论过,有人试图在使用 WiX 在同一服务器上安装多个网站时这样做。如果你能找到相关的帖子,应该会有比我更多的回复:)