2016-04-20 21 views
2

Umwelt:OpenCover Version 4.6.519 werfen System.InvalidProgramException: Common Language Runtime erkannte ein ungültiges Programm

C# 6

.NET Framework 4.6.1

NUnit Console 2.6.3


Ich verwende den folgenden Befehl, um Testabdeckung auf meinem Build zu erstellen:

"C: \ Programme (x86) \ OpenCover.4.6.519 \ OpenCover.Console.exe" -target: "C: \ Programme (x86) \ NUnit 2.6.3 \ bin \ nunit-console. exe“-targetargs: "/ nologo/NOSHADOW \ UnitTests.nunit /xml=UnitTestResults.xml" -Register -Ausgang: RawCoverageReport.xml -filter: " + [some name] - [some name] "

Allerdings bricht es meine Build auf dieser Version von OpenCover. In früheren Versionen hat der Build den Build-Unit-Test nicht durchbrochen, aber er erstellt keine Testabdeckung. Irgendwelche Hinweise?

System.InvalidProgramException: Common Language Runtime erkannte ein ungültiges Programm

Vielen Dank für Ihre Hilfe!

Antwort

3

Obwohl nicht mit OpenCover verwandt, haben wir die gleiche Ausnahme nach der Installation von .NET 4.6.1 beim Ausführen bestimmter XSL-Transformationen unter Verwendung der EXSLT-Bibliothek festgestellt.

Nach einigen Untersuchungen und Neuinstallation inkrementieren Versionen des .NET-Framework, begannen wir, die Fehler zu sehen, wenn .NET 4.6 installiert wurde.

Entsprechend dieser document wird standardmäßig ein neuer JIT-Compiler standardmäßig 4.6 installiert. Dies kann für einzelne Anwendungen deaktiviert werden, indem der Datei app.config der folgende Eintrag hinzugefügt wird.

Nachdem dieses Flag gesetzt wurde, wurde die aufgetretene Ausnahme gestoppt und die Ausnahme nicht erneut angezeigt.

Wenn Sie also davon ausgehen, dass Ihr Problem die gleiche Ursache hat, müssen Sie beim Ausführen von OpenCover zum Legacy-JIT-Compiler wechseln. Hoffentlich können Sie das Flag innerhalb der OpenCover app.config Datei setzen. Andernfalls müssen Sie eine der anderen Methoden zum Setzen des Flags verwenden, wie im oben verlinkten Artikel beschrieben.