我有问题时,卸载我的应用程序不删除文件。我发现当应用程序在日志中卸载时,它会打印:
... 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”。
那么如何删除这些旧记录?
2条答案
按热度按时间xghobddn1#
不允许卸载组件:{51 DB 6066-AFCD-5A 03-BE 34 - 09 E197799057}因为存在另一个客户端
这通常意味着系统上当前安装了一个或多个引用此组件的产品。
您是否已确保系统中没有其他产品引用此组件?
你不想做这种清理,因为windows installer在没有任何用户干预的情况下处理所有这些。
您以前是否安装了产品的旧版本,或者此文件是由合并模块安装的?
deyfvvtc2#
对于Wix MSI故障排除非常有用的信息。