我有一个旧的安装程序,这是一个基本的Visual Studio安装项目,现在它已被WIX安装程序取代。新的Wix安装程序工作正常,期望我有必要。
许多客户端都安装了旧版本,现在,在我们产品的下一版本中,我们需要使用此Wix安装程序。
我需要Wix安装程序来替换旧安装,而不通过控制面板卸载以前的版本。
我尝试过像以前一样使用相同的产品代码,也更改了升级代码,但它不起作用。
是否有人知道是否可以使用 Wix安装程序从 VS安装程序 替换 安装?
维克斯
<?define Product.UpgradeCode = "{60DA573D-4C8A-48CA-ADA5-9C130A7100E8}" ?>
<?define Product.ProductCode = "{1A65C362-E880-4F2A-ADEF-B1D83A87C914}" ?>
<Product Id="$(var.Product.ProductCode)"
Name="My Application"
Language="1033"
Version="$(var.REVISION)"
Manufacturer="My Manufacturer"
UpgradeCode="$(var.Product.UpgradeCode)">
...
...
<MajorUpgrade Schedule="afterInstallInitialize"
DowngradeErrorMessage="A later version of MY PRODUCT is already installed." />
<Upgrade Id="$(var.Product.UpgradeCode)">
<UpgradeVersion Minimum="$(var.BUILD)"
IncludeMinimum="no" OnlyDetect="yes"
Property="NEWERVERSIONDETECTED" />
<UpgradeVersion Maximum="$(var.PREVBUILD)"
IncludeMaximum="yes" OnlyDetect="no"
Property="OLDERVERSIONBEINGUPGRADED" />
</Upgrade>
错误消息
答案 0 :(得分:4)
该错误消息表示您的ProductCode未更改。您希望UpgradeCode相同,但您希望ProductCode在每次构建时都是唯一的。要实现此目的,请将其设置为“*”,编译器将在构建时生成一个。
如果您在“添加删除程序”中安装但获得2个条目,则表示您的MajorUpgrade规则存在问题。
答案 1 :(得分:0)
在 WiX v3.11.2 中,<MajorUpgrade>
可以代替 VS Setup Project 的设置。
在 Product.wxs 中,此代码有效。
<MajorUpgrade DowngradeErrorMessage="Downgrade Error" AllowSameVersionUpgrades="yes" />
并且相同的 UpgradeCode 是不够的用于升级过程。
How do I fix the upgrade logic of a wix setup after changing InstallScope to "perMachine"
例如,在我的项目中, InstallScope = "perMachine" 是 bad ,所以我删除了这个属性。
<Package InstallScope="perMachine"