Ответ 1
после большего поиска я нашел это:
Если вы нашли эту ветку, потому что вы пытаетесь получить NCover 1.5.8 для работайте с .NET 4, затем следуйте следует исправить эту ошибку:
Откройте командную строку и введите следующий набор COMPLUS_ProfAPI_ProfilerCompatibilitySetting = EnableV2Profiler
Это дает команду NET 4 CLR загружать .NET Framework 2.0 Profiler.
Для получения дополнительной информации см. http://msdn.microsoft.com/en-us/library/dd778910.aspx
в конце потока здесь
который, кажется, решает мою проблему
ИЗМЕНИТЬ:
он действительно не решает мою проблему. Теперь он просто позволяет генерировать файл coverage.xml, но он содержит только сборки сборки v2.0, поэтому профили .net 2.0 профилируются....
Grrr. вернуться к чертежной доске...
РЕДАКТИРОВАТЬ 2
Аллилуйя! Я понял это из-за процесса случайного googling и изменения. во всяком случае, из-за некоторых указателей найдено здесь Я смог выяснить, что мне нужно было сделать, чтобы изменить exe.config приложения запуск файла кода (nunit.console-x86.exe в этом случае), чтобы не только принудительно загрузить определенную версию .net-структуры, но и разрешить использование устаревшей политики активации. Чтобы сократить длинный рассказ, я смог решить это:
- Добавление в nunit-console-x86.exe.config следующего раздела:
<configuration> <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0.30319"/> </startup> </configuration>
-
установка этих параметров в среде, из которой запускается команда:
set ProfAPI_ProfilerCompatibilitySetting=EnableV2Profiler
set COMPLUS_ProfAPI_ProfilerCompatibilitySetting=EnableV2Profiler
(не уверен, что оба необходимы, но то, что я сделал)
Я также добавил аналогичную настройку в NCover.Console.Exe.config, но, оказывается, это не нужно.
РЕДАКТИРОВАТЬ 3
это используемая мной командная строка (обратите внимание, что я скопировал все ncover и nunit и мои тестовые сборки в один каталог, чтобы упростить).
NCover.Console.exe nunit-console-x86.exe /framework=4.0.30319 Your.Test.Assembly.dll //x coverage.xml //reg