Dot-Net
如何從伺服器 GAC 中刪除 .NET 程序集 DLL
我正在嘗試將包含 Oracle ODP.NET 庫的 VS2013 項目部署到 Windows 2008 IIS 伺服器,並收到錯誤“無法從程序集 ‘Oracle.ManagedDataAccess,版本 = 4.121 載入類型’OracleInternal.Common.ConfigBaseClass’。 2.0。’”從我在網上找到的內容來看,這是由項目的 ODP 與 GAC 中具有 ODP 的伺服器之間的衝突引起的。然後指示從 GAC 中刪除 ODP。伺服器上的 GAC 中有 Oracle DLL。我們 99% 確定 DLL 在 GAC 中是由於之前嘗試在該機器上設置 Oracle 而導致的,因為該伺服器上的其他項目不應該使用 Oracle。因此,我們應該安全地將其從 GAC 中刪除。
但是,gacutil.exe 僅在 Visual Studio 中可用,我們不允許將 Visual Studio 安裝到伺服器上。
那麼,我們如何從 GAC 解除安裝 Oracle DLL,而伺服器上沒有可用的 gacutil.exe?我們可以從目錄中刪除它們嗎?或者我們是否需要將 gacutil.exe 從我的工作站複製到伺服器才能執行此操作?還是有其他方法?(最好不涉及系統資料庫編輯)
任何建議表示讚賞,謝謝。
如果您具有管理員權限,您應該可以使用 Windows 界面執行此操作,如下所示。
- 導航到位於 %systemdrive%\Windows\Assembly 的 GAC。
- 右鍵點擊應用程序中包含的每個程序集文件,點擊解除安裝,然後點擊是確認
如果您無法通過上述方法解除安裝 dll,您可以在沒有特殊視圖的情況下訪問 GAC 文件夾,方法是打開執行命令並輸入下面的路徑並按 Enter。
C:\Windows\assembly\GAC_MSIL這將允許您與 GAC 中的所有文件作為普通文件夾進行互動。