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
Windows Wix安装程序AllowDowngrades=否不起作用_Windows_Wix_Installation - Fatal编程技术网

Windows Wix安装程序AllowDowngrades=否不起作用

Windows Wix安装程序AllowDowngrades=否不起作用,windows,wix,installation,Windows,Wix,Installation,我正在尝试使用WIX安装程序实现版本控制,以便中止较低版本的安装 有了这段代码,WIX可以检测到较新的版本,并按预期卸载较旧的版本 但是,当我尝试安装较旧版本而不是较新版本时,安装程序仍在运行,为我们的产品创建了一个空安装(只包含并修改了创建一个安装) 这是一张照片 i、 stack.imgur.com/jJA0S.jpg 有人能告诉我这里发生了什么吗?你应该发布以下关于旧的和升级的MSI设置的信息:ProductCode,UpgradeCode。假设您的安装范围是正确的,可能的解释是您的

我正在尝试使用WIX安装程序实现版本控制,以便中止较低版本的安装

有了这段代码,WIX可以检测到较新的版本,并按预期卸载较旧的版本

但是,当我尝试安装较旧版本而不是较新版本时,安装程序仍在运行,为我们的产品创建了一个空安装(只包含并修改了创建一个安装)


这是一张照片

i、 stack.imgur.com/jJA0S.jpg


有人能告诉我这里发生了什么吗?

你应该发布以下关于旧的和升级的MSI设置的信息:ProductCode,UpgradeCode。假设您的安装范围是正确的,可能的解释是您的安装范围是不同的:一个是每个用户的安装范围,另一个是每台机器的安装范围,反之亦然。请报告ProductVersions,抱歉。@PhilDW:我已更新了代码的相关部分,我正在使用相同的userProductVersions在同一台PC上安装应用程序,旧安装和新安装都需要ProductCode和UIpgradeCode,即实际值。如果需要,可以从Orca的每个MSI文件中获取它们。无法从发布的信息中看出升级可能失败的原因。@PhilDW我指定每次“*”都会生成产品代码。我没有指定UIUpgradeCode。您可以在图中看到,该版本是自定义的
<Product Id="*" 
        Name="MyName" 
        Language="1033" 
        Version="!(bind.FileVersion.SomeDLL.dll)" 
        UpgradeCode="0ABC2FDA-9AA8-4418-934F-F99C3B205809">

            <Package InstallerVersion="400"
             Compressed="yes"
             InstallScope="perMachine"
             Manufacturer="!(loc.Manufacturer)"
             Description="!(loc.PackageDescription)"
             Comments="!(loc.PackageComments)"
             SummaryCodepage="!(loc.Codepage)" />

            <MajorUpgrade 
             AllowDowngrades="no"
             DowngradeErrorMessage="A newer version of !(loc.ProductName) is already installed." 
             AllowSameVersionUpgrades="no"
             Schedule="afterInstallInitialize"/>
</Product>