我有一个安装了一些MSI和一些可执行文件的软件包。卸载无效。
我认为对包的旧引用会以某种方式搞乱“新”卸载。在this帖子中,Rob Mensching解释了一下。在解释中,他说要查看Bundle的日志文件中名为“Plan”的部分,该部分将为每个包显示“lines”(?)。
问题是,日志文件对我没有任何意义。有一个关于“计划”的东西,但是......这对我来说很糟糕。
旧引用问题的另一个迹象是,当我在新创建的VM上安装/卸载时,卸载工作正常。然而,我告诉客户“我发誓它将在其他机器上工作”不会削减它,并且演示必须在具有旧参考的机器上。
我的问题是:
以下是日志文件中有关“计划”的部分,如果有帮助的话。我正在使用WiX版本3.10。
[0E94:0EC8][2017-01-20T10:27:38]i200: Plan begin, 6 packages, action: Uninstall
[0E94:0EC8][2017-01-20T10:27:38]w321: Skipping dependency registration on package with no dependency providers: XXX_V1.2.0.2.exe
[0E94:0EC8][2017-01-20T10:27:38]i000: Setting string variable 'XXXXX.msi' to value 'C:\Users\XXX\XXX\log_000_XXX.msi_rollback.txt'
[0E94:0EC8][2017-01-20T10:27:38]i000: Setting string variable 'WixBundleLog_XXX.msi' to value 'C:\Users\XXX\XXX\log_000_XXX.msi.txt'
[0E94:0EC8][2017-01-20T10:27:38]i000: Setting string variable 'WixBundleRollbackLog_XXXSetup.msi' to value 'C:\Users\XXX\Desktop\log_001_XXXSetup.msi_rollback.txt'
[0E94:0EC8][2017-01-20T10:27:38]i000: Setting string variable 'WixBundleLog_XXXSetup.msi' to value 'C:\Users\XXX\Desktop\log_001_XXXSetup.msi.txt'
[0E94:0EC8][2017-01-20T10:27:38]w321: Skipping dependency registration on package with no dependency providers: XXX.exe
[0E94:0EC8][2017-01-20T10:27:38]w321: Skipping dependency registration on package with no dependency providers: XXX.x86.exe
[0E94:0EC8][2017-01-20T10:27:38]w321: Skipping dependency registration on package with no dependency providers: Microsoft_dot_Net_4.5.2
[0E94:0EC8][2017-01-20T10:27:38]i201: Planned package: XXX_V1.2.0.2.exe, state: Absent, default requested: Absent, ba requested: Absent, execute: None, rollback: None, cache: No, uncache: Yes, dependency: None
[0E94:0EC8][2017-01-20T10:27:38]i201: Planned package: XXXSetup.msi, state: Present, default requested: Absent, ba requested: Absent, execute: Uninstall, rollback: Install, cache: No, uncache: Yes, dependency: Unregister
[0E94:0EC8][2017-01-20T10:27:38]i201: Planned package: XXXSetup.msi, state: Present, default requested: Absent, ba requested: Absent, execute: Uninstall, rollback: Install, cache: No, uncache: Yes, dependency: Unregister
[0E94:0EC8][2017-01-20T10:27:38]i201: Planned package: XXX.exe, state: Absent, default requested: Absent, ba requested: Absent, execute: None, rollback: None, cache: No, uncache: Yes, dependency: None
[0E94:0EC8][2017-01-20T10:27:38]i201: Planned package: XXX.x86.exe, state: Absent, default requested: Absent, ba requested: Absent, execute: None, rollback: None, cache: No, uncache: Yes, dependency: None
[0E94:0EC8][2017-01-20T10:27:38]i201: Planned package: Microsoft_dot_Net_4.5.2, state: Present, default requested: None, ba requested: None, execute: None, rollback: None, cache: No, uncache: No, dependency: None
[0E94:0EC8][2017-01-20T10:27:38]i299: Plan complete, result: 0x0
[0E94:0EC8][2017-01-20T10:27:38]i300: Apply begin
[0E94:0EC8][2017-01-20T10:27:38]i010: Launching elevated engine process.
[0E94:0EC8][2017-01-20T10:27:40]i011: Launched elevated engine process.
[0E94:0EC8][2017-01-20T10:27:40]i012: Connected to elevated engine.
[0230:01EC][2017-01-20T10:27:40]i358: Pausing automatic updates.
[0230:01EC][2017-01-20T10:27:40]i359: Paused automatic updates.
[0230:01EC][2017-01-20T10:27:40]i360: Creating a system restore point.
[0230:01EC][2017-01-20T10:28:04]i361: Created a system restore point.
[0230:01EC][2017-01-20T10:28:04]i371: Updating session, registration key: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{d4c11c74-6db1-4b6a-888e-b3aef93815bb}, resume: Active, restart initiated: No, disable resume: No
[0230:01EC][2017-01-20T10:28:04]i326: Removed dependency: {d4c11c74-6db1-4b6a-888e-b3aef93815bb} on package provider: {8F883724-F58E-438D-9584-FE6ECC3F4E09}, package XXXSetup.msi
[0230:01EC][2017-01-20T10:28:04]i329: Removed package dependency provider: {8F883724-F58E-438D-9584-FE6ECC3F4E09}, package: XXXSetup.msi
[0230:01EC][2017-01-20T10:28:04]i301: Applying execute package: XXXSetup.msi, action: Uninstall, path: (null), arguments: ' MSIFASTINSTALL="7"'
[0E94:0EC8][2017-01-20T10:28:07]i319: Applied execute package: XXXSetup.msi, result: 0x0, restart: None
[0230:01EC][2017-01-20T10:28:07]i326: Removed dependency: {d4c11c74-6db1-4b6a-888e-b3aef93815bb} on package provider: {6D39216E-61B1-4CC4-8975-D3F04CD05539}, package XXXSetup.msi
[0230:01EC][2017-01-20T10:28:07]i329: Removed package dependency provider: {6D39216E-61B1-4CC4-8975-D3F04CD05539}, package: XXXSetup.msi
[0230:01EC][2017-01-20T10:28:07]i301: Applying execute package: XXXSetup.msi, action: Uninstall, path: (null), arguments: ' MSIFASTINSTALL="7"'
[0E94:0EC8][2017-01-20T10:28:10]i319: Applied execute package: XXXSetup.msi, result: 0x0, restart: None
[0230:01EC][2017-01-20T10:28:10]i351: Removing cached package: XXX_V1.2.0.2.exe, from path: C:\ProgramData\Package Cache\8B2B0A54AE84D8D551BDC4E28C33AFD0391232F3\
[0230:01EC][2017-01-20T10:28:10]i351: Removing cached package: XXXSetup.msi, from path: C:\ProgramData\Package Cache\{8F883724-F58E-438D-9584-FE6ECC3F4E09}v1.0.1.23\
[0230:01EC][2017-01-20T10:28:10]i351: Removing cached package: XXXSetup.msi, from path: C:\ProgramData\Package Cache\{6D39216E-61B1-4CC4-8975-D3F04CD05539}v1.0.2.0\
[0230:01EC][2017-01-20T10:28:10]i351: Removing cached package: XXX.exe, from path: C:\ProgramData\Package Cache\23ED8831EA9E38F55444F8A86EC3804B0DF377F3\
[0230:01EC][2017-01-20T10:28:10]i351: Removing cached package: XXX.x86.exe, from path: C:\ProgramData\Package Cache\BFB74E498C44D3A103CA3AA2831763FB417134D1\
[0230:01EC][2017-01-20T10:28:10]i372: Session end, registration key: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{d4c11c74-6db1-4b6a-888e-b3aef93815bb}, resume: None, restart: None, disable resume: No
[0230:01EC][2017-01-20T10:28:10]i330: Removed bundle dependency provider: {d4c11c74-6db1-4b6a-888e-b3aef93815bb}
[0230:01EC][2017-01-20T10:28:10]i352: Removing cached bundle: {d4c11c74-6db1-4b6a-888e-b3aef93815bb}, from path: C:\ProgramData\Package Cache\{d4c11c74-6db1-4b6a-888e-b3aef93815bb}\
[0230:01EC][2017-01-20T10:28:10]i371: Updating session, registration key: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{d4c11c74-6db1-4b6a-888e-b3aef93815bb}, resume: None, restart initiated: No, disable resume: No
[0E94:0EC8][2017-01-20T10:28:10]i399: Apply complete, result: 0x0, restart: None, ba requested restart: No
[0E94:0EC8][2017-01-20T10:28:12]i500: Shutting down, exit code: 0x0
编辑>>
我弄清楚问题可能是什么。当我第一次开始阅读有关<Component>
元素的内容时,它表示 - 只要您在每个<File>
元素中只嵌套一个<Component>
元素 - 为每个{{{}创建一个GUID 1}}是不必要的(在WiX 3.10中)。 WiX会自动为你创造一个。
这就是我所做的。我认为这是造成“无法卸载”问题的原因。
我认为它有点像<Component>
,因为每次构建解决方案时它都会创建一个不同的 GUID。因此,每次安装产品时,它都会在注册表中注册不同的GUID。
现在让我们假设您正在安装,修复和卸载过程中。在您的测试机器上。过了一会儿,你有大量的GUID链接到相同的组件。因此,当卸载发生时,肯定会删除最新的GUID,但是还有更多来自哪里,最终在卸载时无法删除组件。
这也解释了卸载在新机器上运行的原因。
答案很简单 - 我刚刚完成并手动将GUID放入每个Guid="*"
。
解决方案有效,但我想知道我的推理是否正确?