我的Init()
实施者上的IWantCustomInitialization
方法是
public void Init()
{
NServiceBus.Configure.With()
.Log4Net()
.DefaultBuilder()
.MsmqTransport()
.IsTransactional(false)
.Sagas()
.NHibernateSagaPersisterWithSQLiteAndAutomaticSchemaGeneration()
.XmlSerializer();
}
错误是
数据库未通过Database方法配置。 ---> System.Resources.MissingManifestResourceException:找不到任何内容 适合特定文化或中立的资源 文化。确保“System.Data.SQLite.SR.resources”正确无误 在编译时嵌入或链接到程序集“System.Data.SQLite”, 或者所有需要的卫星组件都是可装载的并且是完全可装载的 签名。
在System.Resources.ManifestBasedResourceGroveler.HandleResourceStreamMissing (String fileName)
在System.Resources.ManifestBasedResourceGroveler.GrovelForResourceSet(Cultur) eInfo culture,Dictionary`2 localResourceSets,Boolean tryParents, 布尔创建者eIfNotExists,StackCrawlMark& stackMark)at System.Resources.ResourceManager.InternalGetResourceSet(的CultureInfo 请求tedCulture,Boolean createIfNotExists,Boolean tryParents, StackCrawlMark&安培;堆栈马克) System.Resources.ResourceManager.InternalGetResourceSet(的CultureInfo cultur e,Boolean createIfNotExists,Boolean tryParents)at System.Resources.ResourceManager.GetString(String name,CultureInfo 在System.Data.SQLite.SR.get_Keywords()中的文化e) c:\ dev \ sqlite \ dotnet \ System.Data.S QLite \ SR.Designer.cs:第87行 System.Data.SQLite.SQLiteConnection.Schema_ReservedWords()in c:\ dev \ sqlit e \ dotnet \ System.Data.SQLite \ SQLiteConnection.cs:第1239行 在System.Data.SQLite.SQLiteConnection.GetSchema(String collectionName,Strin g [] restrictionValues)in c:\ dev \ sqlite \ dotnet \ System.Data.SQLite \ SQLiteConnecti on.cs:第1223行 在System.Data.SQLite.SQLiteConnection.GetSchema(String c中的collectionName): \ dev \ sqlite \ dotnet \ System.Data.SQLite \ SQLiteConnection.cs:第1176行 在NHibernate.Dialect.Schema.AbstractDataBaseSchema.GetReservedWords() 在 NHibernate.Tool.hbm2ddl.SchemaMetadataUpdater.GetReservedWords(方言 dialect,IConnectionHelper connectionHelper)at NHibernate.Tool.hbm2ddl.SchemaMetadataUpdater.Update(ISessionFactory sessi onFactory)at NHibernate.Impl.SessionFactoryImpl..ctor(配置cfg,IMapping mappi ng,设置设置,EventListeners监听器)at NHibernate.Cfg.Configuration.BuildSessionFactory()在 FluentNHibernate.Cfg.FluentConfiguration.BuildSessionFactory()
版本:
答案 0 :(得分:1)
此版本的SQLite for .NET以2个dll分发:
两个dll都需要与EXE位于同一个文件夹中。 Interop dll是特定于平台的,因此您必须手动(或后期构建)复制x86或x64 版本。
要记住的另一件事是 SQLite.Interop.dll itslef取决于 MSVCR100.DLL (Visual C ++ 2010 SP1可再发行组件包的一部分)。你可以在这里得到它:
请注意,SQLite for .NET 3.5需要Visual C ++ 2008 SP1 Runtime。您可以使用Dependency Walker确认Interop程序集具有所有必需的依赖项。
可以找到此问题的解决方法here。但是,在不应用解决方法的情况下解决问题可能是一个好主意。