mysql - 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
我读过+尝试过的一些东西:
确保 app.config 中 mySql 的正确版本:在我的 app.config 文件中没有对此的引用。
通过设置重新做连接字符串 - 没有解决
更改“machine.config” - 我更新了
dependentAssembly
如下元素:<assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" /> <bindingRedirect oldVersion="6.7.4.0" newVersion="8.0.16.0" />
将构建更改为 x86
试图通过 NuGet 控制台安装 MySql.data 6.9.8
Install-Package MySql.Data -Version 6.9.8
... 包已被未列出 - 下载时出错。
我很沮丧,很难让一个成熟的技术(如 MySQL)与 Visual Studio 一起工作。这在我的开发人员中造成了非常令人沮丧的积压,因此非常感谢任何建议。
解决方案
我认为使用 Newtonsoft.JSON 体验此错误是一种习惯。我们都已经看到了这个错误,或者将会看到它。但是今天我收到了 Mysql.Data 的这个错误消息,所以像你一样,我被迫找到一个修复程序。
和你一样,我已经执行了删除 bin/obj 文件夹、检查绑定重定向行、卸载并重新安装 MySql.Data NuGet 包等的仪式。
我认为在这种特殊情况下为我解决的问题是从我的解决方案目录中删除 Mysql.Data.dll 的所有实例(我将它放在各种 bin 文件夹中,因为许多项目使用使用 MySql.Data 的类库)。
推荐阅读
- php - 你如何忽略php搜索栏中的破折号和逗号
- javascript - 如何使用 javascript 验证输入
- python - 如何在包含一些整数和一些字符串的字符串列表中浮动元素?
- chemistry - 使用 RDKit 寻找手性
- android - Android -CosmosDB:AzureData.getDocument() API 调用无法返回文档
- java - IntelliJ 2019.2.2 中缺少 JBoss 插件
- css - 从子 css 覆盖父级的最大宽度
- node.js - Windows 上的 node-gyp 5:找不到 npm\node_modules\node-gyp\bin\node-gyp.js
- flutter - 允许“上下文”移动到不同的 dart 文件
- android - 更新数据后,有什么方法可以刷新 baseadapter 中的自定义视图?