Wix 引导程序:运行前检查是否安装了msi版本

Wix 引导程序:运行前检查是否安装了msi版本,wix,windows-installer,bootstrapper,merge-module,Wix,Windows Installer,Bootstrapper,Merge Module,我正试图找到以下问题的解决方案: 我有许多程序(让我们称它们为奴隶),它们都依赖于一个程序(主程序)。我需要为每个从机分发一个安装程序。此安装程序需要安装主机 我想能够版本这两个部分,所以多个msi的似乎是正确的解决方案,与一个引导链接 我的问题是,如果从属安装程序安装的主安装程序版本与已安装的主安装程序版本相同,则.msi将以修复/删除模式运行 从用户的角度来看,这是不可接受的,只会引起混乱 在尝试运行msi之前,有没有办法检查当前安装的fiels版本 我目前正在使用WIX的setupbld.

我正试图找到以下问题的解决方案:

我有许多程序(让我们称它们为奴隶),它们都依赖于一个程序(主程序)。我需要为每个从机分发一个安装程序。此安装程序需要安装主机

我想能够版本这两个部分,所以多个msi的似乎是正确的解决方案,与一个引导链接

我的问题是,如果从属安装程序安装的主安装程序版本与已安装的主安装程序版本相同,则.msi将以修复/删除模式运行

从用户的角度来看,这是不可接受的,只会引起混乱

在尝试运行msi之前,有没有办法检查当前安装的fiels版本

我目前正在使用WIX的setupbld.exe作为引导程序


任何其他非常受欢迎的解决方案(我也尝试过合并模块,但没有成功,因为版本控制是无用的)

而不是使用
setupbld.exe
(我真的不知道,因为我找不到任何文档),您可以使用msbuild。wix文档已经介绍了如何使用此任务生成安装.NET framework的引导程序。看见这利用了预定义的引导程序包

但是,在这种情况下,您还必须编写自己的引导程序包。一种方法是研究
C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\bootstrapper\packages\
(或中的那些)中现有的引导程序包,然后阅读。该工具也可能有帮助

要确定是否需要安装软件包,可以使用其中一个设置属性,然后在元素下的
InstallCondition
中检查属性值

如果你认为这比应该的更难-我同意,但这是我到目前为止所用的。我还没有尝试过一些替代方案:

  • 名字不好的人 这实际上是一个一般用途 引导生成器
  • 尚未发布的引导程序。我不确定它是否处于可用状态

我最终使用了dotNetInstaller,并发现虽然它并不完美,但比使用Microsoft boostrappers(无法让它们按照我的需要工作)要好。到目前为止,我试图用dotNetInstaller做的每一件事都奏效了。虽然有时需要一些指导。