O que causa o System.badImageFormatexception ao construir System.data.sqlite.sqliteConnection
-
20-09-2019 - |
Pergunta
Eu quebrei o código para a menor declaração possível:
Dim cn As System.Data.SQLite.SQLiteConnection
E recebo o seguinte erro ao chamar o código de um Winform Applicaiton:
System.badImageFormatexception: Não foi possível carregar arquivo ou montagem 'System.data.sqlite, versão = 1.0.65.0, cultura = neutro, publicKeyToken = db937bc2d44ff139' ou uma de suas dependências. Foi feita uma tentativa de carregar um programa com um formato incorreto. Nome do arquivo: 'System.data.sqlite, versão = 1.0.65.0, cultura = neutro, publicKeyToken = db937bc2d44ff139'
No entanto, chamando a mesma parte do código do teste de unidade MS, não recebo o erro, além do conjunto de código completo funciona conforme o esperado.
Solução
O SQLLITE contém código não gerenciado, você não pode executá-lo em um sistema operacional de 64 bits, a menos que você implante a versão de 64 bits. Correção rápida: Projeto + Propriedades, guia Construir, plataforma Target = x86.
Outras dicas
Certifique -se de usar a montagem correta em relação a 32 e 64 bits.
Eu resolvi o problema baixando uma nova versão da SQLite DLL via NuGet:http://gustop.net/blog/2011/05/19/sqlite-database-nuget-package-common-problems-solved/