2010-06-29 153 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