我在部署版本之间更改了UIRef标记。
版本1.0中的:<UIRef ID="WixUI_FeatureTree" />
到版本2.0:<UIRef ID="WixUI_Advanced" />
Wix版本3.6
现在,当我运行2.0版安装程序时,它没有检测到 以前的版本,而不是在升级过程中卸载 它会在现有版本旁边安装新版本。
中级版本升级良好(1.0-> 1.1-> 1.2)。
2.0的主要变化是:
删除现有产品定义为:
<InstallExecuteSequence>
<RemoveExistingProducts After='InstallInitialize' />
<Custom Action=...
...
我的产品定义为:
#UpgradeCode# is consistent between versions
#ProductId# is changed between versions
<Product Id="#ProductId"
UpgradeCode="#UpgradeCode#"
Name="!(loc.ApplicationName)"
Language="1033"
Codepage="1252"
Version="2.0.0"
Manufacturer="!(loc.Manufacturer)">
<Package
Id="*"
InstallerVersion="300"
InstallPrivileges="elevated"
Languages="1033"
Compressed="yes"
InstallScope="perMachine"
Manufacturer="!(loc.Manufacturer)"
SummaryCodepage="1252"
Platform="x86"
Description="!(loc.ApplicationName)"/>
<Upgrade Id="#UpgradeCode#">
<UpgradeVersion OnlyDetect="no" Property="PREVIOUSFOUND"
Minimum="1.0.0" IncludeMinimum="yes"
Maximum="2.0.0" IncludeMaximum="no"/>
</Upgrade>
我想知道我能做些什么 强制安装程序检查升级并执行 删除不再处理的先前版本 跟随我的变化。
答案 0 :(得分:1)
在构建日志中,我注意到:
MSI(c)(6C:C4)[12:04:44:624]:FindRelatedProducts:当前安装是按用户。产品“{PRODUCT-GUID}”的相关安装是每台机器。跳绳... 行动结束12:04:44:FindRelatedProducts。返回值1。
我已删除:
<Product ... InstallScope="perMachine" ... />
升级版本时。
我没有意识到升级匹配包含了产品的InstallScope
属性。
我仍然可以使用<UIRef Id="WixUI_Advanced" />
安装每位用户,因此此属性似乎不会影响PerMachine
或PerUser
的选择,因此我已将其重新插入。立即升级再次工作。