[.NET]讓GAC目錄看起來跟一般的檔案總管一樣

[.NET]讓GAC目錄看起來跟一般的檔案總管一樣

有時我們需要將GAC中的組件COPY出來,有2個方式!

1.從Command模式將DLL Copy出來,如下圖,

Command

2.透過檔案總管來找!

2.1.因為預設是CacheViewer的方式,所以無法點進去,如下圖,

image

2.2.如果要讓GAC看起來跟看其他檔案一樣的話,就要在註冊檔中設定,關閉CacheViewer。

HKLM\Software\Microsoft\Fusion\DisableCacheViewer [DWORD] to 1

image

這時就能透過檔案總管來Copy組件了,如下圖,

image

PS. 1.如果覺得要手動去找太麻煩了,這時能寫程式來取得,如下透過建立的物件來取得Location,

GSS.Stirrup.NBase20.Business.EntityCollection myEnt1 
                = new GSS.Stirrup.NBase20.Business.EntityCollection();
            Type type1 = myEnt1.GetType();
            Assembly sampleAssembly = Assembly.GetAssembly(type1);
            MessageBox.Show("Location=" + sampleAssembly.Location);

 

PS. 2. .NET 4.0的GAC目錄在C:\Windows\Microsoft.NET\assembly裡,看起來就跟檔案總管一樣了!  

為何GAC要分地方放呢? 以下有相關的資訊,大家可以參考一下哦!  (感謝小章的提醒^_^)

在.NET 4.0 上如何註冊到 GAC ?

 .NET 4.0 has 2 Global Assembly Cache (GAC)

Understanding The CLR Binder

Top 2 things you should know about the Global Assembly Cache (GAC) in .NET 4.0

參考資料:

Get physical path of assembly installed in GAC

Demystifying the .NET Global Assembly Cache

Assembly.Location 屬性

Hi, 

亂馬客Blog已移到了 「亂馬客​ : Re:從零開始的軟體開發生活

請大家繼續支持 ^_^