【发布时间】:2021-09-21 08:17:45
【问题描述】:
我有一个简单的安装程序,我希望能够执行升级和正确卸载,而不必每次都手动生成新 ID。
这是我的代码(相关部分):
<Product Id="*" UpgradeCode="$(var.UpgradeCode)" Name="$(var.ProductName)"
Language="!(loc.Language)" Codepage='1252' Version="$(var.ProductVersion)" Manufacturer="$(var.Manufacturer)">
<Package Id='*' Keywords='Installer' Description="My Installer" Manufacturer='$(var.Manufacturer)'
InstallPrivileges='elevated' InstallScope='perMachine'
InstallerVersion='200' Compressed='yes'/>
<MajorUpgrade Schedule="afterInstallValidate"
DowngradeErrorMessage="A later version of [ProductName] is already installed"
AllowSameVersionUpgrades="yes"
AllowDowngrades="no" />
<InstallUISequence>
<Show Dialog="WelcomeDlg" After="CostFinalize" />
</InstallUISequence>
</Product>
问题是我似乎无法使用相同的代码/安装程序进行升级和卸载。
如果我使用 Product Id="*",我可以执行升级,但是当我尝试卸载时,只会删除添加/删除程序中的条目。但是,已安装的文件仍保留在 Program Files 中。
如果我使用 Product Id="some random guid",我可以卸载,但我无法再执行升级。
所以我的问题是:
我可以使用通配符 ID(即 Product Id="*")执行升级和卸载,还是每次都必须手动生成一个新 ID?
谢谢!
【问题讨论】:
标签: wix windows-installer upgrade uninstallation