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

时间:2010-11-19 15:18:42

标签: c# sqlite deployment

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

  

System.ArgumentException:The   指定的商店提供商不能   在配置中找到,或者不是   有效。 ---> System.ArgumentException:   无法找到所请求的.Net   框架数据提供者。它可能不是   安装。

我们设法缩小了错误原因,我们相当肯定这就是它。在我的开发机器上,我安装了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解决了这个问题,所以也许这个选项正在安装我们没有看到的东西?

3 个答案:

答案 0 :(得分: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>

答案 1 :(得分:3)

在Vanilla XP或Win7系统上,我需要进行上述配置文件修改,如Sqlite.NET帮助中所述,以便运行。

现在我已经添加了它,程序不再在我的开发盒(VS2010)上运行,除非我把它取出来。

BTW我在实体框架应用程序中使用SQLite.NET。

答案 2 :(得分:2)

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

旁边