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 在主要升级期间保留产品的旧版本_Wix_Windows Installer - Fatal编程技术网

Wix 在主要升级期间保留产品的旧版本

Wix 在主要升级期间保留产品的旧版本,wix,windows-installer,Wix,Windows Installer,伙计们 我有以下情况:我希望在主要升级期间保留正在升级的产品的版本(例如,如果我从1.1升级到1.2,则保存值1.1),并在新产品安装完成后运行将此版本作为参数传递的可执行文件。这意味着我将在InstallFinalize附近的某个地方调用它。我发现这篇文章对我的案例非常有用: 我遇到的问题是,我不知道也找不到关于何时设置属性的解释。何时执行此注册表搜索。我是要在升级开始时设置此属性一次,还是在调用属性时动态设置此属性?如果您使用的是WiX主升级元素,则AllowDowngrades应设置为ye

伙计们

我有以下情况:我希望在主要升级期间保留正在升级的产品的版本(例如,如果我从1.1升级到1.2,则保存值1.1),并在新产品安装完成后运行将此版本作为参数传递的可执行文件。这意味着我将在
InstallFinalize
附近的某个地方调用它。我发现这篇文章对我的案例非常有用:


我遇到的问题是,我不知道也找不到关于何时设置属性的解释。何时执行此注册表搜索。我是要在升级开始时设置此属性一次,还是在调用属性时动态设置此属性?

如果您使用的是WiX主升级元素,则AllowDowngrades应设置为yes。不需要手动尝试以某种方式设置版本。请看这里:

上面写着“AllowDowngrades已经允许两个版本号相同的产品互相升级。”


在尝试运行代码之前,一定要尝试这个。请注意,ProductVersion属性未“设置”-它位于MSI文件中,并从该文件传输到系统

这是否意味着,如果我有以下内容:
产品版本将有我的旧产品版本?我不知道,因为实际值很重要。你只需要一个WiX主升级元素,允许降级,除此之外,你的新MSI是相同的,除了新的ProductCode和PackageCode以及你更改的任何文件。旧版本是1.0.0,新版本是1.1.0。你的原始帖子说,“如果我从1.1升级到1.2,保存值1.1”所以我现在很困惑。无论如何,AllowDowngrades应该允许用相同的版本替换任何版本,我认为这是问题所在。版本不是问题所在。问题是我想获取旧版本(当前安装的应用程序)并将其设置为属性。我正在使用以下内容:
但是,当我在自定义操作中获取属性时,它总是新版本而不是旧版本。