【问题标题】:Burn Bootstrapper does not uninstall chained MSI刻录引导程序不会卸载链接的 MSI
【发布时间】:2015-07-15 14:50:49
【问题描述】:

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

    <MsiPackage SourceFile="Resources\MyProduct.msi" ForcePerMachine="yes" Visible="yes" Permanent="no">

(可见性仅设置为以后能够“手动”卸载。安装日志关于产品的安装似乎没问题,它在“添加/删除程序”中显示(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\

使用虚拟机和空快照进行测试,以确保没有污染的测试环境。 (使用 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 安装日志没有“返回值 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"时可以卸载。

【问题讨论】:

  • 捆绑包中的每台机器和每用户安装是否可能混淆?

标签: wix windows-installer burn


【解决方案1】:

它可能与谁有关;

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

【讨论】:

    猜你喜欢
    • 2013-03-02
    • 1970-01-01
    • 1970-01-01
    • 2013-02-10
    • 1970-01-01
    • 2016-11-09
    • 1970-01-01
    • 2014-02-18
    • 1970-01-01
    相关资源
    最近更新 更多