我正在使用推荐的方式进行升级(使用升级和 UpgradeVersion 来检测旧版本的产品并使用在 InstallInitialize
之后删除现有产品问题是,在卸载现有产品时,我需要将其他属性传递给安装程序以保留现有数据库。有没有办法做到这一点?
答案 0 :(得分:4)
通过 RemoveExistingProducts 接收的所有产品都是一个额外的属性 UPGRADINGPRODUCTCODE 。此属性设置为与正在删除此其他产品的安装程序的 ProductCode 相匹配。如果您在删除安装程序时遇到此情况,则可以采取相应措施。如果没有,您将需要进行UpgradeVersion OnlyDetect 并阻止它直到它消失,手动调用它或类似的解决方法。
答案 1 :(得分:1)
如果要从命令行卸载,可以使用
msiexec /x c:\Example.msi PROPERTY=VALUE
初始化您的属性。
或者,您可以将属性存储在注册表中并使用以下内容:
<Property Id="PROPNAME">
<RegistrySearch Id="PropNameRegistry" Type="raw" Root="HKLM" Key="Software\MyProduct\MyKey\PropValue" Name="MyPropName" />
</Property>
检索它们。