卸载我的应用程序时没有删除文件时出现问题。 我发现应用程序在日志中卸载时会打印出来:
...
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#Statement):
(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();
有旧的recods:
我无法使用&#34; msiexec / x {GUID}&#34;删除它们。因为这些产品被标记为&#34; IsInstalled = False&#34;。
那么如何删除这些旧记录?
答案 0 :(得分:0)
禁止卸载组件:{51DB6066-AFCD-5A03-BE34-09E197799057},因为存在另一个客户端
这通常意味着系统上当前安装了一个或多个引用此组件的产品。
您是否确定系统中没有其他产品引用此组件?
您不希望进行此类清理,因为Windows安装程序无需任何用户干预即可处理所有这些内容。
您之前是否安装了旧版本的产品,或者该文件是否由合并模块安装?