Я выполняю GacUtil.exe из Командной строки Visual Studio 2010 для регистрации dll (CatalogPromotion.dll) к GAC. После выполнения утилиты говорит это Assembly Successfully added to the cache
, и выполнение gacutil /l CatalogPromotionDll
шоу, что GAC содержит блок, но я не вижу блок, когда я перешел к C:\WINDOWS\assembly from Windows Explorer. Почему я не могу видеть блок в WINDOWS\assembly от Windows Explorer, но я вижу, что он использует gacutil.exe?
Фон: вот то, что я ввел в командную строку для Инструментов VS:
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.
Это потому, что вы используете версию gacutil.exe для .NET 4.0. Он хранит сборку в другом GAC, который находится в c: \ windows \ microsoft.net \ assembly. Где хранятся все сборки .NET 4.0. Для этого нет обработчика расширения оболочки, папки видны как есть. Вы можете посмотреть в проводнике Windows, вы увидите внутреннюю структуру папок GAC. У вас не должно возникнуть проблем с поиском сборки, GAC не особенно сложен.
Если сборка предназначена для использования приложением, ориентированным на более раннюю версию .NET, вам следует использовать версию gacutil.exe для .NET 2.0, которая хранится в C: \ Program Files \ Microsoft SDKs \ Windows \ v6. .0A \ bin