Почему моя сборка не отображается в "Добавить ссылку>.Net" при установке в GAC?
Просто задайте быстрый вопрос о GAC
Я создал сборку Awesome.DLL. Если бы он был подписан, а затем был установлен в GAC:
C:\MyApps\Awesome\Awesome\Awesome\bin\Release>sn -k Awesome.snk
Microsoft (R) .NET Framework Strong Name Utility Version 4.0.30319.1
Copyright (c) Microsoft Corporation. All rights reserved.
Key pair written to Awesome.snk
C:\MyApps\Awesome\Awesome\Awesome\bin\Release>gacutil /i Awesome.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:\MyApps\Awesome\Awesome\Awesome\bin\Release>gacutil /l Awesome.dll
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:
Number of items = 0
Моя проблема:
Awesome.DLL не найден в C:\Windows\Assembly
или в любой из подпапок. Он найден, хотя в C:\WINDOWS\Microsoft.NET\assembly\GAC_MSIL\
я думаю, из-за этого я не могу видеть Awesome.DLL из Add Reference > .Net.
Почему он не устанавливается на C:\Windows\Assembly\
? Как я могу указать на это местоположение?
Ответы
Ответ 1
Ваша сборка установлена на C:\WINDOWS\Microsoft.NET\assembly\
вместо C:\Windows\Assembly\
, потому что это сборка .NET 4.0, а .NET Framework 4.0 имеет новый отдельный GAC в этом месте. GAC, расположенный в C:\Windows\Assembly\
, содержит только .Net 2.0 - 3.5 сборки. (см. .NET 4.0 имеет новый GAC, почему?).
Список сборок, найденных в Visual Studios "Добавить ссылку → .Net". диалог - это не просто список сборок, найденных в GAC (обратите внимание, что большинство записей в этом списке также не найдены в GAC).
Информацию о том, как добавить сборку в этот список, см. в следующей статье (в частности, "Отобразить сборку в диалоговом окне" Добавить ссылку "):
Обратите внимание, что раздел реестра, используемый для этого, отличается для разных версий Visual Studio.
Ответ 2
Я создал совершенно бесплатный инструмент, который поможет вам достичь своей цели. Muse VSReferences позволит вам добавить ссылку глобального кэширования сборок в проект из пункта Добавить ссылку GAC.
Надеюсь, что это поможет.
Ответ 3
Проверьте свойства проекта в меню проекта vs2010: Я видел, что проект был ".NET Framework 4 Client Profile", а сборка - ".NET 4 Fraemwork".
решение:
Измените проект на профиль ".NET framework 4"