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