Gacutil.exe成功添加程序集,但程序集不能在资源pipe理器中查看。 为什么?
我正在从Visual Studio命令提示符2010中运行GacUtil.exe来向GAC注册dll(CatalogPromotion.dll)。 运行该实用程序后,它说Assembly Successfully added to the cache
,并运行gacutil /l CatalogPromotionDll
显示GAC包含程序集,但是当我从Windows资源pipe理器导航到C:\ WINDOWS \程序集时看不到程序集。 为什么我不能从Windows资源pipe理器中的WINDOWS \ assembly中看到程序集,但是我可以使用gacutil.exe来查看它?
背景:下面是我在VS工具的命令提示符中input的内容:
C:\ _ Dev Projects \ VS Projects \ bmccormack \ CatalogPromotion \ CatalogPromotionDll \ bin \ Debug> gacutil / i CatalogPromotionDll.dll Microsoft(R).NET全局程序集caching实用程序。 版本4.0.30319.1 版权所有(c)微软公司。 版权所有。 程序集成功添加到caching C:\ _ Dev Projects \ VS Projects \ bmccormack \ CatalogPromotion \ CatalogPromotionDll \ bin \ Debug> gacutil / l CatalogPromotionDll Microsoft(R).NET全局程序集caching实用程序。 版本4.0.30319.1 版权所有(c)微软公司。 版权所有。 全局程序集caching包含以下程序集: CatalogPromotionDll,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = 9188a175 f199de4a,processorArchitecture = MSIL 项目数量= 1
但是,程序集不显示在C:\ WINDOWS \程序集中。
这是因为您使用的是gacutil.exe的.NET 4.0版本。 它将程序集存储在不同的 GAC中,即C:\ windows \ microsoft.net \ assembly中的程序集。 所有.NET 4.0程序集都存储在哪里。 没有shell扩展处理程序,该文件夹是可见的。 您可以使用Windows资源pipe理器查看,您会看到GAC文件夹的内部结构。 你不应该有任何麻烦find你的大会,GAC并不特别复杂。
如果该程序集旨在用于以早期版本的.NET为目标的应用程序,则应该使用存储在C:\ Program Files \ Microsoft SDKs \ Windows \ v6.0A \中的gacutil.exe的.NET 2.0版本。箱子
这是因为要安装到GAC中的程序集是针对4.0运行时编译的。 4.0 GAC程序集存储在不同的位置c:\ windows \ microsoft.net \程序集。
接受的答案是不正确的。 使用.NET 4.0 gacutil来安装一个以3.5或更早版本为目标的编译的程序集就可以了,并且将程序集放在OP期望的目录c:\ windows \ assembly中。
path是 – > C:\ Windows \ Microsoft.NET \ assembly \ GAC_MSIL其中所有程序集都存储为.net 4.0版本