首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用WIX升级版本

使用WIX升级版本
EN

Stack Overflow用户
提问于 2016-07-06 12:07:37
回答 3查看 1.6K关注 0票数 1

我已经使用WIX工具集(3.10)制作了一个安装程序。我想要升级,但我不能让它工作。每次我运行msi时,它都会安装另一个版本。我不知道出了什么问题。有人能告诉我吗?

代码语言:javascript
复制
<Product Id="*"
       Name="$(var.PRODUCTNAME)"
       Language="1033"
       Version="$(var.PRODUCTVERSION)"
       Manufacturer="Manufacturer"
       UpgradeCode="UPGRADE_CODE"
       >
<Package InstallerVersion="200"
         Compressed="yes"
         InstallScope="perMachine" />

<MajorUpgrade Schedule="afterInstallInitialize"
              AllowDowngrades="no"
              AllowSameVersionUpgrades="no"
              DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<MediaTemplate EmbedCab="yes" />
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-07-06 15:29:04

AllowSameVersionUpgrades=的“是”可能会解决这个问题。在测试升级时,您需要始终在安装程序之间更新版本(前3部分之一),或者只允许进行相同的版本升级。

来自wix网站

当设置为no (默认值)时,MSI允许安装具有相同版本和升级代码(但不同的产品代码)的产品,并将其视为两种产品。当设置为“是”时,WiX设置msidbUpgradeAttributesVersionMaxInclusive属性,该属性告诉MSI将具有相同版本的产品视为主要升级。

因此,您的安装认为这两个安装是独立的,即使它们共享相同的升级代码,这就是为什么您在add remove程序列表中获得两个副本的原因。

票数 0
EN

Stack Overflow用户

发布于 2016-07-06 14:08:55

我对UpgradeCode使用GUID (我想这就是UPGRADE_CODE的意思)。

还可以设置REINSTALLMODE属性以更改重新安装行为。

看起来可能是这样的:

代码语言:javascript
复制
<SetProperty Id="REINSTALLMODE" Value="amus" After="FindRelatedProducts">Installed AND REMOVE&lt;&gt;"ALL"</SetProperty>

请注意,无论安装的版本如何,a都会重新安装您的产品。但是您可以查找安装程序需要的字符。

对于Value="amus",您可以参考Microsoft文档这里

票数 0
EN

Stack Overflow用户

发布于 2016-07-08 10:31:06

除了MajorUpgrade属性之外,对于将来的版本,UpgradeCode不进行更改也是至关重要的。这可能就是问题所在吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38223616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档