gpt4 book ai didi

wix - 使用 Wix 工具集,MajorUpgrade 是否可以设置最低版本

转载 作者:行者123 更新时间:2023-12-04 08:07:59 28 4
gpt4 key购买 nike

我们一直在使用MajorUpgrade wix 3.11.1.2318 中的元素,我们的安装程序没有正确升级。它不是删除文件,而是在添加/删除程序中留下一个额外的条目。在我们的构建过程中,我们将 Version="0.0.0.0"切换为当前版本。
下面是一个简化的示例来展示我们的用法:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension" >


<Product Id="*" Name="My Product" Language="1033" Version="0.0.0.0" Manufacturer="MyCompany"
UpgradeCode="{B55B9CB0-BA28-4BB3-834B-6075AD5D45E4}">

<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<UIRef Id="WixUI_ErrorProgressText" />


<!-- Specify UI -->
<Property Id="WIXUI_INSTALLDIR" Value="INSTALL_FOLDER" />
<Property Id="RestoreFiles" Value="INSTALL_FOLDER" />


<MajorUpgrade AllowDowngrades="no" AllowSameVersionUpgrades="yes" DowngradeErrorMessage="!(loc.NewerVersionInstalled)" />

</Wix>
我查看了我们 msi 中的升级表,其中一个条目将 MinVersion 设置为我们构建的版本并且没有最大版本。
另一个条目将 MaxVersion 设置为我们刚刚构建的版本,并且没有最低版本。
我认为将 MinVersion 设置为我们当前的版本,我们将无法删除文件,所以我查看了
在 Upgrade 元素中并替换了 MajorUpgrade 元素。
<!--
<MajorUpgrade AllowDowngrades="no" AllowSameVersionUpgrades="yes" DowngradeErrorMessage="!(loc.NewerVersionInstalled)" />
-->

<Upgrade Id="{B55B9CB0-BA28-4BB3-834B-6075AD5D45E4}">
<UpgradeVersion Minimum="1.0.0"
IncludeMinimum="yes"
OnlyDetect="no"
Maximum="0.0.0.0"
IncludeMaximum="no"
Property="OLDVERSIONFOUND" />
</Upgrade>

<InstallExecuteSequence>

<RemoveExistingProducts After="InstallInitialize" />

</InstallExecuteSequence>
这确实删除了旧文件,但留下了第二个添加/删除程序条目。
MajorUpgrade 有没有办法设置最低版本?
如果没有设置最低版本的方法,我应该继续使用升级吗?
什么可能导致第二个条目?

最佳答案

记录 : 请务必创建a proper verbose log file以获得更好的线索来了解正在发生的事情。

重大升级 : 之前的一些回答:

  • Here is a list of common causes of failed major upgrades (请先浏览列表)
  • The use of both legacy and modern constructs to implement major upgrades .
  • Annotated WiX source showing old style major upgrades constructs in use

  • 您描述的升级设置对于 WiX 来说听起来很正常。我假设您的构建过程成功替换了占位符 0.0.0.0 (您搜索并替换它我认为)。您也可以使用 WiX 变量并将值传入,但这是另一回事。

    悬空版? :你确定你在添加/删除中没有一个悬空版本,因为它是一个测试版本或类似的东西而没有被删除? Try generating a list of installed packages .上一个链接是用于创建小型 HTML 报告的脚本,您可以 try this simpler script以 *.csv 格式创建输出(您可以将其导入 Excel 并按名称列排序以轻松查找重复项)。尝试在干净的虚拟机上安装以确保。只需要验证这不是这种情况 - 可以未经验证并成为原因的那些事情之一。

    升级表 : 下面是一个示例升级表。请注意,第一个条目是真正的主要升级。它将检测所有低于指定最大版本的版本。如果您的版本已安装,则无需升级。因此,我们不需要 max 高于我们安装的当前版本。事实上,如果您尝试安装的版本应该进入“维护模式” - 它会显示您已安装的功能列表以及您尚未安装的任何功能。
    第二行是为了防止使用比您正在运行的设置更低的版本覆盖更高的现有已安装版本。
    Upgrade table

    关于wix - 使用 Wix 工具集,MajorUpgrade 是否可以设置最低版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66128501/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com