Подтвердить что ты не робот

Как я могу ссылаться на dll в GAC из Visual Studio?

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

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

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

4b9b3361

Ответ 1

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

  • Откройте диалоговое окно "Запуск Windows" (Windows Key + r)
  • Тип C:\Windows\assembly\gac_msil. Это какой-то странный хак, который позволяет вам просматривать ваш GAC. Вы можете добраться до него только через диалог запуска. Надеюсь, мое распространение этой информации в конечном итоге не заставит Microsoft ее исправлять и блокировать. (Слишком параноидальный?: P)
  • Найдите свою сборку и скопируйте ее путь из адресной строки.
  • Откройте диалоговое окно "Добавить ссылку" в Visual Studio и выберите вкладку "Обзор".
  • Вставьте путь к вашей сборке GAC.

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

Ответ 2

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

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

Ответ 3

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

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

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

Ответ 4

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

Ответ 5

В VS, щелкните правой кнопкой мыши ваш проект, выберите "Добавить ссылку...", и вы увидите все пространства имен, существующие в вашем GAC. Выберите Microsoft.SqlServer.Management.RegisteredServers и нажмите "ОК", и вам должно быть хорошо идти

EDIT:

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

Ответ 6

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

Ответ 7

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

EDIT: в соответствии с этим post это известная проблема.

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

Ответ 8

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

  • Поместите свою dll в GAC (для 3.5 Drag Drop внутри "C:\Windows\assembly \" )
  • Проекты GoTo → Свойства
  • Нажмите Путь ссылок (для 3.5 "C:\Windows\assembly \" )
  • и Build

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