Cuando llegue a este estado, intente realizar una Reconstrucción de todo. Si esto soluciona el problema, es posible que tenga el mismo problema que tuve.
Algunos antecedentes (mi entendimiento) :
SQLite tiene 1 ensamblado administrado (System.Data.SQLite.dll) y varios ensamblados específicos de plataforma (SQLite.Interop.dll). Al instalar SQLite con Nuget, Nuget agregará los ensamblados específicos de la plataforma a su proyecto (dentro de varias carpetas: \ x86, \ x64) y configurará estos dlls para "Copiar siempre".
Tras la carga, el ensamblado administrado buscará ensamblados específicos de la plataforma dentro de las carpetas \ x86 y \ x64. Puedes ver más sobre eso aquí . La excepción es este ensamblado administrado que intenta encontrar el relevante (SQLite.Interop.dll) dentro de estas carpetas (y falla).
Mi escenario :
Tengo 2 proyectos en mi solución; una aplicación WPF y una biblioteca de clases. La aplicación WPF hace referencia a la biblioteca de clases, y la biblioteca de clases hace referencia a SQLite (instalado a través de Nuget).
El problema para mí fue que cuando modifico solo la aplicación WPF, VS intenta hacer una reconstrucción parcial (dándose cuenta de que el dll dependiente no ha cambiado). En algún lugar de este proceso, VS limpia el contenido de las carpetas \ x86 y \ x64 (eliminando SQLite.Interop.dll). Cuando hago una reconstrucción completa, VS copia correctamente las carpetas y su contenido.
Mi solución :
Para solucionar esto, terminé agregando un proceso posterior a la compilación usando xcopy para forzar la copia de las carpetas \ x86 y \ x64 de la biblioteca de clases a mi directorio de proyecto WPF \ bin.
Alternativamente, podría hacer cosas más sofisticadas con los directorios de configuración / salida de compilación.