我知道这是一个“重复”,但所有其他帖子的答案对我不起作用。 我的错误信息也略有不同。
无论我尝试什么,我都无法让SQLite运行。我已经尝试了在net / stackoverflow和每组SQLite DLL上找到的所有东西。
我试过了:
<runtime>
<loadFromRemoteSources enabled="true" />
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Data" publicKeyToken="b77a5c561934e089"/>
<bindingRedirect oldVersion="2.0.0.0" newVersion="4.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
我也尝试了DLL的安全和不安全版本。 NUnit.exe将通过测试,但在Visual Studio中使用TestDriven.Net运行它们不起作用。
当流畅的nhibernate运行配置时的完整堆栈跟踪:
SetUp : FluentNHibernate.Cfg.FluentConfigurationException : An invalid or incomplete configuration was used while creating a SessionFactory. Check PotentialReasons collection, and InnerException for more detail.
----> System.Resources.MissingManifestResourceException : Could not find any resources appropriate for the specified culture or the neutral culture. Make sure "System.Data.SQLite.SR.resources" was correctly embedded or linked into assembly "System.Data.SQLite" at compile time, or that all the satellite assemblies required are loadable and fully signed.
d:\Builds\FluentNH-v1.x-nh3\src\FluentNHibernate\Cfg\FluentConfiguration.cs(232, 0) : FluentNHibernate.Cfg.FluentConfiguration.BuildSessionFactory()
C:\inetpub\wwwroot\TrunkB\Company.Tests\BaseNHibernateTest.cs(50, 0) : Company.Tests.BaseSQLiteNHibernateTest.<SetUp>b__1(IInitializationExpression x)
C:\inetpub\wwwroot\TrunkB\Company.Tests\BaseNHibernateTest.cs(36, 0) : Company.Tests.BaseSQLiteNHibernateTest.SetUp()
d:\CSharp\NH\NH\nhibernate\src\NHibernate\Dialect\Schema\AbstractDataBaseSchema.cs(97, 0) : NHibernate.Dialect.Schema.AbstractDataBaseSchema.GetReservedWords()
d:\CSharp\NH\NH\nhibernate\src\NHibernate\Tool\hbm2ddl\SchemaMetadataUpdater.cs(47, 0) : NHibernate.Tool.hbm2ddl.SchemaMetadataUpdater.GetReservedWords(Dialect dialect, IConnectionHelper connectionHelper)
d:\CSharp\NH\NH\nhibernate\src\NHibernate\Tool\hbm2ddl\SchemaMetadataUpdater.cs(17, 0) : NHibernate.Tool.hbm2ddl.SchemaMetadataUpdater.Update(ISessionFactory sessionFactory)
d:\CSharp\NH\NH\nhibernate\src\NHibernate\Impl\SessionFactoryImpl.cs(169, 0) : NHibernate.Impl.SessionFactoryImpl..ctor(Configuration cfg, IMapping mapping, Settings settings, EventListeners listeners)
d:\CSharp\NH\NH\nhibernate\src\NHibernate\Cfg\Configuration.cs(1246, 0) : NHibernate.Cfg.Configuration.BuildSessionFactory()
d:\Builds\FluentNH-v1.x-nh3\src\FluentNHibernate\Cfg\FluentConfiguration.cs(227, 0) : FluentNHibernate.Cfg.FluentConfiguration.BuildSessionFactory()
我现在也收到此错误:
Company.Tests.Infrastructure.TruckRepositoryTests.CanLoadTrucksByUserIdFilter:
SetUp : System.BadImageFormatException : Could not load file or assembly 'System.Data.SQLite, Version=1.0.66.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139' or one of its dependencies. An attempt was made to load a program with an incorrect format.
答案 0 :(得分:4)
System.BadImageFormatException
这很可能意味着您尝试将32位程序集加载到64位进程中,反之亦然。我想你正在运行64位操作系统。在这种情况下,如果选择任何CPU配置,程序将作为64位进程运行。 NUnit和Testdriven.NET中的一个可能以32位运行,而另一个64位可以解释为什么一个可以工作而另一个没有。
使用32/64位进程运行时,请确保使用正确版本的Sqlite(32位或64位)。
UPDATE :TestDriven.NET有一个选项,它使用32位或64位进程。转到工具 - &gt;选项 - &gt; TestDriven.NET并将任何CPU测试更改为使用64位而不是。
答案 1 :(得分:3)
我有一个问题,使用流畅的nhibernate和sqlite自动化,在.net framework 4解决方案中,我检查了新的system.data.sqlite网站,这是一个与库内资源相关的问题,它们已经修复但是不是它不会很快发布。
与签到的链接: Checkin info in system.data.sqlite repository
我下载了我自己编译的源代码,它现在正在使用流畅的nhibernate中的automapper,也许可以为你工作,同时system.data.sqlite的人们重新推出一个新版本: