我有一个打包了MSI的应用程序,与各种必要的第三方工具一起制作成WiX捆绑包。由于应用程序的工作方式,我已经禁用了MSI中的修改和修复操作,以便在再次安装相同版本之前需要进行完全卸载。
当我单独运行MSI时,它按预期工作:安装程序不能运行两次。当再次运行完全相同的捆绑包时,情况也是如此。但是,仅通过重新构建捆绑包(使用相同的UpgradeCode
和Version
),安装程序会继续进行(这次速度更快),并且我最终会得到已安装程序中的重复条目。我真的希望防止这种情况发生,并使捆绑包像MSI一样工作。
我尝试了在捆绑包上设置各种条件:NOT WixBundleInstalled
、WixBundleInstalled != 1
等,但似乎都没有起作用。
以下是捆绑声明的参考:
<Bundle UpgradeCode="{FAF9CBDD-BE89-4B18-9921-FD5B426B5B0C}" IconSourceFile="$(var.SolutionDir)Resources\product.ico"
Name="Product 4.4" Version="4.4.0.0" Manufacturer="My Company" DisableModify="yes" Condition="NOT (WixBundleInstalled = 1)">
MSIPackage
语句中添加ForcePerMachine="yes"
,但没有帮助。谢谢。 - Torbjörn Bergstedt