.net GAC文件夹-太多?
我弄糊涂了 一劳永逸 VS add引用(/net选项卡)显示dll的gac在这里: 我找到了这个包含GAC的文件夹:(顺便问一下,为什么有3种GAC类型?) 以及包含GAC的此文件夹:.net GAC文件夹-太多?,.net,visual-studio-2010,.net-4.0,clr,gac,.net,Visual Studio 2010,.net 4.0,Clr,Gac,我弄糊涂了 一劳永逸 VS add引用(/net选项卡)显示dll的gac在这里: 我找到了这个包含GAC的文件夹:(顺便问一下,为什么有3种GAC类型?) 以及包含GAC的此文件夹: 有人能治好我的头痛吗?出于历史原因,我认为这有两种途径 他们必须为每个平台拆分程序集(例如MSIL、本机32、本机64、嵌入式、ARM等) 因此,根据您编译流程的方式,您将链接一个或另一个DEP。 因此,在便携式.NET(仅MSIL)和托管C++(仅是本地)之间… 但我一点也不确定:)
有人能治好我的头痛吗?出于历史原因,我认为这有两种途径 他们必须为每个平台拆分程序集(例如MSIL、本机32、本机64、嵌入式、ARM等) 因此,根据您编译流程的方式,您将链接一个或另一个DEP。 因此,在便携式.NET(仅MSIL)和托管C++(仅是本地)之间…
但我一点也不确定:)
有两个不同的GAC,一个用于CLR 2.0,另一个用于CLR 4.0。一个
%windir%\assembly
用于CLR 2.0(.Net 2.0至3.5),而%windir%\Microsoft.Net\assembly
用于大于2.0的CLR(目前仅4.0).安装.NET 4后,您的系统中实际上有两个GAC,一个用于.NET 2-3.5版,另一个用于4版。这是已经存在的。每个目录都有许多子文件夹,其中包含x86、x64和MSIL中代码的程序集映像
程序文件中的“引用程序集”目录不是GAC
同样要回答Alex Dn的评论:在GAC中安装DLL后,您不应该关心DLL的去向。
gacutil
的目的就是向您隐藏这些知识,这样.NET就不会以熟悉的方式从部分“逆向工程”的人那里获取依赖关系“东西是如何工作的,然后在应用程序中硬编码路径。我想扩展这个问题:假设我有C:\DLL\MyGAC.DLL。当我使用gacutil将其添加到GAC时,它是否会将该DLL复制到这些文件夹中?我将在add.NET引用窗口中看到什么DLL路径?您能编辑不同版本的文件夹吗?您能编辑不同版本的文件夹吗?而且,根据Alex的问题,它会将文件复制到这些文件夹吗?@RoyiNamir:当然,但是,编辑不同的版本是什么意思?我的意思是,如果你能加强你的答案(编辑它):不同的文件夹(gac,gac_32,gac_msil),根据Alex的问题-它会将文件复制到这些文件夹中吗