相关疑难解决方法(0)

.NET MySQL连接器冲突DbProviderFactories

我正在使用带有Entity Framework 4的.NET MySQL连接器,一切都运行良好,但我想在部署在服务器上时使用我的应用程序打包MySQL客户端DLL文件,因此我们不必担心在每台服务器上安装mysql,每个应用程序将只具有所需的正确副本.

为了实现这一点,我确保MySQL引用设置了"Copy Local",以便将它们复制到bin文件夹并将以下内容添加到我的app.config中:

<system.data>
    <DbProviderFactories>
      <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.3.7.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
    </DbProviderFactories>
</system.data>
Run Code Online (Sandbox Code Playgroud)

这工作,我能够在没有远程服务器上安装的MySQL部署的应用程序,但现在我有我的本地开发机器上(我一个问题安装MySQL的连接器),和我得到这个错误时,EF尝试连接:

列'InvariantName'被约束为唯一.值'MySql.Data.MySqlClient'已存在.

如果我在app.config中注释掉我上面添加的XML,那么错误就会消失.这可能是因为系统上安装了相同的驱动程序并且位于machine.config中.

解决办法是什么?我宁愿不必手动注释和取消注释该行,具体取决于我为哪个系统构建应用程序.

.net c# mysql mysql-connector

22
推荐指数
1
解决办法
2万
查看次数

标签 统计

.net ×1

c# ×1

mysql ×1

mysql-connector ×1