Dot-Net

將 DLL 拖放到 windows server 2008 .net 4.0 中的 GAC(“程序集”)

  • October 16, 2011

我試圖將一些程式碼部署到我不想安裝 MS windows SDK 工具的客戶端機器上。這意味著無權訪問“gacutil”。我也沒有為我的程式碼創建安裝程序。似乎這些可能是 .net 4.0 中僅有的兩個選項。

過去我會簡單地開始、執行、輸入“程序集”,然後將我的 dll 拖放進去。

這不再可能了嗎?當我嘗試這樣做時,我沒有收到任何錯誤消息,但 dll 沒有出現在“程序集”文件夾中。當我在我的開發機器上使用 gacutil 時,它可以正常工作,但 dll 仍然沒有出現。

在 .net 4.0 中,Microsoft 刪除了通過拖放將 DLL 添加到程序集的功能。

相反,您需要使用 gacutil.exe,或者創建一個安裝程序來執行此操作。微軟實際上不推薦使用 gacutil,但我還是走那條路。

要在開發機器上使用 gacutil,請訪問:

Start -> programs -> Microsoft Visual studio 2010 -> Visual Studio Tools -> Visual Studio Command Prompt (2010)

然後使用這些命令分別解除安裝和重新安裝。注意我沒有包含.dll在解除安裝命令中。

`gacutil /u myDLL

gacutil /i “C:\Program Files\Custom\myDLL.dll”`

要在非開發機器上使用 Gacutil,您必須將執行檔和配置文件從開發機器複製到生產機器。看起來有幾個不同版本的 Gacutil。對我有用的那個,我在這裡找到了:

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\gacutil.exe C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\gacutil.exe.config

將文件複製到此處或相應的 .net 文件夾;

C:\Windows\Microsoft.NET\Framework\v4.0.30319

然後分別使用這些命令解除安裝和重新安裝

"C:\Users\BHJeremy\Desktop\Installing to the Gac in .net 4.0\gacutil.exe" /u "myDLL"

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\gacutil.exe" /i "C:\Program Files\Custom\myDLL.dll"

引用自:https://stackoverflow.com/questions/7787607