經過搜索,我發現這一點:
If you have found this thread because you are trying to get NCover 1.5.8 to work with .NET 4 then the following should fix this error:
Open a command prompt and type the following set COMPLUS_ProfAPI_ProfilerCompatibilitySetting=EnableV2Profiler
This instructs the .NET 4 CLR to load the .NET Framework 2.0 Profiler.
For more information see: http://msdn.microsoft.com/en-us/library/dd778910.aspx
在螺紋here
這似乎解決我的問題
編輯結束:
它不」真的解決我的問題。現在它只是允許生成coverage.xml,但它只包含v2.0框架程序集,因此只有.net 2.0程序集可以進行概要分析....
Grrr。回到繪圖板...
EDIT 2
哈利路亞!我已經通過隨機搜索和更改的過程瞭解了這一點。無論如何,由於一些指針發現here我能夠弄清楚,我需要做的是改變運行代碼的應用程序的exe.config(在這種情況下nunit.console-x86.exe)文件不僅強制要加載的.net框架的特定版本,還要允許使用舊版激活策略。爲了削減長話短說我能夠解決這個:
- 添加到NUnit控制檯-x86.exe.config以下部分:
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0.30319"/>
</startup>
</configuration>
我還添加了一個類似的設置到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
感謝命令行。我試過這個,但是當它運行ncover和ncover運行nunit時,它似乎不可能連接分析器,並且ncover只是掛起而我得到了`異常終止的進程。探測器連接未建立.`運行nunit測試後,日誌和覆蓋率文件未更新... – 2011-02-07 14:05:52
我對此進行了升級,因爲它沿着正確的軌道行進,最終有幫助。答案是讓NUnit在.NET 4.0運行時運行,並在配置文件的`startup`元素中添加'useLegacyV2RuntimeActivationPolicy =「true」`屬性。請參閱下面的答案。感謝您的幫助。 – 2011-02-08 08:11:31