Wix - 卸载另一个产品的另一个上下文,重新分发MFC

时间:2014-05-16 16:04:29

标签: mfc wix uninstall redistributable

我们想要一个必须安装的安装程序A:

  • 删除另一个产品B(我们知道其产品指南)
  • 重新分配MFC 2008,2010和2012
  • 在HKLM中编写注册表项
每个用户都安装了

B.因为在我们当前的实现中,A使用合并模块重新分配MFC,所以它按机器安装。因此具有相同升级代码的MajorUpgrade不起作用。我们还尝试运行脚本" msiexec / x {PRODUCT GUID OF B} / q"作为安装A期间的自定义操作,但Windows有一个互斥锁(_MSIExecute),每个机器只允许一个执行序列;因此这个想法也不起作用。

我们的想法现在是:

  1. 使用除合并模块之外的其他方式重新分发MFC,并按用户安装A(即使它在HKLM中写入,是的,我知道这是不好的做法,但实现起来很简单)
  2. 将A的安装程序实现为bootstrapper / chainer(因此A的安装程序将是setup.exe之类的文件)并在执行MSI后运行uninstall命令
  3. 你有什么建议?

1 个答案:

答案 0 :(得分:0)

最后我找到了解决方案:

  • 编写一个程序(例如在C#.Net 3.5中),它将安装A.如果此安装成功,我们将卸载B.此外,我们确信C#.Net 3.5已安装在我们客户的计算机上。< / LI>
  • &#34;包覆与#34;上面的程序和使用iexpress的msi。输出将是一个自解压的.exe文件,它将执行上述程序。我们将此文件提供给客户。