Ainda não sei por que isso ainda não foi incluído, mas tive que fazer a pesquisa e descobrir isso sozinho, por isso espero que alguém encontre essa resposta e seja salvo do problema. Isso foi para um aplicativo WPF. Funcionou bem na minha caixa de desenvolvimento, mas não funcionou no computador em que eu estava copiando e recebi o Unable to load DLL 'SQLite.Interop.dll'
erro. Eu movi todos os diretórios e arquivos associados, diretamente da minha pasta "Debug" para outro computador quando recebi o mesmo erro do OP quando o executei. Minha pasta "bin" que continha minhas DLLs foi copiada para "Debug \ bin" e todas foram incluídas, junto com meus arquivos de aplicativo, quando eu copiei para o outro computador usando esse caminho, para que não houvesse nenhum arquivo ausente.
O que vi foi dito em outras respostas que não se aplicavam:
- Eu não usei o pacote NuGet ou preciso criar pastas x86 ou x64 que parece que o pacote NuGet cria. Minhas DLLs (System.Data.SQLite e SQLite.Interop.dll, juntamente com System.Data.SQLite.config) estão na pasta "bin" do meu projeto e foram copiadas manualmente (crie a pasta "bin" no Gerenciador de Soluções em VS, cole DLLs nesta pasta no Windows Explorer, use Adicionar> Item Existente para trazer arquivos para a pasta / projeto do VS). Em seguida, eu os refiro como Assemblies Referenciados no meu projeto usando esse local ("Referências"> "Adicionar Referência" e navegue até um, enxágue e repita o restante). Isso garante que meu projeto saiba exatamente onde eles estão.
- Não precisei fazer referência a nenhum arquivo DLL SQLite no meu app.config ou sequer tocar no meu arquivo MyProject.csproj.
- Eu nem precisava especificar um processador específico! A compilação do meu projeto é para "Qualquer CPU", mesmo que eu tenha apenas DLLs mistas ou de 64 bits e esteja executando apenas no Windows 7+, que são sistemas operacionais de 64 bits. (sem DLLs somente para x86 / 32 bits)
- Eu já estava especificando-os como "Conteúdo" e "copie se for mais recente" para essas DLLs quando tive o erro do OP.
O que eu encontrei foi isso, em https://system.data.sqlite.org/index.html/doc/trunk/www/faq.wiki#q20 :
(11) Por que obtenho uma DllNotFoundException (para "sqlite3.dll" ou "SQLite.Interop.dll") ao tentar executar meu aplicativo?
A biblioteca de vínculo dinâmico (DLL) nomeada não pode ser localizada ou não pode ser carregada devido à falta de dependências. Verifique se a biblioteca de vínculo dinâmico nomeada está localizada no diretório do aplicativo ou em um diretório ao longo do PATH do sistema e tente novamente. Além disso, verifique se o tempo de execução necessário do Visual C ++ redistribuível foi instalado, a menos que você esteja usando uma biblioteca de vínculo dinâmico que foi criada estaticamente vinculada a ele.
Ênfase minha nessa parte em negrito dentro do parágrafo. O computador de destino estava atualizado e não tinha programas carregados, exceto o .NET 4.0. Depois de instalar o C ++, ele foi capaz de concluir os comandos para o SQLite. Essa deveria ter sido uma das primeiras perguntas frequentes e parte dos pré-requisitos, mas foi enterrada na 11ª posição. Meu computador de desenvolvimento já o carregou porque veio com o Visual Studio; é por isso que funcionou.
Download:
Visual C ++ redistribuível para Visual Studio 2015:
https://www.microsoft.com/en-us/download/details.aspx?id=48145
Atualização 3 (atualização cumulativa):
https://www.microsoft.com/en-us/download/details.aspx?id=53587