Wix升级进入维护模式,永远不会升级

我正在运行Wix 3.11.1,当尝试进行升级时,升级进入维护模式,并在“添加/删除程序”列表中留下两个条目.

Product.wxs的简短版本具有以下内容

<Product Id="*"  Name="Boo" Language="1033" Version="1.1.0.0" Manufacturer="Foo"
          UpgradeCode="PUT-GUID-HERE">

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

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

升级代码
3F55CE54-8409-4918-9906 – D8AD18794BFC

产品和包装代码是:

1.0

产品代码FC49F622-02E6-40D9-ACD9-92BDD4AF5979

包装代码6C49FAA1-5B11-4173-80A7-A7B3FA4313AE

1.1

产品号4871555F-F369-4159-9EF0-4BBDF07B6842

码包编码3594D7C2-D5AC-4A41-A8C6-6E3D63C6ACA0

当我使用日志记录运行安装程序时,我得到如下所示的日志信息.
升级代码相同且产品和包代码不同,并且版本以前三位数递增时,我认为应该进行升级,但事实并非如此.这两个版本都是每台机器,所以不应该停止删除以前的版本.日志显示维护模式,从不执行先前版本的删除.我在msi中有一个升级表,它显示最大值1.1和WIX_UPGRADE_DETECTED作为操作.有谁知道什么会导致这进入维护模式而不是进行重大升级

Log File

MSI (s) (68:9C) [15:04:38:423]: Doing action: RemoveExistingProducts
Action 15:04:38: RemoveExistingProducts. Removing applications
Action start 15:04:38: RemoveExistingProducts.
RemoveExistingProducts: Application: {FC49F622-02E6-40D9-ACD9-92BDD4AF5979},Command line: UPGRADINGPRODUCTCODE={4871555F-F369-4159-9EF0-4BBDF07B6842} CLIENTPROCESSID=8344 CLIENTUILEVEL=0 MSICLIENTUSESEXTERNALUI=1 REMOVE=ALL
MSI (s) (68:BC) [15:04:38:423]: Resetting cached policy values
MSI (s) (68:BC) [15:04:38:423]: Machine policy value 'Debug' is 0
MSI (s) (68:BC) [15:04:38:423]: ******* RunEngine:
           ******* Product: {FC49F622-02E6-40D9-ACD9-92BDD4AF5979}
           ******* Action: 
           ******* CommandLine: **********
MSI (s) (68:BC) [15:04:38:423]: Note: 1: 2203 2: C:\WINDOWS\Installer\inprogressinstallinfo.ipi 3: -2147287038 
MSI (s) (68:BC) [15:04:38:423]: Machine policy value 'LimitSystemRestoreCheckpointing' is 0
MSI (s) (68:BC) [15:04:38:423]: Note: 1: 1717 2: Boo 
MSI (s) (68:BC) [15:04:38:423]: Calling SRSetRestorePoint API. dwRestorePtType: 1,dwEventType: 102,llSequenceNumber: 0,szDescription: "Removed Boo".
MSI (s) (68:BC) [15:04:38:439]: The call to SRSetRestorePoint API succeeded. Returned status: 0,llSequenceNumber: 45.
MSI (s) (68:BC) [15:04:38:439]: End dialog not enabled
MSI (s) (68:BC) [15:04:38:439]: Original package ==> C:\WINDOWS\Installer\1179bb4.msi
MSI (s) (68:BC) [15:04:38:439]: Package we're running from ==> C:\WINDOWS\Installer\1179bb4.msi
MSI (s) (68:BC) [15:04:38:439]: APPCOMPAT: Uninstall Flags override found.
MSI (s) (68:BC) [15:04:38:439]: APPCOMPAT: Uninstall VersionNT override found.
MSI (s) (68:BC) [15:04:38:439]: APPCOMPAT: Uninstall ServicePackLevel override found.
MSI (s) (68:BC) [15:04:38:439]: APPCOMPAT: looking for appcompat database entry with ProductCode '{FC49F622-02E6-40D9-ACD9-92BDD4AF5979}'.
MSI (s) (68:BC) [15:04:38:439]: APPCOMPAT: no matching ProductCode found in database.
MSI (s) (68:BC) [15:04:38:439]: Machine policy value 'disablePatch' is 0
MSI (s) (68:BC) [15:04:38:439]: Machine policy value 'AllowLockdownPatch' is 0
MSI (s) (68:BC) [15:04:38:439]: Machine policy value 'disableLUAPatching' is 0
MSI (s) (68:BC) [15:04:38:439]: Machine policy value 'disableFlyWeightPatching' is 0
MSI (s) (68:BC) [15:04:38:439]: APPCOMPAT: looking for appcompat database entry with ProductCode '{FC49F622-02E6-40D9-ACD9-92BDD4AF5979}'.
MSI (s) (68:BC) [15:04:38:439]: APPCOMPAT: no matching ProductCode found in database.
MSI (s) (68:BC) [15:04:38:439]: Transforms are not secure.
MSI (s) (68:BC) [15:04:38:439]: Command Line: UPGRADINGPRODUCTCODE={4871555F-F369-4159-9EF0-4BBDF07B6842} CLIENTPROCESSID=8344 CLIENTUILEVEL=0 MSICLIENTUSESEXTERNALUI=1 REMOVE=ALL 
MSI (s) (68:BC) [15:04:38:439]: PROPERTY CHANGE: Adding PackageCode property. Its value is '{6C49FAA1-5B11-4173-80A7-A7B3FA4313AE}'.
MSI (s) (68:BC) [15:04:38:439]: Product Code passed to Engine.Initialize:           '{FC49F622-02E6-40D9-ACD9-92BDD4AF5979}'
MSI (s) (68:BC) [15:04:38:439]: Product Code from property table before transforms: '{FC49F622-02E6-40D9-ACD9-92BDD4AF5979}'
MSI (s) (68:BC) [15:04:38:439]: Product Code from property table after transforms:  '{FC49F622-02E6-40D9-ACD9-92BDD4AF5979}'
MSI (s) (68:BC) [15:04:38:439]: Product registered: entering maintenance mode

更新:

这确实是一个捆绑安装.我看着msi是罪魁祸首因为我认为Wix捆绑包会使用msiexec来执行卸载.

在我们的构建中,我们使用搜索词“0.0.0.0”作为bundle中的版本和msi然后我们用正确的版本替换,在构建结束时我们还原Bundle.wxs和Product.wxs.

当安装程序正在处理时,开发人员必须在构建文件中注释掉还原,以便处理文件.开发人员完成后,需要将版本设置回“0.0.0.0”.在其中一个安装程序检查中,有人不得不忘记改回“0.0.0.0”.

我自己尝试了两个版本的msi,升级确实删除了原始安装的条目.但是,即使版本正确,捆绑包升级仍会留下第二个条目.

日志显示升级成功,安装新产品并删除旧产品.程序和功能中两个条目最可能的解释是,实际的MSI产品有一个,WiX引导程序有另一个.您可能需要使用ARPSYstemCOMPONENT = 1抑制MSI,或者使用WiX引导程序支持来抑制MSI的条目.

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...