Pergunta

Não consigo SQLite motorista trabalhando no meu SessionFactory.

Eu transferi SQLite 1.0.48 de http://sqlite.phxsoftware.com/

Eu adicionei as referências a System.Data.SQLite no meu projeto testes.

public static IPersistenceConfigurer GetSqlLiteConfigurer()
        {
            try
            {
                return SQLiteConfiguration
                .Standard
                .InMemory();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

Isto é como eu gerar o configurer

O problema é quando eu construir meu SessionFactory eu recebo o seguinte erro:

NHibernate.HibernateException: The IDbCommand and IDbConnection implementation in the assembly System.Data.SQLite could not be found. Ensure that the assembly System.Data.SQLite is located in the application directory or in the Global Assembly Cache. If the assembly is in the GAC, use <qualifyAssembly/> element in the application configuration file to specify the full name of the assembly.
at NHibernate.Driver.ReflectionBasedDriver..ctor(String driverAssemblyName, String connectionTypeName, String commandTypeName)
at NHibernate.Driver.SQLite20Driver..ctor() 

Eu tentei mudança de versão SQLite, mas não corrigir o problema.

Não consigo encontrar qual é o problema e eu tenho vindo a trabalhar sobre isso por 2 dias agora.

Deixe-me saber se você precisar de mais informações.

Obrigado pela ajuda!

Charles

Foi útil?

Solução 2

Eu fixo o meu problema, obtendo o arquivo System.Data.SQLite.dll que está no SVN Repository FluentNHibernate.

Esta é agora a trabalhar muito bem.

Eu deveria ter conferir esse mais cedo;)

Outras dicas

Quando eu corri para este problema foi causado pela execução ter propriedade processador set do meu aplicativo para anycpu e rodando em um sistema de 64 bits. Para corrigir o problema que eu definir a minha propriedade processador de aplicação para x86. Eu não acho que os suportes System.Data.SQLite.dll rodando sob um processo x64.

Verifique, se você estiver usando 4.0 como a sua estrutura de destino. O ADO-driver atualmente (1.0.66) suporta apenas 3,5.

Eu estou batendo o mesmo problema em uma máquina de compilação. Ele funciona muito bem quando eu abrir o projeto com Visual Studio, mas quando eu executo MSTest.exe ele falha com o erro acima. Ele também falha em minha máquina de desenvolvimento local, quando eu corro pela linha de comando. Process Monitor mostra nenhuma tentativa de até mesmo localizar o arquivo MSTest.exe.

A máquina de construção é de 32 bits, minha máquina local é de 64 bits. O conjunto que estamos usando é a do tronco Fluent NHibernate.

UPDATE: Descobri-lo - MSTest.exe não estava copiando todas as assembléias, quando foi a ser executado a partir da linha de comando. Eu atualizei o localtestrun.config para incluí-los sob Implantação. Não sei por que o comportamento é diferente do IDE e teste de linha de comando corredor.

Esta questão deve ser fixado com o mais recente pacote NuGet da Microsoft.

PM> Install-Package SQLitePCL

https://www.nuget.org/packages/SQLitePCL/3.8.2

http: // msopentech .com / blog / 2014/02/03 / new-open-source-portátil-class-library-sqlite /

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top