部署SQLite +实体框架C#应用程序时出错.[重现确认.]

4 c# sqlite deployment

以下是在无法运行的计算机上运行应用程序时收到的错误:

System.ArgumentException:在配置中找不到指定的存储提供程序,或者无效.---> System.ArgumentException:无法找到请求的.Net Framework数据提供程序.它可能没有安装.

我们设法缩小了错误原因,我们相当肯定这就是它.在我的开发机器上,我安装了Visual Studio 2010.当我在安装结束时安装ADO.Net SQLite提供程序(http://sourceforge.net/projects/sqlite-dotnet2/)时,它会询问Visual Studio安装它的内容.我选择了Visual Studio 2010并且它可以工作.安装我创建的安装程序包让我使用该应用程序,一切正常.

在我的同事机器上,我们做了同样的过程.首先安装应用程序而不安装数据提供程序(上面链接),我们得到了这个错误.然后我们安装了数据提供程序,在安装向导结束时选择了Visual Studio 2010,现在安装的应用程序正常工作.

现在在一个全新的Windows XP虚拟机上,我们尝试安装应用程序并运行应用程序,我们得到了同样的错误.然后我们安装数据提供程序,但它没有提示我们选择Visual Studio,因为它没有安装它,为什么客户需要它,对吧?我们尝试在安装后运行已安装的应用程序,并且我们收到SAME错误,就好像驱动程序甚至没有安装一样.

有什么建议吗?我究竟需要客户拥有什么?似乎选择Visual Studio解决了这个问题,所以也许这个选项正在安装我们没有看到的东西?

No *_*one 20

编辑你的exe的app.config以包括:

<system.data>
    <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>
Run Code Online (Sandbox Code Playgroud)