Burn Bootstrapper 不会卸载链接的 MSI

Burn Bootstrapper does not uninstall chained MSI

我有一个带有 2 个 MSI 和 2 个 Exe 包的 Burn Bootstrapper。当我使用引导程序卸载时,我的产品 MSI 没有被卸载。 来自 Bundle.wxs

的相关包部分
    <MsiPackage SourceFile="Resources\MyProduct.msi" ForcePerMachine="yes" Visible="yes" Permanent="no">

(可见性仅设置为稍后能够卸载 "per hand"。安装日志似乎与产品安装有关,并且它在 Add/Remove 中显示(MSI)程式。 (摘录)

    [0020:0D1C][2015-07-15T16:15:50]i201: Planned package: MyProduct.msi, state: Absent, default requested: Present, ba requested: Present, execute: Install, rollback: Uninstall, cache: Yes, uncache: No, dependency: Register
    [0B34:0E40][2015-07-15T16:17:43]i305: Verified acquired payload: MyProduct.msi at path: C:\ProgramData\Package Cache\.unverified\MyProduct.msi, moving to: C:\ProgramData\Package Cache\{5147F2CD-4057-408C-9871-5CF419E4A064}v3.14.0000\MyProduct.msi.
    [0B34:0AEC][2015-07-15T16:17:44]i323: Registering package dependency provider: {5147F2CD-4057-408C-9871-5CF419E4A064}, version: 3.14.0000, package: MyProduct.msi
    [0B34:0AEC][2015-07-15T16:17:44]i301: Applying execute package: MyProduct.msi, action: Install, path: C:\ProgramData\Package Cache\{5147F2CD-4057-408C-9871-5CF419E4A064}v3.14.0000\MyProduct.msi, arguments: ' ALLUSERS="1" MSIFASTINSTALL="7" INSTALLBASE="1"'
    [0020:0D1C][2015-07-15T16:23:38]i319: Applied execute package: MyProduct.msi, result: 0x0, restart: None
    [0B34:0AEC][2015-07-15T16:23:38]i325: Registering dependency: {973aefce-662d-437a-b703-e6e06af73ea5} on package provider: {5147F2CD-4057-408C-9871-5CF419E4A064}, package: MyProduct.msi

关于卸载,但是包的状态始终不存在,因此未卸载。这是一个可能的错误还是我遗漏了一些非常明显的东西? 卸载日志摘录:

    [0F30:0EE0][2015-07-15T16:24:48]i101: Detected package: MyProduct.msi, state: Absent, cached: Complete
    [0F30:0EE0][2015-07-15T16:24:49]i201: Planned package: MyProduct.msi, state: Absent, default requested: Absent, ba requested: Absent, execute: None, rollback: None, cache: No, uncache: Yes, dependency: Unregister
    [0BBC:0FD8][2015-07-15T16:24:50]i326: Removed dependency: {973aefce-662d-437a-b703-e6e06af73ea5} on package provider: {5147F2CD-4057-408C-9871-5CF419E4A064}, package MyProduct.msi
    [0BBC:0FD8][2015-07-15T16:24:50]i329: Removed package dependency provider: {5147F2CD-4057-408C-9871-5CF419E4A064}, package: MyProduct.msi
    [0BBC:0FD8][2015-07-15T16:24:50]i351: Removing cached package: MyProduct.msi, from path: C:\ProgramData\Package Cache\{5147F2CD-4057-408C-9871-5CF419E4A064}v3.14.0000\

已使用 VM 和空快照进行测试,以确保没有污染的测试环境。 (使用 WiX 3.8 + wixextba 因为我需要能够检查列出的两个目录并在这里和那里进行一些小检查)

编辑:今天早上我头脑清醒,再次尝试,并重新阅读所有日志可能是罪魁祸首(不同的 guid,新 运行...)

    [0FA0:054C][2015-07-16T10:09:48]w355: Unable to register source directory: C:\ProgramData\Package Cache\{39A0BA42-7EAB-435C-BADC-C531E5B16763}v3.14.0000\, product: {39A0BA42-7EAB-435C-BADC-C531E5B16763}, reason: 0x80070645. Continuing...

除了 Microsoft Security Essentials 的问题外,我没有发现任何关于此错误的信息。有什么线索吗?

edit2: MSDN Errorcodes 1605 是 "ERROR_UNKNOWN_PRODUCT" 但 MSI 安装日志没有 "return value 3" 并且声明

    MSI (s) (90:78) [11:06:10:483]: Windows Installer installed the product. Product Name: MyProduct. Product Version: 3.14.0000. Product Language: 1031. Manufacturer: MyManufacturer. Installation success or error status: 0.

设置Visible="yes"即可卸载.

与谁有关;

问题是,MSI/wxs 的产品 ID='*'。一旦我修复了产品代码(每个版本都会更改它以获得主要升级)注册就可以正常工作并且 MSI 已正确卸载。