.Net 项目中 MySql.Data.dll 的冲突版本不允许我在数据集中使用 add/edit TableAdapter

Conflicting versions of MySql.Data.dll in .Net project not allowing me to add/edit TableAdapters in my DataSets

我在 Visual Studio 2015 Update 3 中有一个 WinForms / .Net 4.0 应用程序。 当我尝试在我的任何数据集中添加或编辑 TableAdapter 时,出现此错误:

The wizard detected the following problems when configuring the TableAdapter:

Details:

Generated SELECT statement. [A]MySQL.Data.MySqlClient.MySqlConnection cannot be cast to [B]MySQL.Data.MySqlClient.MySqlConnection. Type A originates from 'MySQL.Data Version 6.9.8.0, Culture=neutral,PublicToken=c5687fc88969c44d' in context 'Default' at location 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\PrivateAssemblies\MySQL.Data.dll'. Type B originates from 'MySQL.Data, Version 6.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d' in context 'Default' at location 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\MySQL.Data\v4.0_6.9.9.0_c5687fc88969c44d\MySQL.Data.dll'.

显然它在抱怨 MySQL.Data.dll 6.9.8 和 6.9.9 的两个不同版本。我不明白的是为什么或在哪里引用版本 6.9.8.0?如果我查看我的项目的参考资料,它使用的是 MySQL.Data.dll 版本 6.9.9.0。这是位于以下位置的 NuGet 包:

C:\Users\Fabs-LenovoY70\Source\Workspaces\Tracker\Tracker\packages\MySql.Data.6.9.9\lib\net45\MySql.Data.dll

我已经尝试了 [A]MySql.Data.MySqlClient.MySqlConnection cannot be cast to [B]MySql.Data.MySqlClient.MySqlConnection 的解决方案,但没有成功。

我在整个解决方案中搜索了对 6.9.8 的任何引用,但一无所获。我一整天都在谷歌上搜索解决方案,但没有找到任何有效的方法。 :( 有人有什么想法吗?谢谢...

我在 VS 2012 中遇到了同样的问题。我不确定如何解决它,但在花了相当多的时间之后,我看到了正在发生的事情。

  1. 总的来说 your/my 系统是 mysql.data.dll 版本 6.9.9.0。我无法将其降级到 6.9.8.0 当我这样做时,我使用 mysql.data.dll 创建了其他版本问题,这些问题似乎无法以我的知识水平解决。

  2. 我找到了所有 6.9.8.0 版本的 DLL 并将它们删除,确保有一个 6.9.9 版本取而代之。完成此操作后,我无法将数据连接添加到 MySQL 数据库。当我尝试时,出现错误 发生错误,这通常是由于 Visual Studio 没有正确安装 。此外,先前定义的数据连接均无效。

  3. 未安装 MYSQL-connector-net-6.9.9 会出现 "Cannot obtain provider factory for data provider named MySql.Data.MySqlClient" 错误,您甚至不会遇到 OP 上述错误.

    1. 我已经尝试了各种 connector-net 版本,但这并不能解决问题。

我在我的任何项目中都没有引用 6.9.8.0,但显然出于某种原因 VS 需要它来创建数据连接。

更新:

我删除了 MySQL,然后检查并删除了所有 mysql*.dll 和所有配置文件。然后我使用了在 http://dev.mysql.com/downloads/installer/

找到的 MySQL Installer 5.7.14

安装程序仍然安装了 mysql.data.dll 版本 6.9.8.0,它仍然导致错误。

更新: 问题出在 MySQL 连接器/网络。它使用 DLL 的 6.9.9.0 版本,其他一切都使用 6.9.8.0 转到您的社区安装程序并卸载连接器/网络。然后转到 https://downloads.mysql.com/archives/c-net/ 并获取连接器/网络的 6.9.8 版本。安装这个,一切都应该没问题。它在我的系统上有效。

卸载 6.9.9 并安装 6.9.8 对我有用。我有卸载问题,我不得不使用 Microsoft 的这个工具来清除连接器 install/uninstall 问题 https://support.microsoft.com/en-us/help/17588/fix-problems-that-block-programs-from-being-installed-or-removed 最后,我必须确保引用的 mysql.data.dll 是 6.9.8 版。我想这是在上下花费了无数个小时之后唯一的解决方案。

确保检查您的 app.config(或 web.config)文件。我不得不从 6.10.8 降级到 6.10.7 .Net Connector。我从我的系统中删除了所有 6.10.8 版本的 dll,重建了项目,它仍然要求 6.10.8。当您在 Visual Studio 中降级 Nuget 包时,.config 没有改变 - 它仍然是 6.10.8。我将其更改为 6.10.7,一切正常。