缺少文件或程序集 MySql.Data 或依赖项

Posted

技术标签:

【中文标题】缺少文件或程序集 MySql.Data 或依赖项【英文标题】:The File or Assembly MySql.Data or a dependency is missing 【发布时间】:2021-02-25 23:52:58 【问题描述】:

在你责备我之前,是的,我确实在其他线程中搜索了可能的解决方案,我多次卸载了包,在我的 App.Config 文件中手动添加了依赖项等。

我正在创建一个 Windows 窗体应用程序 (.NET Framework),因为它包含一个登录名,所以我建立了一个到 mysql 服务器的连接。在调试模式下,一切正常,但是当我构建解决方案并尝试运行 .exe 文件时,我每次都会收到这个烦人的错误:

我想和我的朋友分享这个程序,我不想让他们收到这个愚蠢的错误信息,也不想手动向任何人发送 mysqldata.dll..

有什么办法可以解决这个问题吗?

这里有一个更具体的错误消息:

System.IO.FileNotFoundException: Die Datei oder Assembly "MySql.Data, Version=8.0.22.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" oder eine Abhängigkeit davon wurde nicht gefunden。 Das System kann die angegebene Datei nicht finden。

【问题讨论】:

【参考方案1】:

我想和我的朋友分享这个程序,我不想让他们收到这个愚蠢的错误信息,也不想手动向任何人发送 mysqldata.dll

由于您的应用程序依赖于 MySql.Data,因此该程序需要能够在您朋友的计算机上找到该 DLL 才能运行。

我能想到两种可能的选择:

    压缩您的 bin\Release 文件夹并将其中的所有内容(包括 MySql.Data.dll)发送给您的朋友。 让您的朋友下载并运行MySQL Installer,并确保他们选择了“连接器/网络”选项。这会将所需的 DLL 放入“全局程序集缓存”中。 编写并交付成熟的 Windows 安装程序来安装您的应用程序及其所有依赖项。

选项 3 对于您想要做的事情可能是矫枉过正。选项 2 似乎容易出错,需要您的朋友安装正确的组件,并且如果您将应用程序升级到 MySql.Data 8.0.23,它将停止工作。所以我会选择选项 1,即使它需要手动发送“mysqldata.dll”。

【讨论】:

感谢您的回答布拉德利!我想我必须将 MySql.Data 与应用程序一起发送......这让我很困惑,因为我之前以控制台应用程序的形式创建了一个登录名,而且我从来没有遇到过这个错误,我也不必将 dll 与应用程序一起发送... 我刚刚将 MySql.Data 文件添加到文件夹中,现在我收到另一个错误,它缺少 BCrypt.dll :/ 我是否真的必须将所有 dll 发送给它们才能使用我的.exe 文件?天哪,我认为有一种方法可以将所有这些 dll 包含在一个 .exe 文件中..

以上是关于缺少文件或程序集 MySql.Data 或依赖项的主要内容,如果未能解决你的问题,请参考以下文章

BLToolkit-mysql-connector 异常:无法加载文件或程序集 MySql.Data,版本 = 6.9.7.0

.net 无法加载文件或程序集 MySql.Data。强名称验证失败 (0x8013141A)

C# webform项目添加了某个引用,但还是提示缺少using指令或程序集引用

C# 未能找到类型或命名空间名称“Form1”(是不是缺少 using 指令或程序集引用?)

MySql在服务器上使用问题的总结

c#引用其它程序的程序集时报错