【问题标题】:Type or namespace name 'MySQL' could not be found VS2017VS2017 找不到类型或命名空间名称“MySQL”
【发布时间】:2018-04-20 17:03:21
【问题描述】:

当前正在尝试创建与 MySql 数据库的连接。当我添加时

using MySql.Data; using MySql.Data.MySqlClient;

对于我的班级,我收到了典型的“找不到类型或命名空间名称......”。一点点搜索让我意识到我错过了 MySql.Data.dll。

我使用 Packet Manager 控制台安装 MySql.Data:

PM> Install-Package MySql.Data

我确认它是通过工具 > NuGet 包管理器 > 管理解决方案的 NuGet 包安装的,但我仍然收到构建错误。

此时我想,既然 PM 下载了 .dll,我只需通过 References > Add Reference > Browse > Select MySql.Data.dll 手动引用它。

太好了!!我的using 上的红色波浪消失了,智能感知开始为 MySql.Data 命名空间内的类工作:

快进 10 分钟,我写完我的测试类并点击构建,错误又回来了:

总而言之,使用 PM 安装 MySql.Data 让我无处可去。手动添加 MySql.Data.dll 的引用让我的智能感知能够识别命名空间和类,但是在构建时我仍然得到错误。

相当难过。有人看过吗?

【问题讨论】:

  • 看到这个帖子stackoverflow.com/questions/1102281/…希望它能帮助解决你的问题。
  • 感谢您的链接,但我已经完成了那里提供的解决方案。标记解决方案的第 4 步甚至对我有用:“在您的代码顶部,使用 MySql.Data.MySqlClient; 添加。如果您正确添加了引用,IntelliSense 应该会为您完成此操作。”这是真的,它确实这样做了,您可以在我的屏幕截图中看到 IntelliSense 正在工作,但在编译时我仍然会出现错误...

标签: c# mysql


【解决方案1】:

我将 MySql.Data 的引用从以前的版本更改为当前版本,错误消失了。您可以通过单击添加参考来选择它,然后在左侧找到最近使用过的,将其更改为当前版本,在我的情况下是从 8.0.23.0 到 8.0.25.0

【讨论】:

    【解决方案2】:

    在终端导航到你的项目目录后,运行以下命令

    dotnet add package MySql.Data -v 8.0
    

    【讨论】:

    • 这做得很完美!我在 Ubuntu 18.04 上为 asp.net 核心应用程序运行 VS Code。
    【解决方案3】:

    我也有类似的问题。我有 3 个项目,即数据访问层、业务逻辑层和 WebApplication。我去了“WebApplication”项目属性/应用程序并将.Net Framework从4.6.1更改为4.6 然后它再次抱怨说,引用的项目具有更高的框架版本,所以我再次右键单击 Business LogicLayer 和 DataAccessLayer 并将 .Net Framework 更改为 4.6 而不是 4.6.1。现在构建成功,没有任何噪音(没有警告/没有错误)。

    我也能够成功发布源代码。但是页面仍然没有出现,浏览器中的错误消息如下:

    “/”应用程序中的服务器错误。无法找到该资源。 描述:HTTP 404。您正在寻找的资源(或其之一 依赖项)可能已被删除,名称已更改,或者是 暂时不可用。请查看以下 URL 并制作 确保拼写正确。

    请求的网址:/

    版本信息:Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.8.4075.0

    但我认为这是单独的错误。现在我正在尝试修复这个错误。

    【讨论】:

    • 这是解决方案吗?解决办法是什么?
    【解决方案4】:

    在这种情况下 MySQL dll 文件非常新。您可以下载较旧的 dll 文件并将其包含在您的项目中。我更喜欢这个版本。它对我有用MySql.Data.DLL

    下载 .dll 您只需通过 References > Add Reference > Browse > Select MySql.Data.dll 手动引用它

    【讨论】:

    • 为什么会被否决?这解决了我的问题(虽然我不必去下载新的 dll ......如果你的计算机上安装了 MySQL,那么 dll 就会在某个地方)。
    【解决方案5】:

    解决了这个问题!原来最新的 MySql.Data.dll 是基于 .Net Framework 4.5.2 构建的,而我的项目使用的是 .Net Framework 3.5 Client Profile。

    将我的项目框架更改为 4.5.2 解决了这个问题。很奇怪,VS 没有给出更好的错误信息。

    要更改项目的框架,请右键单击您的项目(不是解决方案),选择属性 -> 应用程序 -> 目标框架。目标框架是该页面上的下拉菜单。

    多亏了另一个 stackoverflower 问题,我才意识到这一点:Namespace not recognized (even though it is there)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-12
      • 2011-05-13
      • 2013-03-25
      • 2019-07-14
      • 2012-06-19
      • 2017-11-29
      相关资源
      最近更新 更多