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版本