Как я могу ссылаться на DLL в GAC из Visual Studio? - PullRequest
48 голосов
/ 15 января 2009

Эта сборка находится в GAC: Microsoft.SqlServer.Management.RegisteredServers.dll

Как добавить ссылку на эту сборку в Visual Studio?

Я могу просмотреть файл в c: \ windows \ assembly \

Ответы [ 10 ]

55 голосов
/ 16 сентября 2010

Как говорили другие, большую часть времени вам не захочется этого делать, потому что он не копирует сборку в ваш проект и не развертывается вместе с вашим проектом. Однако, если вы похожи на меня и пытаетесь добавить ссылку, которую все целевые машины имеют в своем GAC, но это не сборка .NET Framework:

  1. Открыть диалоговое окно запуска Windows (Windows Key + r)
  2. Введите C: \ Windows \ Assembly \ gac_msil. Это своего рода странный хак, который позволяет вам просматривать ваш GAC. Вы можете получить к нему только через диалог запуска. Надеюсь, что мое распространение этой информации не приведет к тому, что Microsoft исправит ее и заблокирует. (Слишком параноик?: P)
  3. Найдите вашу сборку и скопируйте ее путь из адресной строки.
  4. Откройте диалоговое окно «Добавить ссылку» в Visual Studio и выберите вкладку «Обзор».
  5. Вставьте путь к вашей сборке GAC.

Я не знаю, есть ли более простой способ, но я не нашел его. Я также часто использую шаги 1-3 для размещения файлов .pdb вместе с их сборками GAC, чтобы убедиться, что они не потеряны, когда мне позже потребуется использовать Remote Debugger.

14 голосов
/ 29 апреля 2010

Я создал совершенно бесплатный инструмент, который поможет вам достичь вашей цели. Muse VSReferences позволят вам добавить ссылку на глобальный кэш сборок в проект из пункта меню Добавить ссылку GAC.

Надеюсь, это поможет Muse VSExtensions

13 голосов
/ 15 января 2009

При регистрации сборок в GAC ссылка на сборку не помещается в диалог добавления ссылок. Вам по-прежнему нужно ссылаться на сборку по пути для вашего проекта, главное отличие в том, что вам не нужно использовать опцию копирования локально, ваше приложение найдет ее во время выполнения.

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

Обратите внимание: если вы отправляете ваше приложение кому-то, у кого не установлена ​​эта сборка, вам нужно будет его отправить, и в этом случае вам действительно нужно использовать распространяемый SharedManagementObjects.msi.

7 голосов
/ 29 апреля 2011

В VS2010 в окне «Добавить ссылки» вы можете нажать «Обзор» и перейти к C: \ Windows \ Assembly и добавить ссылки на нужные вам сборки. Обратите внимание, что файлы могут быть сгруппированы в разные папки, такие как GAC, GAC_32, GAC_64, GAC_MSIL и т. Д.

5 голосов
/ 15 января 2009

В VS щелкните правой кнопкой мыши ваш проект, выберите «Добавить ссылку ...», и вы увидите все пространства имен, которые существуют в вашем GAC. Выберите Microsoft.SqlServer.

EDIT:

Именно так вы хотите делать это большую часть времени. Тем не менее, после небольшого возни я обнаружил эту проблему в MS Connect. MS говорит, что это известная проблема развертывания, и у них нет обходного пути. Парень говорит, что если он скопирует dll из папки GAC и уронит его в свою корзину, это сработает.

4 голосов
/ 18 января 2012

Единственный способ, который сработал для меня, это скопировать dll на рабочий стол или что-то еще, добавить ссылку на него, а затем удалить dll с рабочего стола. Visual Studio обновится и, наконец, будет ссылаться на dll из GAC.

3 голосов
/ 15 января 2009

Предполагая, что вы уже попытались "Добавить ссылку ...", как описано выше, и не смогли, вы можете посмотреть здесь . Они говорят, что вы должны выполнить некоторые предварительные условия: - .NET 3.5 SP1 - Установщик Windows 4.5

РЕДАКТИРОВАТЬ: Согласно этой записи это известная проблема.

И это может быть решением, которое вы ищете :)

1 голос
/ 19 июня 2015

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

  1. Поместите свою DLL в GAC (для 3.5 Drag Drop внутри "C: \ Windows \ Assembly \" )
  2. Проекты GoTo -> Свойства
  3. Нажмите Ссылочный путь (для 3.5 это "C: \ Windows \ Assembly \" )
  4. и сборка

Надеюсь, это поможет

0 голосов
/ 14 августа 2015

Я нашел это расширение для VS 2013 Ссылка Vitevic GAC .

0 голосов
/ 13 января 2011

Соответствующие файлы и ссылки можно найти здесь:

http://msdn.microsoft.com/en-us/library/cc283981.aspx

Обратите внимание на ссылки о реализации / и т.д.

...