我卸載應用程序時沒有刪除文件時遇到問題。 我發現,有當應用被卸載的記錄它會打印:WIX:產品未完全卸載(系統中的文件未被刪除)
... MSI (s) (0C:84) [11:39:07:836]: Disallowing uninstallation of component: {51DB6066-AFCD-5A03-BE34-09E197799057} since another client exists
...
然後我發現通過使用WiX的工具集有一個名爲DTF的API(在Wix toolset: complete cleanup after "disallowing uninstallation of component since another client exists"提到) ,以及i在LinqPad(C#聲明)執行的查詢:
(F4按進口命名空間和additiona參考)
//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();
有我s舊recods:
我不能刪除它們使用「msiexec/x {GUID}」,因爲這些產品被標記爲「IsInstalled = False」。
那麼如何刪除這些舊記錄呢?
我在註冊表中找到了按名稱排列的功能,並將它們從以下位置刪除: [HKEY_CLASSES_ROOT \ Installer \ Features \ ...但是卸載過程仍然不會刪除文件,並且日誌中會顯示相同的信息消息。 Theres仍然保留具有0個特性項目的ProductInstallation項目。 – Drasius