Запуск проекта хоста NServiceBus вызывает ошибку при попытке настроить базу данных SQLite для саги

Метод Init() в моем IWantCustomInitialization разработчике:

public void Init()
{
    NServiceBus.Configure.With()
        .Log4Net()
        .DefaultBuilder()
        .MsmqTransport()
        .IsTransactional(false)
        .Sagas()
        .NHibernateSagaPersisterWithSQLiteAndAutomaticSchemaGeneration()
        .XmlSerializer(); 

}

Ошибка

База данных не была настроена с помощью метода базы данных. ---> System.Resources.MissingManifestResourceException: Не удалось найти ресурсы, подходящие для указанной культуры или нейтральной культуры. Убедитесь, что «System.Data.SQLite.SR.resources» правильно встроен или связан со сборкой «System.Data.SQLite» во время компиляции, или что все необходимые вспомогательные сборки загружаются и полностью подписаны. < br> в System.Resources.ManifestBasedResourceGroveler.HandleResourceStreamMissing (String fileName)
в System.Resources.ManifestBasedResourceGroveler.GrovelForResourceSet (Cultur eInfo culture, Dictionary`2 localResourceSets, StackResourceSets, StackResourceSets, StackResourceSets, StackResourceSets, StackResources ResourceManager.InternalGetResourceSet (CultureInfo запрашивает tedCulture, логическое значение createIfNotExists, логическое tryParents, StackCrawlMark и отметку стека) в System.Resources.ResourceManager.InternalGetResourceSet (CultureInfo cultur e, BooleanResourceSet (CultureInfo cultur e, BooleanResourceResourceSet (CultureInfo cultur e, Boolean createIfNot) cultur e) в System.Data.SQLite.SR.get_Keywords () в c: \ dev \ sqlite \ dotn et \ System.Data.S QLite \ SR.Designer.cs: строка 87 в System.Data.SQLite.SQLiteConnection.Schema_ReservedWords () в c: \ dev \ sqlit e \ dotnet \ System.Data.SQLite \ SQLiteConnection.cs: строка 1239 в System.Data.SQLite.SQLiteConnection.GetSchema (String collectionName, Strin g [] resttionValues) в c: \ dev \ sqlite \ dotnet \ System.Data.SQLite \ SQLiteConnecti on.cs: строка 1223 в System.Data. SQLite.SQLiteConnection.GetSchema (String collectionName) в c: \ dev \ sqlite \ dotnet \ System.Data.SQLite \ SQLiteConnection.cs: строка 1176
в NHibernate.Dialect.Schema.AbstractDataBaseSchema.GetReservedWords () в NHibernate.Tool .hbm2ddl.SchemaMetadataUpdater.GetReservedWords (Диалект диалекта, IConnectionHelper connectionHelper) в NHibernate.Tool.hbm2ddl.SchemaMetadataUpdater.Update (ISessionFactory sessions. слушатели) в NHibernate.Cfg.Configuration.BuildSes sionFactory () в FluentNHibernate.Cfg.FluentConfiguration.BuildSessionFactory ()

Версии:

  • NServiceBus 2.5.0.1496
  • System.Data.Sqlite 1.0.74.0

person Glenn Slaven    schedule 01.09.2011    source источник


Ответы (1)


Эта версия SQLite для .NET распространяется в виде двух dll:

  • System.Data.SQLite.dll
  • SQLite.Interop.dll

Обе библиотеки должны находиться в той же папке, что и ваш EXE. Interop dll зависит от платформы, поэтому вам нужно вручную (или после сборки) скопировать версию x86 или x64.

Также следует иметь в виду, что SQLite.Interop.dll зависит от MSVCR100.DLL (часть распространяемого пакета Visual C ++ 2010 SP1). Вы можете получить его здесь:

Обратите внимание, что для SQLite для .NET 3.5 требуется среда выполнения Visual C ++ 2008 SP1. Вы можете подтвердить, что сборка Interop имеет все необходимые зависимости, используя Dependency Walker.

Обходной путь для этой проблемы можно найти здесь. Но было бы неплохо решить проблему, не применяя обходной путь.

person Dmitry    schedule 02.09.2011
comment
Я знаю, я на 64-битной машине, и я сослался на sqlite dll, и этап пост-сборки скопировал взаимодействие. У меня установлен пакет C ++ - person Glenn Slaven; 02.09.2011
comment
Я даже пробовал использовать 32-битную версию просто для удовольствия, тоже не сработало - person Glenn Slaven; 02.09.2011
comment
Нет, к сожалению, это тоже не помогло - person Glenn Slaven; 06.09.2011
comment
Я предполагаю, что вам придется использовать Process Explorer и Dependency Walker, чтобы убедиться, что все зависимости загружены. - person Dmitry; 06.09.2011
comment
Похоже, вы работаете на сербском? (SR) культура. Не могли бы вы вместо этого попробовать переключиться на английскую культуру? stackoverflow.com/ questions / 468791 / - person Andreas Öhlund; 07.09.2011