Не удается запустить mspec.exe с Syste.Data.SQLite.dll x86, но он работает в R # MSpec runner - PullRequest
1 голос
/ 26 сентября 2010

Я использую mspec для своих тестов и имею NHiernate Setup, использующий SQLite x86 для моей базы данных в тестах.Проблема в том, что когда я запускаю свой тест с использованием бегунка mspec r #, все работает нормально, но при запуске его из консоли возникает ошибка, из-за которой не удается найти sqlite dll.

Моя конфигурация проектов спецификации:

.net 4

x86 (используется версия sqlite для x86)

System.Data.SQLite, версия = 1.0.64.0, культура = нейтральная, PublicKeyToken = db937bc2d44ff139 mspec, версия= 0.3.0.0, Культура = нейтральная, PublicKeyToken = ноль, целевая среда выполнения: v4.0.30319, цель: x86

MSpec создается из исходного кода.В Reflector файл mspec.exe отображается как созданный для x86 - что кажется правильным для моей установки, и, как уже говорилось, тесты работают нормально с использованием r # runner.

NHibernate.HibernateException: не удалось создать драйвер изNHibernate.Driver.SQLite20Driver, NHibernate, Версия = 2.1.2.4000, Культура = нейтральная, PublicKeyToken = aa95f207798dfdb4.---> System.Reflection.TargetInvocationException: исключение было сгенерировано целью вызова.---> NHibernate.HibernateException: не удалось найти реализацию IDbCommand и IDbConnection в сборке System.Data.SQLite.Убедитесь, что сборка System.Data.SQLite находится в каталоге приложения или в глобальном кэше сборок.Если сборка находится в GAC, используйте элемент в файле конфигурации приложения, чтобы указать полное имя сборки.в NHibernate.Driver.ReflectionBasedDriver..ctor (String driverAssemblyName, String connectionTypeName, String commandTypeName) в NHibernate.Driver.SQLite20Driver..ctor ()

Кто-нибудь знает, как это исправить?

спасибо заранее и привет от облачной вены,

Крис

1 Ответ

7 голосов
/ 27 сентября 2010

Используя fuslogvw.exe, я обнаружил ошибку (спасибо за подсказку;): «Отклонение модуля IJW, созданного для v2.0.50727, поскольку он может быть загружен в другое время выполнения в этом процессе».

Добавление файла mspec.exe.config, например:

<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true" ></startup>
</configuration>

решил проблему, теперь ожидаются мои тестовые руны.

спасибо и приветствия,

1010 * Крис *

...