2011-05-19 100 views
0

我以前安裝了早期版本的SQLite(從http://sqlite.phxsoftware.com),現在用最新的(從http://sqlite.org推薦)代替它。我能夠在2010年的「服務器資源管理器」中看到舊版本的數據提供程序,並且缺少新版本。System.Data.SQLite數據提供程序缺失

我使用安裝程序作爲管理員,並選擇安裝程序集GAC。安裝完成後,我在我的machine.config中看到,不再有SQLite的條目,而且之前也有。我爲新版本插入一個新的,但它沒有幫助。

手插入項:

<DbProviderFactories> 
    <add name="SQLite Data Provider" invariant="System.Data.SQLite" 
     description=".Net Framework Data Provider for SQLite" 
     type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite, Version=1.0.72.0, 
     Culture=neutral, PublicKeyToken=db937bc2d44ff139" /> 
    <!-- other entries here --> 
</DbProviderFactories> 

現在我有點卡住,而不是一定要嘗試下一步是什麼或找出是什麼這兩個版本之間的安裝之間的差異。這可能是一個很大的差異,因爲不同的開發人員現在正在維護.Net。

+0

標記爲建議的位置? – abatishchev 2011-05-19 14:11:38

+0

你的意思是爲什麼推薦sqlite.org?他們現在正在爲.Net維護SQLite二進制文件,所以這就是我使用它的原因,但我不記得我在哪裏推薦它。我想使用最新的,所以我可以使用實體框架與SQLite – jlafay 2011-05-19 14:19:11

回答

2

SQLite在Windows後面可能會出現如此巨大的痛苦,它甚至不好笑。我不能說我曾專門處理過這個問題,但我已經處理了SQLite資源在GAC中未被正確識別的問題。在確定SQL Server 2008 Express Edition將安裝SQLite實用程序以及默認SQL實例和其他所有內容以便Microsoft產品隨時提取它的方式之前,我已經損失了整整2天的時間。我已經在我的機器上安裝了SQL Server 2008 Professional,並且安裝快速實例並沒有擾亂我的配置。

我意識到這完全是一種解決方法,但從長遠來看,最好的選擇是將dll引用移動到所需項目中的/ Binaries /文件夾,並且只使用GAC for Microsoft程序集。很顯然,大多數第三方都不知道如何正確使用GAC(無論這是他們的錯,還是微軟的問題,這是我留給哲學家的一個問題),所以除非你想花大量時間來學習它的怪癖,你最好使用Binaries文件夾。

+0

我可以添加一個二進制文件夾,但你知道如果它加載SQLite作爲服務器資源管理器中的數據提供者? – jlafay 2011-05-19 14:23:59

+0

誠實的回答是「我認爲它確實存在,但我的記憶很朦朧。」大約一年前,我處理了這個問題,當時我們並沒有真正處理服務器資源管理器,公司已經推出了自己的數據訪問層來處理所有這些。我似乎回憶起自己說,它正在以這種方式更好地整合,但我對這些細節是什麼進行了粗略的描述。對不起,我不能更強調。 – tmesser 2011-05-19 14:41:16

+1

更新:我最終放棄了這個項目的SQLite,因爲你對後方巨大的痛苦是正確的。我能夠用SQL compact保存數據。無論如何感謝您的幫助。 – jlafay 2011-05-23 20:44:57