.Net Gacutil工具(全局程序集緩存工具)使用教程


GAC介紹:

GAC(Global Assembly Cache)全局程序集緩存,是用於存放.Net應用程序共享的程序集。

像平常我們在Visual Studio中引用系統程序集時,這些程序集便來自於GAC

GAC默認位置為:%windir%\Microsoft.NET\assembly(%windir%代表的是你Windows的安裝目錄,一般為C:\Windows)

 

Gacutil(Global Assembly Cache Tool)

Gacutil是用於對GAC進行管理的工具,它隨 Visual Studio 一起安裝。

 

如何打開Gacutil

1、打開Visual Studio開發人員命令提示符(管理員運行)

2、輸入gacutil.exe

 

 Gacutil使用教程:

一、列出GAC所有程序集

1 gacutil.exe /l

 

二、列出GAC中指定名稱的程序集,如System.Drawing

1 gacutil.exe /l System.Drawing

 

三、上面兩個命令參數/l后帶上r,可以顯示更加詳細的程序集信息,包括跟蹤引用信息。

如:

1 gacutil.exe /lr
1 gacutil.exe /lr System.Drawing

 

四、安裝程序集到GAC

1 gacutil.exe /i "程序集路徑"

注意:

1、一般情況下,都是將程序集放在運行目錄下。無須安裝到GAC。除非明確要求共享該程序集。

2、程序集需要具有強名稱,否則會安裝失敗。

 

下面介紹如何生成一個具有強名稱的程序集

使用Visual Studio創建一個類庫工程,命名為ClassLibrary1

 

使用SN.exe生成一個密鑰文件(在Visual Studio開發人員命令提示符中運行)

注意:如果不指定路徑,會生成到當前命令提示符所在的目錄。可以指定目錄生成。我這里直接生成到D盤

Sn -k D:\ClassLibrary.snk

 

打開ClassLibrary1類庫工程的Properties->AssemblyInfo.cs,添加一行

1 [assembly: AssemblyKeyFile(@"D:\ClassLibrary.snk")]

 

 

這個時候就可以安裝成功了

 

查看

 

如果需要在安裝時指定詳細信息,可以帶上/r參數

1 gacutil.exe /r <reference_scheme> <reference_id> <description>

reference_scheme是所添加的引用的類型。可以取:UNINSTALL_KEY、FILEPATH 或 OPAQUE這幾個值

reference_id是程序集的標識符,取決於 reference_scheme

description是代表當前reference_scheme的說明。

使用示例如下:

1 gacutil /i D:\ClassLibrary1.dll /r OPAQUE FFFFFFFF-ABCD-ABCD-ABCD-52707CDFAFFF "Installed by user"

 

這個時候,我們再去查看該程序集,就可以看到如下詳細信息了

 

五、批量安裝程序集到GAC中

gacutil.exe  /il list.txt

list.txt中的內容如下:

批量安裝時也可以帶上參數 /r,來指定詳細信息

 

六、從GAC中卸載程序集

1 gacutil.exe /u ClassLibrary1

說明:盡量指定詳細的程序集名,因為GacUtil是按照文件名包含來查找的,防止誤刪。

1 gacutil.exe /u ClassLibrary1,Version=1.0.0.0,Culture=neutral

 

七、從GAC中批量卸載程序集

gacutil.exe /ul list.txt

list.txt內容如下

 

八、移除所有跟蹤引用,強制卸載程序集

1 gacutil.exe /uf ClassLibrary1,Version=1.0.0.0,Culture=neutral

 

作者: zhaotianff

轉載請注明出處


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM