我有一个Wix引导程序包,它安装了几个msi包。我想在卸载这个bundle时删除一些注册表值。问题是,只有在卸载整个bundle(不是其中一个msi包)时才应该删除这些值。我尝试使用WixBundleAction使用一个变量来检测这种情况,并将其作为msiProperty传递给我的包,但它的计算结果总是为0
<MsiPackage Id="Pac" SourceFile="$(var.so)" Compressed="yes" Vital="yes">
<MsiProperty Name="REMOVE_REG" Value="[WixBundleAction]"/>
</MsiPackage>
是否有合适的方法来检测bundle何时正在卸载?
对你的问题的直接回答是,这是一个bug,它总是0,它应该在v3.10和v4.0的最新构建中修复。
真正的答案是你应该在MSI中做所有的注册表操作,而不是引导程序。让Windows安装程序跟踪refcounting, rollback等