使用Wix Toolset安装Application的多个实例

时间:2015-11-05 09:20:57

标签: wix multiple-instances

我只需要安装我的应用程序的多个实例,将它们保存在不同的文件夹中,桌面上没有快捷方式。 换句话说,当应用程序已经安装在文件夹中时,如果我再次双击.msi文件,安装程序不应该问我是否要修复或删除我的应用程序,但它应该允许安装它在一个新文件夹中。 我该如何解决这个问题?

2 个答案:

答案 0 :(得分:4)

我之前曾经使用过这种安装,我同意@Nikolay - 这是一个例外,而不是基于Windows Installer的安装规则。 Component rules通常很难跟上,而多个实例方面会增加一些复杂性。所以,在你走这条路之前要三思而后行。

复杂,仍有可能。多年前我用WiX 3.6发布了the article of how to start authoring multiple instance installations。请注意,此版本的WiX显着简化了它。这不是一个简短的阅读,所以这是一个快速摘要:

  • 您将无法实现“通过双击MSI文件安装每个新实例”行为。您必须拥有一个引导程序 - 将正确的命令行参数传递给msiexec.exe
  • 不要试图支持无限数量的实例 - 尝试坚持使用相当大的数字。你有没有想过有人在机器上安装你的应用程序10次? 50? 100?做出明智的选择 - 这将是您<Instance/>元素的数量。
  • 虽然您只需要使用MultiInstance属性来装饰非文件数据组件,但如果将其添加到所有组件中,我认为它不会中断。
  • 虽然我在该帖子中解释了多个实例的修补,但如果我别无选择,我只会在生产中使用它。

答案 1 :(得分:2)

在Windows中,您要求的是不正常的。通常,每个程序(产品)只安装一次。即每个安装包都有它的ID(称为&#34; ProductID&#34;)。如果该ID已在系统中注册为已安装,则系统将不允许您安装具有相同ProductID的第二个产品,但开始更改/删除。

你能做什么:

  • 不要使用Windows Installer(和WIX),例如使用ZIP,或使用某些自解压存档,或其他未在系统中注册已安装产品的程序。
  • 如果您因任何原因需要MSI和Windows Installer,请在安装前使用命令行更改产品ID。尝试谷歌搜索&#34;使用转换多次安装相同的MSI&#34;。因此,您可以在安装之前对每个转换的MSI进行相同的转换,以使其看起来与系统不同。
  • 按用户安装,如果这对您来说足够好(即不要安装到Program Files,安装到用户文件夹)
  • 也许还有其他选择...