NUnit & Probing Paths - PullRequest
       1

NUnit & Probing Paths

0 голосов
/ 20 августа 2009

Примечание: все сборки здесь , а не со строгим именем

Я использую NUnit (пробовал 2.4.2 и 2.5.2) для запуска тестов в сборке A. Сборка A ссылается на сборку B v2. Сборка A также ссылается на сборку C, которая, в свою очередь, ссылается на сборку B v1.

Когда я запускаю сборку A из каталога bin \ Debug, который содержит только сборку B v2, тесты завершаются с сообщением о том, что сборка B v1 не может быть найдена.

Я пытаюсь решить эту проблему, создав файл assemblyA.dll.config. В этом файле я указываю перенаправление привязки (хотя я знаю, что они не применяются к сборкам со строгим именем) и путь поиска, который должен позволить NUnit просто использовать сборку B v2.

К сожалению, я продолжаю получать ту же ошибку.

Я также пытался использовать FusionLogViewer для проверки процесса привязки.

Assembly Binder Log Entry  (8/19/2009 @ 4:54:38 PM) ***

The operation was successful.
Bind result: hr = 0x0. The operation completed successfully.

Assembly manager loaded from:  C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll
Running under executable  D:\svncheckout\gl\ext\win32\sourceforge\nunit-net20\2.5.2\nunit.exe
--- A detailed error log follows. 

=== Pre-bind state information ===
LOG: User = ????
LOG: DisplayName = assemblyB, Version=1.0.3511.15236, Culture=neutral, PublicKeyToken=null
 (Fully-specified)
LOG: Appbase = .../bin/Debug
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = Tests_1523525484
Calling assembly : assemblyC, Version=1.0.0.64031, Culture=neutral, PublicKeyToken=null.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file:...\bin\Debug\assemblyA.dll.config
LOG: Using machine configuration file from C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\config\machine.config.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Binding succeeds. Returns assembly from ...\bin\Debug\assemblyB.dll. (this is v2)
LOG: Assembly is loaded in default load context.

Есть мысли?

1 Ответ

0 голосов
/ 20 августа 2009

В качестве дополнения у меня возникает следующий вопрос: я думал, что при работе со сборками без строгих имен CLR загружает и использует любую доступную версию. Смотрите эту страницу от Expert C ++ / CLI . Если это правда, почему NUnit жалуется на невозможность найти сборку B v1? Это как-то связано с тем, что NUnit создает отдельный домен AppDomain для запуска тестов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...