部署SQLite时出错+;实体框架C#应用程序。[复制确认。]

部署SQLite时出错+;实体框架C#应用程序。[复制确认。],c#,sqlite,deployment,C#,Sqlite,Deployment,以下是在无法工作的机器上运行应用程序时收到的错误: System.ArgumentException: 无法创建指定的存储提供程序 在配置中找到,或未找到 有效。-->System.ArgumentException: 找不到请求的.Net 框架数据提供者。可能不是 安装 我们设法缩小了错误的原因,我们相当肯定这就是原因。在我的开发机器上安装了VisualStudio2010。当我安装ADO.Net SQLite提供程序时(http://sourceforge.net/projects/sqli

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

System.ArgumentException: 无法创建指定的存储提供程序 在配置中找到,或未找到 有效。-->System.ArgumentException: 找不到请求的.Net 框架数据提供者。可能不是 安装

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

在我的同事机器上,我们做了同样的过程。首先在不安装数据提供程序的情况下安装应用程序(链接在上面),我们得到了这个错误。然后我们安装了数据提供程序,在安装向导结束时选择了VisualStudio2010,安装的应用程序现在可以运行了

现在,在一个全新的Windows XP虚拟机上,我们尝试安装应用程序并运行应用程序,但我们得到了相同的错误。然后我们安装数据提供程序,但它不会提示我们选择VisualStudio,因为它没有安装它,为什么客户端需要它,对吗?我们尝试在安装后运行已安装的应用程序,但我们得到了相同的错误,就好像驱动程序还没有安装一样


有什么建议吗?我到底需要客户拥有什么?选择Visual Studio似乎可以解决此问题,因此可能该选项正在安装我们看不到的东西?

尝试将System.Data.SQLite.dll放在.exe旁边?

编辑您的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>

在香草XP或Win7系统上,我需要修改上述配置文件,如Sqlite.NET帮助中所述,才能运行

现在我已经添加了它,除非我把它拿回来,否则该程序不再在我的开发设备(VS2010)上运行


顺便说一句,我正在实体框架应用程序中使用SQLite.NET。

是的,安装后需要.exe文件和.dll文件。就像我说的,只有安装ado.net驱动程序并选择Visual Studio版本,应用程序才能工作。