Как ссылаться на сборку из GAC? - PullRequest
7 голосов
/ 17 февраля 2011

Я установил сборку со строгим именем TestReflection в GAC (я использую .NET 4.0 и VS 2010).

Различные версии TestReflection DLL находятся в GAC .NET 4.0 (C:\WINDOWS\Microsoft.NET\assembly\GAC_32\TestReflection\), однако, сборка не отображается в окне «Проект» -> «Добавить ссылку» VS 2010.

Как я могу сослаться на мою сборку, развернутую в GAC во время разработки из другого проекта?

На этой странице сказано, что:

Вы не можете добавлять ссылки из глобального кэша сборок (GAC), поскольку они строго являются частью времени выполненияenvironment.

Обращаясь к этому утверждению, я хотел бы знать, как сделать общую сборку DLL вашего проекта для других потребителей, если это требуется?

Ответы [ 4 ]

9 голосов
/ 17 февраля 2011

DLL, показанные на вкладке .Net диалогового окна «Добавить ссылки», на самом деле не являются зарегистрированными в GAC.Их можно найти, выполнив поиск по нескольким путям в вашей файловой системе.

Поиск путей осуществляется Visual Studio путем поиска следующих записей реестра:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NetFramework\{Version}\AssemblyFoldersEx\

Там уже должны быть добавлены некоторые ключи, так что если вы хотите, чтобы ваш собственный dll отображалсяна вкладке .Net вы можете добавить его в одну из определенных там папок.Вы также можете добавить новый раздел реестра, указывающий на пользовательскую папку, которая будет содержать только ваши собственные библиотеки DLL.

GAC предназначен только для загрузки сборок во время выполнения после развертывания приложения, поэтому я не будудумаю, что вы должны использовать его при разработке.Когда вы развертываете свое приложение, убедитесь, что для вашей ссылки установлено «Копировать локально» в false, чтобы dll не была скопирована в папку bin, а затем установите его в GAC, и вместо этого он будет загружен оттуда.*

4 голосов
/ 26 марта 2014

Другой простой вариант - вручную отредактировать файл проекта в формате XML в visual studio (сначала нужно выгрузить проект) и просто добавить узел <Reference Include="<name of dll>" /> в файл проекта MSBuild. После перезагрузки проекта VS без проблем подберет ссылку.

0 голосов
/ 19 июня 2015

Ответ - пути ссылки в окнах свойств, вы должны установить его с помощью пути GAC Пожалуйста, смотрите мой пост здесь :

0 голосов
/ 03 марта 2012

Если вы хотите добавить ссылки на Global Assembly Cache в ваш проект VS2010, вы можете использовать расширение: Muse.VSExtensions .

У негопричуды, но делает достойную работу.Проверьте это ...

...