簡體   English   中英

在某些計算機上,應用程序無法加載sqlite dll文件

[英]On some computers application can't load sqlite dll file

我編寫了一個使用sqlite的應用程序,它在大多數系統上運行良好。 它是用C#編寫的,唯一的非框架程序集是sqlite,它包含在System.Data.SQLite.dll中。

我在所有機器上以相同的方式部署它(復制粘貼exe文件,數據庫文件和System.Data.SQLite文件)。 它適用於我所有的PC以及我嘗試過的大多數PC。

但后來我得到報告說,對某些人來說,它會拋出以下異常:

無法加載文件或程序集'System.Data.SQLite,Version = 1.0.65.0,Culture = neutral,PublicKeyToken = db937bc2d44ff139'或其依賴項之一。 嘗試加載格式不正確的程序。

現在我已確保dll文件與應用程序exe文件位於同一文件夾中。 它是相同的dll,具有與上面的異常消息中所述相同的版本。

我真的對此感到困惑,所以我創建了一個新的虛擬機,在其上安裝了Windows 7專業版,並且只是復制粘貼文件,並且事情有效。 因此,如果它在一個新窗口上工作,我無法想象其他PC可能會丟失什么...

注意:項目拋出異常的其中兩台機器也運行Windows 7 proffesional。

我真的很感激這方面的任何幫助,因為我是新鮮的想法......

這是一種可能性:工作和非工作機器之間的區別是32位還是64位? 您是否正在為“任何CPU”構建,當您應該構建外部DLL的位數時?

拋出異常的計算機可能正在運行64位版本的Windows,並且您的程序正在使用AnyCPU配置。 System.Data.SQLite DLL是一個雙面的野獸:托管部分和本機部分。 可能是本機部分負責異常。

有關詳細信息,請參閱此問題

您是否檢查過目標系統是64位還是32位?

可能是您的某個依賴項需要32位版本的Windows。 要解決此問題,您可以在C#項目的屬性中指定平台目標:選擇x86而不是任何CPU。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM