【发布时间】:2010-12-15 11:41:45
【问题描述】:
我们的设置有点奇怪,这是因为我们向客户提供软件的托管安装,每个客户可能使用我们软件的不同版本并使用单独的数据库运行。
我们还允许客户(根据不同的许可方案)在他们自己的机器上本地安装我们的软件。
这使得为我们的一个应用程序(一个 .NET windows 服务)构建安装包 MSI(我们使用 WIX)相当困难,而且我有一个主要的绊脚石。
我不知道如何为一个版本 (MyApp V2.0.0) 安装一个安装程序,该安装程序可以在一台具有以下属性的机器上安装多次:
添加/删除程序中的应用名称:“MyApp (CUSTOMERNAME)”,其中 CUSTOMERNAME 在设置过程中定义为 GUI 的一部分。
应用程序的每个实例都安装到 \Program Files\Company\MyApp (CUSTOMERNAME)。
创建/更新了名为“MyApp (CUSTOMERNAME)”的服务。
允许升级单个安装而不影响其他安装。
基本上影响一个实例的安装不应该以任何方式影响任何其他实例。
有没有人知道如何实现这一点或者是否有其他可用的技术?
谢谢。
【问题讨论】:
-
我们公司需要类似的设置。我们管理我们自己的所有软件,所以这是一个内部安装,因此进行非常详细的配置要容易得多。我处理这个问题的方法是使用 ORCA MSI 编辑器 (tinyurl.com/9c9fxr)。在表部分下,选择“InstallExecuteSequence”表,然后找到这些操作:“PublishProduct”、“PublishFeatrues”、“RegisterProduct”和“RegisterUser”,并将它们的条件设置为 0。希望对您有所帮助!我没有“回答”这个问题,因为这不是真正的答案,因为它不允许用户升级产品(或自动卸载)
-
谢谢Scott,这样就可以进行安装了吗?当您尝试卸载添加/删除程序中列出的一个(或唯一一个?不确定?)应用程序时会发生什么?
标签: c# .net installation service wix