Pergunta

Estou usando o SQLite e o invólucro de http://sqlite.phxsoftware.com/ E quando adiciono uma fonte de dados ao meu projeto, recebo o erro:

"Alguns comandos de atualização não puderam ser gerados automaticamente, o banco de dados retornou ao seguinte erro: falhou ao encontrar ou carregar o provedor de dados da estrutura .NET registrado"

Eu tenho o mais recente pacote de serviço .NET e desinstalei e reinstalei o software SQLite. Também procurei outros lugares que sugerem que essa entrada não esteja no arquivo Machine.Config:

  <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite, Version=1.0.27.1, Culture=neutral, PublicKeyToken=db937bc2d44ff139"/>

Quando olhei, nem encontrei um arquivo Machine.Config na pasta C: Windows Microsoft.net Framework V3.5, mas encontrei uma no C: Windows Microsoft.net Framework V2 .0.50727

Alguém tem alguma ideia do que está acontecendo? Preciso desinstalar toda a estrutura do .NET e, em seguida, instalar a versão 3.5 apenas para obter esse erro para desaparecer?

Qualquer ajuda seria apreciada.

Obrigado.

Foi útil?

Solução

Você pode adicionar uma referência direta ao System.data.sqlite em seu aplicativo e instanciar o SQLiteFactory?

Usamos o SQLite com a DLL diretamente no diretor de bin do nosso aplicativo (não no GAC) e temos essa linha em nossa web/app.config, para que não estamos confiando no Machine.config (implantação do FACES).

<system.data>
    <DbProviderFactories>
        <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite"/>
    </DbProviderFactories>
</system.data>

Outras dicas

Isso também pode ocorrer se o computador não tiver o Microsoft Visual C ++ 2010 instalado

Você não precisa de C ++ visual 2010 ... !!! Copie apenas "msvcr100.dll" na pasta de liberação ...

O "System.data.sqlite.dll" precisa de "msvcr100.dll"

Suponho que você esteja usando o VS 2008. Verifique a versão da estrutura que você está construindo.

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