提问人:Tarek Abed 提问时间:9/12/2022 更新时间:9/19/2022 访问量:2027
错误 CS0246:找不到类型或命名空间名称“CsvHelper”
error CS0246: The type or namespace name 'CsvHelper' could not be found
问:
我是Unity和C#的新手,希望我的问题足够清楚。
这是一个 Unity 测试项目,仅显示问题。
在 Mac 上:我创建了一个新类并使用 Visual Studio 打开它,使用以下命令添加了 CsvHelper 包:Tools => Manage NuGet Packages => Add Package。
包已成功添加到包中,如下所示 解决方案
完成后,我能够添加代码行:Visual Studio 智能感知识别它。using CsvHelper;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using CsvHelper;
public class Level {
}
回到Unity,它向我显示了错误:
切换回Visual Studio,它开始显示错误。error CS0246: The type or namespace name 'CsvHelper' could not be found (are you missing a using directive or an assembly reference?)
在 Windows 上:我做了同样的事情,遇到了同样的错误,除了我还尝试通过以下方式添加引用:Project => Add Reference。完成此操作后,错误将从 Visual Studio 中消失,仍存在于 Unity 中。
关闭 Visual Studio 将在那里重新创建错误,并且我添加的引用将从“引用”下的“解决方案资源管理器”中消失。
我不知道我错过了什么,几乎尝试了这里所有我能够理解的建议。请原谅我对术语和正确做法的理解不足。
答:
要正确解决问题,您需要了解两点。
- 您有一个文件,其中指定了所有依赖项,例如 ,依此类推。当 Visual Studio 检查代码时,它会基于此文件显示错误,例如“缺少命名空间”。
*.csproj
CsvHelper
UnityEngine
*.csproj
- 此文件对 Unity 没有任何意义。Unity 会自动生成这些文件,以使您的 IDE(Visual Studio、Rider 或任何其他文件)正常工作。
*.csproj
因此,在 Visual Studio 中添加依赖项时,这意味着只有 Visual Studio 知道此依赖项,因此它不会显示任何错误。但是当 Unity 检查此代码时,它没有看到此依赖项,因此它显示错误。
要在 Unity 中添加依赖项,通常只需将文件放在文件夹中的某个位置即可。执行此操作时,Unity 将自动重新生成文件,并将此 dll 添加为它们的依赖项。您可以在此处阅读有关它的更多信息 https://docs.unity3d.com/Manual/UsingDLL.html。*dll
Assets/
*.csproj
你提到了NuGet,所以我认为这个Unity插件会对你有所帮助。您可以使用它轻松管理 Unity 项目中的 nuget 员工。https://github.com/GlitchEnzo/NuGetForUnity
您可能不使用 Unity AssemblyDefenition 文件。但是,如果您这样做,那么,在将dll添加到文件夹后,您还必须在此文件中指定它。你可以在这里阅读更多关于它的信息 https://docs.unity3d.com/Manual/ScriptCompilationAssemblyDefinitionFiles.html。Asset/
*.asmdef
评论