繁体   English   中英

错误 CS0246:找不到类型或命名空间名称“CsvHelper”

[英]error CS0246: The type or namespace name 'CsvHelper' could not be found

我是 Unity 和 C# 的新手,希望我的问题足够清楚。
这是一个仅显示问题的 Unity 测试项目。
On Mac: I created a new class and opened it with Visual Studio, added the CsvHelper package using: Tools => Manage NuGet Packages => Add Package.
package 已成功添加到包中,如下所示解决方案

完成后,我可以添加代码行: using CsvHelper; 使用 Visual Studio 智能感知识别它。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using CsvHelper;

public class Level {

}

回到 Unity,它向我显示了错误:
error CS0246: The type or namespace name 'CsvHelper' could not be found (are you missing a using directive or an assembly reference?)
切换回 Visual Studio,它开始显示错误。

在 Windows 上:我做了同样的事情,遇到了同样的错误,除了我还尝试通过以下方式添加引用:Project => Add Reference。 完成后,错误将从 Visual Studio 中消失,但仍存在于 Unity 中。
关闭 Visual Studio 将在那里重新创建错误,并且我添加的引用从“引用”下的“解决方案资源管理器”中消失。

我不知道我错过了什么,尝试了几乎所有我能理解的建议。 请原谅我对术语和正确做法缺乏了解。

您需要了解两点才能正确解决您的问题。

  1. 您有一个*.csproj文件,其中指定了所有依赖项,例如CsvHelperUnityEngine等。 当 Visual Studio 检查代码时,它会基于此*.csproj文件来显示诸如“缺少命名空间”之类的错误。
  2. 这个*.csproj文件对 Unity 没有任何意义。 Unity 会自动生成这些文件,以使您的 IDE(Visual Studio、Rider 或任何其他)正常工作。

因此,这意味着,当您在 Visual Studio 中添加依赖项时,这意味着只有 Visual Studio 知道此依赖项,因此不会显示错误。 但是当 Unity 检查这段代码时,它没有看到这个依赖,所以它显示了一个错误。

要在 Unity 中添加依赖项,通常只需在Assets/文件夹中的某个位置放置一个*dll文件。 执行此操作时,Unity 将自动重新生成*.csproj文件并将此 dll 添加为它们的依赖项。 你可以在这里阅读更多关于它的信息https://docs.unity3d.com/Manual/UsingDLL.html

您提到了 NuGet,所以我认为这个 Unity 插件会对您有所帮助。 您可以使用它轻松管理 Unity 项目中的 nuget 员工。 https://github.com/GlitchEnzo/NuGetForUnity

可能您不使用 Unity AssemblyDefenition 文件。 但是如果你这样做了,那么,在将 dll 添加到Asset/文件夹之后,你还必须在这个*.asmdef文件中指定它。 你可以在这里阅读更多关于它的信息https://docs.unity3d.com/Manual/ScriptCompilationAssemblyDefinitionFiles.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM