Почему моя сборка не отображается в "Добавить ссылку>.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"