我編寫了一個使用sqlite的應用程序,它在大多數系統的上運行良好。它是用C#編寫的,唯一的非框架程序集是由System.Data.SQLite.dll包含的sqlite。在某些計算機上應用程序無法加載sqlite dll文件
我在所有機器上覆制它(複製粘貼exe文件,數據庫文件和System.Data.SQLite文件)。它適用於我所有的個人電腦以及我嘗試過的大部分個人電腦。
但後來我有報道稱,對某些人來說,它拋出以下異常:
無法加載文件或程序集 「System.Data.SQLite,版本= 1.0.65.0, 文化=中性, PublicKeyToken = db937bc2d44ff139'或 其依賴關係之一。試圖用 加載程序的格式不正確 。
現在我已經確定dll文件與應用程序exe文件在同一個文件夾中。這是相同的DLL,具有上述例外消息中所述的相同版本。
我真的很困惑,所以我創建了一個全新的虛擬機,安裝了windows 7專業版,並且只是複製粘貼的文件,而且工作。因此,如果它在新窗口上工作,我無法想象其他PC可能會丟失什麼......
注意:其中兩個計劃引發異常的計算機也運行Windows 7專業版。
我真的很感激有這方面的幫助,因爲我是新鮮的想法......
謝謝!完全錯過了sqlite.NET有兩個不同的dll文件 - 對於x32和x64。我改變了它不工作的機器上的dll,現在它工作。我從來沒有想過要問他們32位和64位...... – 2009-10-25 19:38:23
有沒有辦法在運行時檢查平臺是否是32/64位,並在這種情況下采取相應措施? – Ben 2010-05-25 00:57:23
// @本:恐怕我不知道。您需要在運行時動態加載正確的sqlite DLL,但我不知道如何在.net中執行此操作。 – RichieHindle 2010-05-26 08:32:40