windows WIX:产品未完全卸载(未删除系统中的文件)

ct2axkht  于 2023-05-19  发布在  Windows
关注(0)|答案(2)|浏览(122)

我有问题时,卸载我的应用程序不删除文件。我发现当应用程序在日志中卸载时,它会打印:
... MSI (s) (0C:84) [11:39:07:836]: Disallowing uninstallation of component: {51DB6066-AFCD-5A03-BE34-09E197799057} since another client exists ...
然后我通过使用WiX Toolset发现有一个名为DTF的API(在Wix toolset: complete cleanup after "disallowing uninstallation of component since another client exists"中提到),我在LinqPad中执行了查询(c#语句):
(F4按此可导入名称空间和添加引用)

//using Microsoft.Deployment.WindowsInstaller;
//using System.Linq;
// <ref>"C:\Program Files (x86)\WiX Toolset v3.9\SDK\
         Microsoft.Deployment.WindowsInstaller.dll"</ref> 

var client = ComponentInstallation.AllComponents
    .Where (c => c.ComponentCode == "{72ED6979-0AAD-317C-A25C-AB9A121E6D30}")
    .Select(c => c);
client.Dump();

这是一个古老的记录:

我无法使用“msiexec /x {GUID}”删除它们,因为这些产品标记为“IsInstalled=False”。

那么如何删除这些旧记录?

xghobddn

xghobddn1#

不允许卸载组件:{51 DB 6066-AFCD-5A 03-BE 34 - 09 E197799057}因为存在另一个客户端

这通常意味着系统上当前安装了一个或多个引用此组件的产品。
您是否已确保系统中没有其他产品引用此组件?
你不想做这种清理,因为windows installer在没有任何用户干预的情况下处理所有这些。
您以前是否安装了产品的旧版本,或者此文件是由合并模块安装的?

deyfvvtc

deyfvvtc2#

对于Wix MSI故障排除非常有用的信息。

相关问题