2011-02-18 110 views
2

我正在一個項目上,我需要使用一些數據庫。我選擇了SQLite,因爲它的易用性。但即時通訊有一些麻煩,讓它工作。我使用System.Data。從http://sqlite.phxsoftware.com/ SQLite的,但是當我嘗試運行該程序,我得到下面的異常message.I'm編碼C#和Visual Studio 2010 ..與VS 2010 SQLite

無法加載文件或程序集 「System.Data.SQLite,版本= 1.0.66.0, Culture = neutral, PublicKeyToken = 1fdb50b1b62b4c84, Retargetable = Yes'或其中一個 依賴關係。給定的程序集名稱 或代碼庫無效。 (例外 從HRESULT:0x80131047)

我不知道爲什麼我得到這個以及如何處理它。

我一定要得到這個項目爲明天做好準備,並需要你的幫助......

+3

請張貼代碼您使用加載程序集,否則將介紹使用的步驟,如果沒有代碼。 –

+0

我只是添加它作爲參考,並與「使用」語句 – thecodekid

回答

2

有一個已知的問題,根據this post,這referenced post .NET Framework 4中和SQLite。解決的辦法就是添加下面的部分到你的config文件:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <startup useLegacyV2RuntimeActivationPolicy="true"> 
    <supportedRuntime version="v4.0" /> 
    </startup> 
</configuration> 

這將正確地與4.0框架加載2.0組件。顯然,當前的SQLite庫是作爲.Net 2.0程序集構建的。

+0

我試過了,但問題仍然存在 – thecodekid

+2

@thecodekid:你的構建目標是什麼版本的運行時? –

3

當您添加到System.Data.SQLite集的引用,請確保您的「複製本地」屬性設置爲true:

  1. 右鍵單擊裝配System.Data.SQLite
  2. 更改「複製本地」設置爲True

這與加Dillie-O's answer應該得到的SQLite在.NET框架V4.0內運行VS 2010

1

如果您的項目需要DBML層的東西和LINQ to SQL Lite,那麼最好使用DEVART的LinqExpress工具www.devart.com

它是免費的,它可以讓你直觀地建立你的模型,然後在你的項目中使用Linq生成的類 - 更好的VS Express或完整的monty模式。

一旦將LinqExpress for SQLLite添加到項目的引用中,它也會啓動sqlLite dll。

請注意:我在Devart公司沒有股份,但當我需要免費產品的幫助時,他們幫助我免費。

1

我也遭受這個例外。 這裏是我的解決方案:

修改的app.config:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <startup useLegacyV2RuntimeActivationPolicy="true"> 
    <supportedRuntime version="v4.0" /> 
    </startup> 
</configuration> 

在 「解決方案資源管理 - >(項目) - >參考 - > System.Data.SQLite」 - >屬性 - >複製本地」 ,請選擇「True」

您需要將project.exeproject.exe.config一起部署。

我不知道爲什麼需要部署.config,但如果我在不使用project.exe.config的情況下部署project.exe,則不起作用。

0

我遇到了同樣的問題。我使用VS express 2010和sqlite(1.0.66.0)。實際上,在我的開發和調試過程中它工作正常,但是在將編譯後的dll部署到生產服務器之後。我有這個錯誤。我意識到它是由不同的sqlite dll版本引起的,所以我通過以下步驟修復它:

1)在生產服務器(版本爲1.0.87)的開發機器上安裝相同的sqlite版本; 2)將system.data.sqlite.dll從版本1.0.87文件夾複製到.NET Framework程序集參考文件夾(C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.0)在VS Express 2010中用於.NET Framework 4.0

3)重新編譯項目以獲取新DLL 4)將dll從步驟3複製到生產服務器上,問題就消失了。你

還可以參考這個博客:http://www.tsjensen.com/blog/post/2011/06/04/SQLite+On+Visual+Studio+2010+Setup+Instructions.aspx