GAC的位置在哪裡?
我想更加熟悉 .Net 全域程序集記憶體。網上的各種消息來源說它可以在 Explorer 中找到
C:\WINNT\Assembly。但我的Windows XP 機器上似乎沒有WINNT文件夾。C:我已選中“顯示隱藏的文件和文件夾”並未選中“隱藏受保護的作業系統文件”。使用如何檢測安裝了哪些 .NET Framework 版本和服務包中描述的方法? 尤其是在<http://msdn.microsoft.com/en-us/kb/kbarticle.aspx?id=318785>我看到我安裝了 .Net 4.0。
我怎樣才能可靠地找到它,為什麼它會在任何地方而不是它應該在的地方?
作為免責聲明,我首先要說的是,您永遠不應該直接編輯 GAC 的內容。
繼續資訊…
您的問題有兩種不同的 GAC,2.0 GAC 和 4.0 GAC。在談論這些時,它們與其說是指 .NET 框架的版本,不如說是指正在使用的 CLR 的版本。恰好在 2.0 中,CLR 為 2,而在 4.0 中,CLR 為 4。作為參考,.Net 3.5 的 CLR 保持在 2,因此 .net 2.0 和 .net 3.5 的 GAC是一樣的。
但它在哪裡?
2.0 GAC
%WINDIR%\Assembly在資源管理器中。對於大多數較新的 Windows 作業系統,預設%WINDIR%為C:\Windows。實際上,這實際上是一個隱藏 GAC 真實位置的 shell 擴展,但出於您的目的,您可以打開資源管理器C:\Windows\Assembly來查看 2.0 GAC 的內容。shell 擴展還增加了拖放程序集的好處,C:\Windows\Assembly以便將它們添加到 GAC(在 Win7 及更高版本中必須禁用 UAC。)4.0 GAC 位於
C:\Windows\Microsoft.NET\assembly. 您會在該文件夾下找到各種類型的程序集,這些程序集分為它們的 32 位、64 位或 MSIL 子目錄。CLR4 的 gac 沒有外殼擴展,因此您正在查看程序集所在的磁碟上的實際位置。有點跑題了……
我總是以程式方式檢測安裝了哪些版本的 .Net 框架的方式是查看
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP……子文件夾指示已安裝的版本。