Bunun neden henüz dahil edilmediğini bilmiyorum, ama araştırmayı yapmak ve bunu kendim bulmak zorunda kaldım, bu yüzden umarım birisi bu cevabı bulabilir ve beladan kurtulur. Bu bir WPF uygulaması içindi. Dev kutumda iyi çalıştı, ancak kopyaladığım bilgisayarda çalışmadı ve Unable to load DLL 'SQLite.Interop.dll'
hatayı aldım . Ben koştuğumda OP ile aynı hatayı aldığımda, ilişkili tüm dizinleri ve dosyaları doğrudan "Hata ayıklama" klasöründen bu diğer bilgisayara taşıdım. DLL'lerimi içeren "bin" klasörüm "Hata ayıklama \ bin" klasörüne kopyalanmıştı ve bu yolu kullanarak diğer bilgisayara kopyalama yaptığım zaman uygulama dosyaları ile birlikte dahil edildi, bu yüzden herhangi bir dosya eksik değildi.
Uygulanmayan diğer cevaplarda gördüğüm şeyler:
- NuGet paketini kullanmadım veya NuGet paketinin oluşturduğu anlaşılan x86 veya x64 klasörleri oluşturmam gerekiyor. DLL'lerim (System.Data.SQLite ve SQLite.Interop.dll, System.Data.SQLite.config ile birlikte) projemdeki "bin" klasöründedir ve manuel olarak kopyalanmıştır (Solution Explorer'da "bin" klasörü oluştur VS, DLL dosyalarını Windows Gezgini'nde bu klasöre yapıştırın, dosyaları VS klasörüne / projesine getirmek için Ekle> Mevcut Öğe'yi kullanın). Daha sonra bu konumu kullanarak projemdeki Referanslı Montajlar olarak referansta bulunuyorum ("Referanslar"> "Referans Ekle" ve bir tanesine göz atın, durulayın, geri kalanı için tekrarlayın ). Bu, projemin tam olarak nerede olduklarını bilmesini sağlar.
- Benim app.config dosyasında herhangi bir SQLite DLL dosyasına başvurmam, hatta MyProject.csproj dosyama dokunmam gerekmedi.
- Belirli bir işlemci belirtmem bile gerekmiyordu! Sadece karışık veya 64 bit DLL'leri olmasına ve yalnızca 64 bit işletim sistemi olan Windows 7+ üzerinde çalışmasına rağmen, projemin yapısı "Herhangi bir CPU" içindir. (yalnızca x86 / 32 bit yalnızca DLL yok)
- OP hatası yaşadığımda bunları zaten "İçerik" ve "daha yeni ise kopyala" olarak belirtiyordum.
Ne buldum, https://system.data.sqlite.org/index.html/doc/trunk/www/faq.wiki#q20 adresinden :
(11) Uygulamamı çalıştırmaya çalışırken neden DllNotFoundException ("sqlite3.dll" veya "SQLite.Interop.dll" için) alıyorum?
Adı belirtilen dinamik bağlantı kitaplığı (DLL) bulunamıyor veya eksik bağımlılıklar nedeniyle yüklenemiyor. Adı belirtilen dinamik bağlantı kitaplığının uygulama dizininde veya sistem PATH'si boyunca bir dizinde bulunduğundan emin olun ve tekrar deneyin. Ayrıca, statik olarak bağlanmış bir dinamik bağlantı kitaplığı kullanmıyorsanız , gerekli Visual C ++ çalışma zamanı yeniden dağıtılabildiğinden emin olun .
Paragrafın içindeki bu cesur kısım vurgu. Hedef bilgisayar yeni ve .NET 4.0 dışında yüklü programları yoktu. C ++ 'ı kurduktan sonra, SQLite komutlarını tamamlayabildi. Bu, ilk SSS'lerden biri ve ön gereksinimlerin bir parçası olmalı, ancak # 11'de gömüldü. Geliştirme bilgisayarım Visual Studio ile birlikte geldiğinden zaten yüklenmişti, bu yüzden orada çalıştı.
İndir:
Visual Studio 2015 için Visual C ++ Yeniden Dağıtılabilir:
https://www.microsoft.com/en-us/download/details.aspx?id=48145
Güncelleme 3 (toplu güncelleme):
https://www.microsoft.com/en-us/download/details.aspx?id=53587