Сборка, установленная в GAC, не отображается в Visual Studio
Звучит связанный с этот вопрос, но это не одно и то же. У этого вопроса не было никаких сборок. У меня есть все, кроме той, которую я установил.
Я надеюсь, что у кого-то есть решение этого... Я что-то делаю неправильно? Или я нашел ошибку в VS?
Я использую Visual Studio 2010 Professional Beta 2 в Windows 7 Ultimate. Я просто скачал Rhino Mocks и решил установить его в GAC с помощью утилиты командной строки GACUTIL. Затем я перезагрузился.
Здесь вы можете увидеть сборку в моем GAC (нажмите, чтобы увеличить):
![alt text]()
И вот список доступных мне сборок в Visual Studio:
![alt text]()
Вот командная строка, где я ее установил, а затем подтвердил:
C:\Users\jason\Downloads>gacutil -i Rhino.Mocks.dll
Microsoft (R) .NET Global Assembly Cache Utility. Version 4.0.21006.1
Copyright (c) Microsoft Corporation. All rights reserved.
Assembly successfully added to the cache
C:\Users\jason\Downloads>gacutil /l |grep -i rhino
Rhino.Mocks, Version=3.6.0.0, Culture=neutral, PublicKeyToken=0b3305902db7183f, processorArchitecture=MSIL
Ответы
Ответ 1
Visual Studio никогда не перечисляет все элементы в GAC. В нем перечисляются только те элементы, которые указаны в определенном разделе реестра.
Пожалуйста, ознакомьтесь с этой статьей базы знаний для получения дополнительной информации: Как отобразить сборку в диалоговом окне "Добавить ссылку"
Вы всегда можете добавить ссылку на сборку, просмотрев ее на диске.
Ответ 2
Я создал совершенно бесплатный инструмент, который поможет вам достичь своей цели. Muse VSReferences позволит вам добавить ссылку глобального кэша сборок в проект из пункта Добавить ссылку GAC.
Ответ 3
Диалоговое окно Visual Studio Add Reference не зависит от GAC: папки, которые он ищет для сборок, фактически контролируются разделом реестра AssemblyFolders. Не все, что появляется в GAC, появляется в Add Reference (и, наоборот, не все в Add Reference находится в GAC).
Чтобы добавить ссылки на DLL файлы Rhino Mocks, перейдите на вкладку "Обзор", перейдите к местоположению, в котором вы установили/распаковали/построили Rhino Mocks, и выберите там DLL.
Ответ 4
Вы можете установить DLL файлы Report Viewer для WebForms и WinForms из NuGet:
nuget> Install-Package Microsoft.ReportViewer
Ответ 5
Принятый ответ не разрешил это, инструкции немного изменились в соответствии с Как добавить или удалить ссылки с помощью диалогового окна Добавить ссылку
Для 32-разрядной операционной системы добавьте один из следующих разделов реестра.
- [HKEY_CURRENT_USER\SOFTWARE\Microsoft.NETFramework\VersionMinimum\AssemblyFoldersEx\MyAssemblies] @= "AssemblyLocation"
- [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.NETFramework\VersionMinimum\AssemblyFoldersEx\MyAssemblies] @= "AssemblyLocation"
Для 64-разрядной операционной системы добавьте один из следующих разделов реестра в 32-разрядный куст реестра.
- [HKEY_CURRENT_USER\SOFTWARE\Wow6432Node\Microsoft.NETFramework\VersionMinimum\AssemblyFoldersEx\MyAssemblies] @= "AssemblyLocation"
- [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft.NETFramework \ VersionMinimum\AssemblyFoldersEx\MyAssemblies] @= "AssemblyLocation"
VersionMinimum - самая низкая версия .NET Framework, которая применяется. Если VersionMinimum - v3.0, папки, указанные в AssemblyFoldersEx, применяются к проектам, ориентированным на .NET Framework 3.0 и более поздние версии.
AssemblyLocation - это каталог сборок, которые вы хотите отобразить в диалоговом окне Добавить ссылку, например C:\MyAssemblies.
Создание раздела реестра под HKEY_LOCAL_MACHINE node позволяет всем пользователям видеть сборки в указанном месте в диалоговом окне Добавить ссылку. Создание раздела реестра под HKEY_CURRENT_USER node влияет только на настройку для текущего пользователя.
Откройте диалоговое окно Добавить ссылку. Сборки должны появиться на вкладке .NET. Если они этого не сделают, убедитесь, что сборки расположены в указанном каталоге AssemblyLocation, перезапустите Visual Studio и повторите попытку.
Протестировано и работает с Visual Studio 2017 Enterprise в Windows 10