Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
卸载wix中4位数字的旧版本,如1.1.0.1_Wix_Installation_Uninstallation - Fatal编程技术网

卸载wix中4位数字的旧版本,如1.1.0.1

卸载wix中4位数字的旧版本,如1.1.0.1,wix,installation,uninstallation,Wix,Installation,Uninstallation,安装高于当前安装版本的版本时,需要卸载以前的版本并安装更新的版本。并且在安装低于当前版本的版本时需要限制安装。 它可用于3位数字(1.0.0、2.0.0等)。但我要求的是4位版本(1.1.0.1、1.1.0.2等)。 请任何人回答我的问题。这是Windows Installer的设计限制。见: 备注 必须更改ProductVersion的三个字段中的至少一个字段才能更改 使用升级表升级。任何仅更改 程序包代码,但保持ProductVersion和ProductCode不变 称为小更新。提供了三

安装高于当前安装版本的版本时,需要卸载以前的版本并安装更新的版本。并且在安装低于当前版本的版本时需要限制安装。 它可用于3位数字(1.0.0、2.0.0等)。但我要求的是4位版本(1.1.0.1、1.1.0.2等)。
请任何人回答我的问题。

这是Windows Installer的设计限制。见:

备注

必须更改ProductVersion的三个字段中的至少一个字段才能更改 使用升级表升级。任何仅更改 程序包代码,但保持ProductVersion和ProductCode不变 称为小更新。提供了三个版本字段 主要是为了方便。例如,如果您想更改 ProductVersion,但不希望更改主版本或次版本 版本,您可以更改生成版本

请注意,Windows Installer仅使用 产品版本。如果在产品中包含第四个字段 版本,安装程序将忽略第四个字段

WiX有一个名为AllowSameVersionUpgrades的属性:

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

当两个产品版本仅在第四个版本中存在差异时,这非常有用 版本字段。MSI在比较时特别忽略该字段 产品版本,所以两个产品只在第四个方面有所不同 版本字段是相同的产品,需要将此属性设置为“是” 待检测

请注意,由于MSI忽略了第四个产品版本字段, 将此属性设置为“是”也允许在第一次 三个产品版本字段相同。例如,产品 版本1.0.0.1将“升级”1.0.0.2998,因为它们被视为 相同版本(1.0.0)。这可能会重新引入严重的错误,因此 最安全的选择是更改前三个版本字段并省略 此属性可获取默认值no

AllowDowngrades同时为“是”时,此属性不能为“是”-- AllowDowngrades已经允许两个产品具有相同的版本 相互升级的号码


现在有一种方法可以两全其美。它涉及编写一个自定义操作(计划在之后),以调用以查询MSI,并识别仅在第四个字段上存在差异且小于新产品版本的已安装产品。然后将其添加到“升级”行中指定的ActionProperty中,并让其执行其余操作。

换句话说,请原谅,请说明可能很明显的情况,是否使用WiX或其他方法生成MSI文件无关紧要。OpEd:Windows Installer()的第一条Tao规则强调学习Windows Installer的重要性。然后,他们提到人们是如何在不学习MSI的情况下学习高级重新打包工具(无疑是AdminStuio和PackageStudio)的,以及随之而来的麻烦。今天(近9年后)人们也可以这样说,他们只学到了足够的WiX来创建一个MSI,但对Windows安装程序以及它与WiX之间的关系一无所知。