Как сборки NUnit появляются в диалоге VS Add Add? - PullRequest
0 голосов
/ 21 октября 2008

Таким образом, после установки NUnit сборки (nunit.framework и т. Д.) Теперь отображаются в диалоговом окне References > Add Reference, но их нет в каталоге %WINDIR%\Microsoft.NET\Framework\v2.0.50727, и в реестре нет записи NUnit для сборки Путь (i.e. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramewokr\AssemblyFolder).

В свойствах проекта также не созданы автоматические записи. Справочные пути для каталога установки NUnit. Как, черт возьми, они появляются в «Добавить диалог»?!?! Я думал, что упомянутый способ был единственным способом, которым сборки могли появиться в "Добавить ссылку".

Ответы [ 3 ]

2 голосов
/ 26 октября 2008

Я углубился в это на выходных. Воспроизведено дословно из моего блога :

Почему NUnit отсутствует в GAC? (или почему [сборка X] не отображается в диалоговом окне «Добавление ссылки» в Visual Studio?)

Поскольку Visual Studio не ищет ссылки в GAC:

Это по замыслу.

Вы можете добавить свои файлы явно, что не работает, если другие люди в вашей команде установили файлы где-то еще, например, C: \ Program Files \ NUnit 2.4.6 против C: \ Program Files \ NUnit -2.4.6. Или (точнее, потому что это проблема, с которой я столкнулся сегодня утром) C: \ Program Files \ NUnit 2.4.6 против C: \ Program Files (x86) \ NUnit 2.4.6. Обратите внимание на (x86) - мой домашний компьютер (по состоянию на прошлые выходные) работает под управлением Vista Ultimate x64.

У вас есть несколько вариантов:

  • Если у ваших сборок еще нет домов, вы можете поместить их в папку VS PublicAssemblies: http://blogs.msdn.com/csharpfaq/archive/2004/10/20/245239.aspx
  • Если у них уже есть дома, вы можете добавить их в раздел реестра HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ .NETFramework \ AssemblyFolders: http://support.microsoft.com/?kbid=306149.
  • Если вы разрабатываете сборки для использования другими разработчиками (например, вы являетесь Microsoft или поставщиком средства разработки), вы можете поместить их в подкаталог C: \ Program Files \ Reference Assemblies, а затем добавить его в раздел реестра AssemblyFolders.

Это означает, что файлы вашего проекта будут ссылаться на сборку по имени (то есть по имени, версии, токену открытого ключа, всему тому джазу), и не имеет значения, где он фактически установлен на вашем ПК.

Обратите внимание, что это не работает как есть на 64-битной, потому что Visual Studio является 32-битным приложением. Вам на самом деле нужно зарегистрировать свои материалы в HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ .NETFramework \ AssemblyFolders, и вам, вероятно, следует зарегистрироваться в обоих.

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

0 голосов
/ 21 октября 2008

В моей установке NUnit у меня есть раздел реестра

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\AssemblyFolders\NUnit 2.4.3

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

0 голосов
/ 21 октября 2008

Странно, [HKEY_CURRENT_USER \ SOFTWARE \ Microsoft.NETFramework \ AssemblyFolders] должно быть единственным, что движет этим.

Возможно, этот фрагмент из этой страницы актуален?

Если вы устанавливаете .NET Framework 3.0 с пакетом обновления 1 (SP1), добавляется следующий раздел реестра:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\AssemblyFolders\v3.0

Если вы устанавливаете .NET Framework 3.5, добавляется следующий раздел реестра:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\AssemblyFolders\v3.5
...