首页 > 解决方案 > VS 2017 MySql.Data 清单与程序集引用不匹配

问题描述

在将软件项目迁移到新机器后,我遇到了一些问题。我试图让 VS2017、MySql.data 和我的 MySQL 数据库一起工作。我收到一条长错误消息(如下),暗示我的 mySql.Data 版本(8.0.16.0)清单与程序集引用不匹配(我不太了解这个概念)。该错误是奇怪的断断续续的-有时事情似乎(部分)起作用,而其他时候则没有。错误:

“属性'连接'的代码生成失败。错误是:对象'TableAdapterManager'上的'属性访问器'连接'引发以下异常:'无法加载文件或程序集'MySql.Dat,版本= 8.0.16.0,文化=中性, PublicKeyToken=c5687fc88969c44d' 或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(HRESULT 异常:0x80131040)"

我正在使用 VS 的数据源功能通过设计视图添加数据表 + 数据表适配器。

首先,我必须遵循一些指导才能让 VS2017 与 MySQL 一起工作。我不能只安装最新版本的“MySQL Connector”和“MySQL for Visual Studio”,因为这不起作用,会产生“usable connection already”错误。我在这里关注了这个,其中涉及为 VS 1.2.7 安装 MySQL Connector 6.9.8 + MySQL,这使得这方面的工作正常进行。

我还通过 NuGet 包管理器 V8.0.16.0 下载了 MySql.data

我读过+尝试过的一些东西:

  1. 确保 app.config 中 mySql 的正确版本:在我的 app.config 文件中没有对此的引用。

  2. 通过设置重新做连接字符串 - 没有解决

  3. 更改“machine.config” - 我更新了dependentAssembly如下元素:

    <assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
    
    <bindingRedirect oldVersion="6.7.4.0" newVersion="8.0.16.0" />
    

  4. 将构建更改为 x86

  5. 试图通过 NuGet 控制台安装 MySql.data 6.9.8 Install-Package MySql.Data -Version 6.9.8... 包已被未列出 - 下载时出错。

我很沮丧,很难让一个成熟的技术(如 MySQL)与 Visual Studio 一起工作。这在我的开发人员中造成了非常令人沮丧的积压,因此非常感谢任何建议。

标签: mysqlvisual-studio-2017mysql-connectormysql.data

解决方案


我认为使用 Newtonsoft.JSON 体验此错误是一种习惯。我们都已经看到了这个错误,或者将会看到它。但是今天我收到了 Mysql.Data 的这个错误消息,所以像你一样,我被迫找到一个修复程序。

和你一样,我已经执行了删除 bin/obj 文件夹、检查绑定重定向行、卸载并重新安装 MySql.Data NuGet 包等的仪式。

我认为在这种特殊情况下为我解决的问题是从我的解决方案目录中删除 Mysql.Data.dll 的所有实例(我将它放在各种 bin 文件夹中,因为许多项目使用使用 MySql.Data 的类库)。


推荐阅读