2016-11-17 91 views
1

我在GAC中擁有舊版的企業庫。它拒絕任何使用GACUTIL.EXE進行的嘗試,聲稱以下內容:Gacutil.exe拒絕服務時如何從GAC中刪除dll

Microsoft(R).NET全局程序集緩存實用程序。版本3.5.30729.1 版權所有(c)Microsoft Corporation。版權所有。

裝配:Microsoft.Practices.EnterpriseLibrary.Common, 版本= 4.1.0.0,文化=中性公鑰= e44a2bc38ed2c13c,ProcessorArchitecture用於= MSIL
無法卸載:裝配由一個或多個應用程序
待定引用所需:
方案:<WINDOWS_INSTALLER> ID:<MSI>說明:< Windows安裝>
編號卸載= 0失敗的次數組件= 0

我在主題here上找到了一些解釋,但找不到任何相關的註冊表項。

所以我想要核選項。誰得到了一個?

+0

重新安裝操作系統是否可行?這幾乎是一個核武器解決方案。 –

+1

安裝程序將該程序集放入GAC。您應該通過運行需要此程序集的產品的卸載程序來刪除它。或者考慮不要故意破壞那臺機器,唯一適當的建議。 http://stackoverflow.com/a/2447331/17034 –

+0

如果您確定可能會/可能無法運行的應用程序,那麼也可以手動刪除這些文件夾。 '%windir%\ Microsoft.NET \ assembly',找到程序集文件夾,然後刪除它們。我不會推薦它,但它不是我的機器。 – Igor

回答

0

你試過嗎?它可以工作,因爲我不認爲它的使用GACUTIL:

使用Windows界面

導航到GAC,它位於%SYSTEMDRIVE%\的Windows \大會。

右鍵單擊包含在應用程序中的每個程序集文件,單擊卸載,然後單擊是進行確認。

MDSN Docs

我發現別的東西,看看這個太: MS Support

+0

當Gacutil不起作用時,卸載不起作用。但是我終於找到了註冊表項,謝謝 –

0

曾與OpenXML的SDK生產力工具僅在2.5版本存在,但不是在最新的2.8.1完全相同的問題。

在使用Nuget Package Manager在Visual Studio中更新我的ASP.Net網頁的SDK後,我遇到了問題,即在發佈過程中發佈了舊的「DocumentFormat.OpenXml V.2.5」dll,而不是新的在我的Visual Studio項目中被正確引用)。

因此,我決定先使用「程序和功能」頁面卸載舊SDK,然後再卸載MSI安裝程序文件的「卸載」選項。

它都沒有工作。不知何故,該DLL仍然在GAC和註冊表中。我試着用的Gacutil.exe卸載它,但我得到了上述消息:

Unable to uninstall: assembly is required by one or more applications 
Pending references: 
SCHEME: <WINDOWS_INSTALLER> ID: <MSI> DESCRIPTION : <Windows Installer> 

然後我刪除註冊表項值(僅值,而不是密鑰本身)

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Assemblies\Global 
DocumentFormat.OpenXml,version="2.5.5631.0",culture="neutral",publicKeyToken="31BF3856AD364E35". 

而且這對我有效。之後,正確的DLL發佈!希望它能幫助別人!