Сборка, установленная в GAC, не отображается в Visual Studio
-
22-09-2019 - |
Вопрос
Это звучит связано с этот вопрос, но это не одно и то же.Этот вопрос имел нет сборки появляются.У меня есть все, кроме той, которую я установил.
Я надеюсь, что у кого-то есть решение этой проблемы...Я делаю что-то неправильно?Или я нашел какую-то ошибку в VS?
Я использую Visual Studio 2010 Professional Beta 2 в Windows 7 Ultimate.Я только что скачал Rhino Mocks и решил установить его в GAC с помощью утилиты командной строки GACUTIL.Затем я перезагрузился.
Здесь вы можете увидеть сборку в моем ГАКе (нажмите для увеличения):
А вот список доступных мне сборок в Visual Studio:
Вот командная строка, в которой я его установил, а затем подтвердил:
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
Решение
Visual Studio никогда не перечисляет все элементы в GAC.В нем перечислены только элементы, отмеченные в определенном разделе реестра.
Дополнительную информацию см. в этой статье базы знаний: Как отобразить сборку в диалоговом окне «Добавить ссылку»
Вы всегда можете добавить ссылку на сборку, перейдя к ней на диске.
Другие советы
Я создал совершенно бесплатный инструмент, который поможет вам достичь вашей цели. Muse VSСсылки позволит вам добавить ссылку на глобальный кэш сборок в проект из пункта меню «Добавить ссылку GAC».
Диалоговое окно добавления ссылки Visual Studio не зависит от GAC:папки, в которых он ищет сборки, фактически контролируются разделом реестра AssemblyFolders.Не все, что появляется в GAC, отображается в «Добавить ссылку» (и, наоборот, не все, что указано в «Добавить ссылку», находится в GAC).
Чтобы добавить ссылки на библиотеки DLL Rhino Mocks, просто перейдите на вкладку «Обзор», перейдите к месту, где вы установили/разархивировали/создали Rhino Mocks, и выберите оттуда библиотеки DLL.
Вы можете установить библиотеки DLL средства просмотра отчетов как для WebForms, так и для WinForms из NuGet:
nuget> Install-Package Microsoft.ReportViewer
Принятый ответ не решил проблему, инструкции немного изменились в соответствии с Как:Добавление или удаление ссылок с помощью диалогового окна «Добавить ссылку»
Для 32-битной операционной системы, добавьте один из следующих ключей реестра.
- [HKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework\ВерсияМинимальная\AssemblyFoldersEx\MyAssemblies]@="Расположение сборки"
- [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\ВерсияМинимальная\AssemblyFoldersEx\MyAssemblies]@="Расположение сборки"
Для 64-битной операционной системы, добавьте один из следующих разделов реестра в 32-разрядный куст реестра.
- [HKEY_CURRENT_USER\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\ВерсияМинимальная\AssemblyFoldersEx\MyAssemblies]@="Расположение сборки"
- [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\ ВерсияМинимальная\AssemblyFoldersEx\MyAssemblies]@="Расположение сборки"
ВерсияМинимальная — это самая низкая применимая версия .NET Framework.Если ВерсияМинимальная является версией 3.0, папки, указанные в AssemblyFoldersEx, применяются к проектам, предназначенным для .NET Framework 3.0 и более поздних версий.
Расположение сборки — это каталог сборок, которые вы хотите отображать в Добавить ссылку диалоговое окно, например, C:\MyAssemblies.
Создание раздела реестра в узле HKEY_LOCAL_MACHINE позволяет всем пользователям видеть сборки в указанном месте в Добавить ссылку диалоговое окно.Создание раздела реестра в узле HKEY_CURRENT_USER влияет только на настройки текущего пользователя.
Открой Добавить ссылку диалоговое окно еще раз.Сборки должны появиться на .СЕТЬ вкладка.Если это не так, убедитесь, что сборки расположены в указанном месте. Расположение сборки каталог, перезапустите Visual Studio и повторите попытку.
Протестировано и работает с Visual Studio 2017 Enterprise в Windows 10.