nunit на сборке конечных версий: “Общеязыковая среда выполнения обнаружила недопустимую программу”.

Я обновил наше программное обеспечение от vs2008/.net 3.5 до vs2010/.net 4.0. Все сторонние библиотеки (самый релевантный: nhibernate 2.1.2 или 3.0.0, nunit 2.5.2), все еще компилируются с помощью vs2008. Когда я выполняю модульные тесты на отладочную сборку нашего программного обеспечения, все хорошо работает. На сборке конечных версий nunit сообщает об исключениях относительно 33 из 228 тестов: System.InvalidProgramException : Common Language Runtime detected an invalid program. Это всегда происходит на тех же тестах, и для nunit-консоли и для исполнителя тестов Resharper 5.0. Когда я выполняю их использующий Resharper, "отлаживают модульные тесты" команда, вся тестовая передача. Это не имеет никакого значения, запускаю ли я тесты индивидуально или обработанный в пакетном режиме. Исключение всегда происходит рядом nhibernate вызовы запроса, но я не могу сказать наверняка, так как отслеживание стека сборки конечных версий несколько редко. Это не зависит от nhibernate генератора байт-кода, то же исключение появляется для замка и linfu. У кого-либо есть идея, как отладить это?

Править: Удаление Spring.NET не имело никакого эффекта на эту проблему.

Править: Когда я переключаю вывод отладки конфигурации выпуска на полный вместо pdb только и деактивирую оптимизировать флажок кода, исключение исчезает. Обе настройки требуются, если я изменяю только одного из них, ошибка остается. Однако другой набор тестов перестал работать, если я только изменяю тот. Все библиотеки классов компилируются для Любого ЦП.

6
задан Malte Clasen 8 January 2011 в 18:54
поделиться