Gacutil.exe成功添加了程序集,但程序集在资源管理器中无法查看.为什么?

Ben*_*ack 66 .net windows assemblies gac gacutil

我正在从Visual Studio命令提示符2010中运行GacUtil.exe,以便向GAC注册dll(CatalogPromotion.dll).运行该实用程序后,它说Assembly Successfully added to the cache,并且运行gacutil /l CatalogPromotionDll显示GAC包含程序集,但是当我从Windows资源管理器导航到C:\ WINDOWS\assembly时,我看不到程序集. 为什么我不能从Windows资源管理器中看到WINDOWS\assembly中的程序集,但我可以使用gacutil.exe看到它?


背景:这是我在VS Tools的命令提示符中输入的内容:


    C:\_Dev Projects\VS Projects\bmccormack\CatalogPromotion\CatalogPromotionDll\bin
    \Debug>gacutil /i CatalogPromotionDll.dll
    Microsoft (R) .NET Global Assembly Cache Utility.  Version 4.0.30319.1
    Copyright (c) Microsoft Corporation.  All rights reserved.

    Assembly successfully added to the cache

    C:\_Dev Projects\VS Projects\bmccormack\CatalogPromotion\CatalogPromotionDll\bin
    \Debug>gacutil /l CatalogPromotionDll
    Microsoft (R) .NET Global Assembly Cache Utility.  Version 4.0.30319.1
    Copyright (c) Microsoft Corporation.  All rights reserved.

    The Global Assembly Cache contains the following assemblies:
      CatalogPromotionDll, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9188a175
    f199de4a, processorArchitecture=MSIL

    Number of items = 1

但是,程序集不会显示在C:\ WINDOWS\assembly中.

Han*_*ant 107

那是因为您使用的是.NET 4.0版本的gacutil.exe.它将程序集存储在不同的 GAC中,即c:\ windows\microsoft.net\assembly 中的GAC.存储所有.NET 4.0程序集的位置.该文件夹没有shell扩展处理程序,文件夹按原样可见.您可以使用Windows资源管理器查看.您将看到GAC文件夹的内部结构.您不应该在找回组件时遇到任何问题,GAC并不是特别复杂.

如果程序集旨在由面向早期版本的.NET的应用程序使用,那么您应该使用存储在C:\ Program Files\Microsoft SDKs\Windows\v6.0A \中的.NET 2.0版本的gacutil.exe箱子