我想发布安装项目的setup.msi输出和Setup.BootStrapper项目的setup.exe输出,它会烧毁Setup.msi。因为我想释放它们(setup.msi和amp.exe)所以,安装顺序是不可预测的。如果用户首先安装setup.exe然后安装setup.msi它可以正常工作。它给出了“删除”和“修复”选项。但如果首先安装msi然后使用exe,那么它也会安装setup.exe。因此,它显示了ARP中的两种设置。我该如何解决这个问题?
答案 0 :(得分:1)
在ARP中看到2个条目表示MSI和EXE具有不同的ProductCode值。您可能将Product @ Id属性设置为*。通常这是正确的,但在你的情况下它不是。 MSI和EXE可能也有不同的PackageCode值。 (包@ Id)
两种解决方案:
1)构建EXE然后使用postbuild事件来提取MSI
2)构建EXE和MSI两次,但将GUID生成放入构建自动化中,并将其作为变量传递给WiX构建,以便它们获得相同的值。
答案 1 :(得分:0)
将此语句放在MSI项目中,这将阻止MSI在ARP中创建ICON。
<Property Id="ARPSYSTEMCOMPONENT" Value="1" />