Как я могу ссылаться на dll в GAC из Visual Studio?
Эта сборка находится в GAC: Microsoft.SqlServer.Management.RegisteredServers.dll
Как добавить ссылку на эту сборку в Visual Studio?
Я могу просмотреть файл в c:\windows\assembly\
Ответы
Ответ 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
Надеюсь, что это поможет
Ответ 9
Соответствующие файлы и ссылки можно найти здесь:
http://msdn.microsoft.com/en-us/library/cc283981.aspx
Обратите внимание на ссылки на него о реализации/etc.
Ответ 10
Я нашел это расширение для VS 2013 Vitevic GAC Reference.