【问题标题】:Building an installer that can install the same package multiple times (to different folders) with multiple configurations构建一个安装程序,可以使用多种配置多次安装相同的包(到不同的文件夹)
【发布时间】:2010-12-15 11:41:45
【问题描述】:

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

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

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

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

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

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

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

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

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

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

谢谢。

【问题讨论】:

  • 我们公司需要类似的设置。我们管理我们自己的所有软件,所以这是一个内部安装,因此进行非常详细的配置要容易得多。我处理这个问题的方法是使用 ORCA MSI 编辑器 (tinyurl.com/9c9fxr)。在表部分下,选择“InstallExecuteSequence”表,然后找到这些操作:“PublishProduct”、“PublishFeatrues”、“RegisterProduct”和“RegisterUser”,并将它们的条件设置为 0。希望对您有所帮助!我没有“回答”这个问题,因为这不是真正的答案,因为它不允许用户升级产品(或自动卸载)
  • 谢谢Scott,这样就可以进行安装了吗?当您尝试卸载添加/删除程序中列出的一个(或唯一一个?不确定?)应用程序时会发生什么?

标签: c# .net installation service wix


【解决方案1】:

如何使用应用于原始 MSI 的 MSI 转换。为您需要的每个特殊配置进行一次转换。唯一的想法是,为了在一台机器上安装相同的包,您需要更改产品 GUID,我不确定转换是否允许。不过值得研究一下!

【讨论】:

    【解决方案2】:

    请参阅Installing Multiple Instances of Products and Patches 上的 Microsoft 文档。

    基本上,您不能在运行时“在”MSI“内部”执行此操作(在不破坏 Windows Installer 的其他核心功能的情况下,您不妨改用 NSIS 等非 MSI 解决方案)

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

    根据记忆,上个月有人在讨论on the WiX list,有人在使用 WiX 在同一台服务器上安装多个网站时尝试这样做。如果你能找到相关的主题,那么应该有比我的更多的回复:)

    【讨论】:

    • 出色的答案感谢 Sascha,这正是我想要的。现在找到创作实例变换的最简单方法! :)
    • 供我(和其他人)将来参考,适当的线程似乎是n2.nabble.com/…
    • 链接到 n2.nabble 似乎已死。我认为it is now here
    • 哎呀,maybe this one
    猜你喜欢
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 2019-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多