我有一个带有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\
使用VM和空快照进行测试,以确保没有受污染的测试环境。 (使用WiX 3.8 + wixextba,因为我需要能够检查列出的两个目录以及一些小的检查)
编辑:今天早上我头脑清醒,我再次尝试了,并重读所有可能是罪魁祸首的日志(不同的指南,新的运行......)
[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”时卸载它。
答案 0 :(得分:2)
可能关注的人;
问题是,MSI / wxs对于产品有Id ='*'。一旦我修改了Productcode(每个版本都会更改以获得Major Upgrades),注册就会正常工作并且MSI已正确卸载。