2010-06-29 166 views
1

我正在嘗試部署一個桌面應用程序,它使用通過實體框架使用SQLite的WPF 4.0編寫。所以我改變了.config文件(絕對路徑到數據庫 - >相對),並將數據庫文件本身複製到應用程序的目錄。它似乎工作正常,但在其他PC上運行時會引發錯誤。提供System.Data.SQLite.dll和System.Data.SQLite.Linq.dll和/或通過exe安裝ADO.NET 2.0 Provider for SQLite(http://sourceforge.net/projects/sqlite-dotnet2/files/)沒有幫助。在開發過程中不使用其他控件/提供程序等。我錯過了什麼嗎? p.s.防火牆4.0存在於客戶機上,因爲VS2010安裝在那裏,並且存在C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319並且是〜400mb。部署桌面WPF/SQLite應用程序

+0

Plain xcopy?我希望沒有安裝程序的需要...你認爲我錯過了一些需要的文件?我已經提供了應用程序exe,exe.config,數據庫+ sqlite dll的/安裝程序。 – Alcz 2010-06-29 12:24:55

+0

錯誤是:<<<問題簽名:問題事件名稱:CLR20r3問題簽名01:dbapp.exe問題簽名02:1.0.0.0問題簽名03:4c29da08問題簽名04:System.Data問題簽名05:4.0.0.0問題簽名06:4ba1e064問題簽名07:14f5問題簽名08:2b問題簽名09:System.Windows.Markup.XamlParse OS版本:6.1.7600.2.0.0.256.1 >>> SQLite EF 4.0 hack「useLegacyV2RuntimeActivationPolicy =」true「」存在於.config,沒有它的應用程序不會編譯。 – Alcz 2010-06-29 12:37:51

+0

用安裝程序嘗試一個版本 - clickonce,或許 - 看看是否缺少導致問題的安裝程序。也可能是SQLite在32位和64位體系結構中有不同的DLL。 – Jay 2010-06-30 03:51:05

回答

2

我在WPF應用程序中遇到了與SQLite和ADO.NET相同的問題。我這樣解決:

  • 我添加了System.Data.SQLite.dll,System.Data.SQLite.Linq.dll和Sqlite.Designer.dll作爲在我的項目中的含義。
  • 我做得對 - 單擊它們 - >屬性 - >複製本地 - >真
  • 我在App.config中添加以下代碼:

    <DbProviderFactories> 
        <remove invariant="System.Data.SQLite" /> 
        <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" /> 
        </DbProviderFactories> 
    </system.data> 
    

這就是我所做的,和它正在工作。 祝你好運!

+0

其實,你不需要'Sqlite.Designer.dll' – 2013-05-27 19:26:27