2014-01-22 128 views
2

我正在做一個winform應用程序,需要卸載由installshield安裝的另一個Winform應用程序。我已經搜索了正確的方法來取消它是從已安裝的應用程序獲取GUID c#

Process.Start(「msiexec/x {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}」); 其中,xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx表示要卸載的應用程序的GUID。

但我不我怎麼能找到從應用程序的GUID稱爲text.exe

我發現

VAR總成= typeof運算(計劃).Assembly; var attribute =(GuidAttribute)assembly.GetCustomAttributes(typeof(GuidAttribute),true)[0]; var id = attribute.Value;

但這從當前的應用程序檢索GUID

任何想法?

+0

您需要在註冊表中找到它。注意,我會手動執行此操作,並將您找到的GUID添加到您的程序中,而不是嘗試以編程方式從可執行文件名稱中找到它。與可執行文件名稱衝突的可能性太大。 –

回答

3

這GUID是與安裝程序(更準確地稱爲Package Code),你就可以從HKLM \ SOFTWARE \微軟\的Windows \ CurrentVersion \卸載拉這些相關的GUID,我不熟悉的能力從應用程序直接拉這個。

*編輯或者,如果您有權訪問WiX腳本(您應該使用WiX來生成MSI),它應該是Product元素的Id屬性。您也可以使用Orca等工具來檢查已經創建的MSI的屬性。

+0

如果是64位操作系統上的32位程序,那麼您也可以檢查'Wow6432Node'。所以'HKLM \ SOFTWARE \ Wow6432Node \ Microsoft \ Windows \ CurrentVersion \ Uninstall' –

相關問題