Сборка GAC отсутствует в диалоговом окне Добавить ссылку - PullRequest
5 голосов
/ 19 декабря 2009

У меня есть сборка Interop, лежащая в GAC; Проводник Windows четко показывает его в папке C:\WINDOWS\assembly. Тем не менее, когда я пытаюсь добавить ссылку на нее из Visual Studio, я не вижу ее нигде в диалоговом окне Добавить ссылку.

Если это случилось и с тобой, в чем причина? И как мне это исправить?

(сборка на самом деле находится в папке C:\WINDOWS\assembly\GAC_MSIL, если вы должны знать.)

Ответы [ 7 ]

5 голосов
/ 19 декабря 2009

Добавьте один из следующих разделов реестра, где находится каталог для поиска, а MyAssemblies - это категория ваших сборок. Примечание. HKCU предназначен для текущего пользователя, а HKLM - для всех на одном компьютере.

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework\<version>\AssemblyFoldersEx\MyAssemblies]@="<AssemblyLocation>"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\<version>\AssemblyFoldersEx\MyAssemblies]@="<AssemblyLocation>"
3 голосов
/ 29 апреля 2010

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

2 голосов
/ 20 декабря 2009

Как уже отмечали другие, простая установка сборки в GAC не гарантирует ее появления в диалоговом окне «Добавить ссылку». Я нашел эту страницу MSDN с подробностями. См. Раздел Для отображения сборки в диалоговом окне «Добавить ссылку» .

0 голосов
/ 28 июля 2011

Кроме того, я отредактировал файл проекта и добавил ссылку вручную.

  1. Установите сборку в GAC. gacutil /i "Foo.dll"
  2. Найдите строгое название сборки. gacutil /l даст вам список, из которого вы можете выбрать.
  3. В файле проекта-потребителя добавьте следующую строку (из предыдущего шага)
  4. <Reference Include="Foo, Version=x.x, Culture=neutral, PublicKeyToken=xxx, processorArchitecture=MSIL" />
  5. И это работает. :)
0 голосов
/ 26 января 2011

Вы также можете сопоставить папку GAC с виртуальным диском, а затем добавить ссылку GAC через вкладку обзора.

Руководство от MZ-Tools

0 голосов
/ 20 апреля 2010

Используйте эту команду в командной строке Visual Studio

regsvr32 / u shfusion.dll

0 голосов
/ 19 декабря 2009

«C: \ WINDOWS \ assembly» - это специальная папка, которая в проводнике Windows перечисляет сборки (и информацию о сборке) в различных подпапках.

В вашем случае вам может потребоваться указать его физический путь, который называется "C: \ Windows \ assembly \ GAC_MSIL ..... dll" в VS.NET.

...