【问题标题】:could not load file or assembly 'mysql.data, version=6.9.5.0无法加载文件或程序集 'mysql.data,版本 = 6.9.5.0
【发布时间】:2023-04-07 13:56:01
【问题描述】:

我在制作(在 vb.net 中)的 Visual Basic 2013 程序时遇到问题,问题出在 MySQL.data.dll 上,我尝试在 GAC 中将本地副本更改为 true,我已经尝试将我的 MySQL.data.dll 升级到最新版本,但无论我做什么,只有当 MySQL.data.dll 文件夹在运行时与可执行文件位于同一文件夹中时它才有效。

(请注意,这个错误只会出现在其他机器上,不会出现在我的机器上)

这正是错误:

[无法加载文件或程序集 'MySql.data, Version=6.9.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d' 或其依赖项之一。系统找不到指定的文件。]

请帮忙,我不希望我的用户必须将 MySQL.data.dll 放在一个带有 exe 的文件中才能运行它(原因很明显)。

【问题讨论】:

  • 明显的原因是什么?如果您希望您的应用程序与 MySQL 连接,则必须使用 MySQL.data.dll 部署它,这是没有办法的。
  • @Mick 怎么是骗子?他在问一个完全不同的问题。在废掉我的问题之前,你有没有看过他问了什么? :)
  • @RyanSmith 这些问题的根源总是相同的。这类问题已经被覆盖了十亿次
  • @AlexeiLevenkov 我之前见过其他程序链接到 MySQL 数据库,不需要任何类型的 DLL

标签: mysql .net vb.net dll


【解决方案1】:

对照编译器输出中出现的版本检查 MySQL 程序集的版本。

不要使用错误列表查看输出窗口并从下拉列表中选择构建并查找错误。

最可能的原因是您的应用程序链接到 MySQL 的特定(可能是多个)版本,并且引用的特定 MySQL 版本存在冲突。您可能还想更改程序集引用的特定版本属性...

How exactly does the "Specific Version" property of an assembly reference work in Visual Studio?

asp server error ' Could not load file or assembly ' but the assembly is definitely there.

这很简单。您需要确保对程序集的引用是正确的。我会避免将 MySQL 安装到 GAC 中。不要安装 MSI,如果你已经卸载它,然后下载 zip 压缩包

mysql-connector-net-6.9.5-noinstall.zip

将文件提取到引用解决方案中这些程序集的文件夹。如果您使用源代码管理,请检查包含 MySQL 程序集的文件夹到源代码管理中,以及解决方案的其余部分。

如果您有多个引用 MySQL 的程序集,您应该检查它们是否都从相同位置引用相同版本和/或将“特定版本”属性设置为 false 并将“复制本地”设置为 true。

【讨论】:

  • OP 似乎知道问题出在哪里——很明显,如果一个人“不想......将 MySQL.data.dll 放在一个带有 exe 的文件中,以便能够运行它”会有错误......但我不清楚OP正在寻求什么样的解决方案。
  • 对不起,我有点困惑。我假设您指的是显示“输出”的底部窗口......但我不知道您所说的错误是什么意思。如果您的意思是我构建它时所说的内容,那么这就是它输出的内容:构建:0成功,0失败,1最新,0跳过........我对这个整体比较陌生对不起。
  • 转到构建菜单。选择清洁解决方案。然后选择 Reuild 解决方案。构建后选择 View -> Output 以显示输出窗口。然后从组合框中选择 Build 以查看构建的输出,在构建中查找表明存在冲突的警告或错误。
  • @mick 没有错误,清理开始:项目:databasetest,配置:调试任何 CPU 和 ========== 清理:1 成功,0 失败,0 跳过 ==== ======
  • 干净选择重建后。如果它是运行时问题,您可能会看到警告而不是错误。
猜你喜欢
  • 2014-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-19
  • 2016-12-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多