我是团结和C#的新手,希望我的问题足够清楚。
这是一个统一测试项目,只显示问题。
On Mac: I创建了一个新类并使用Visual打开它,使用: Tools => Manage NuGet Packages =>添加包添加了CsvHelper包。
该包已成功地添加到包中,如下面所示,解决方案
一旦完成,我就可以添加代码行:具有识别代码行的using CsvHelper;
。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using CsvHelper;
public class Level {
}
回到团结,它向我展示了错误:
error CS0246: The type or namespace name 'CsvHelper' could not be found (are you missing a using directive or an assembly reference?)
切换回Visual,它开始显示一个错误。
Windows上的:--我做过同样的事情,也有同样的错误,但我也尝试通过:Project=>添加引用来添加引用。完成该操作后,Visual中的错误将消失,并且仍然存在于“统一”中。
关闭Visual将在那里重新创建错误,我添加的引用将从“引用”下的“解决方案资源管理器”中消失。
我不知道我错过了什么,我尝试了几乎每一个我能够理解的建议。对不起,我对术语和正确的做法缺乏了解。
发布于 2022-09-12 09:28:41
有两点你需要理解才能正确地解决你的问题。
*.csproj
文件,其中指定了所有依赖项,如CsvHelper
、UnityEngine
等。当Visual检查代码时,它将基于这个*.csproj
文件来显示诸如“缺失命名空间”之类的错误。*.csproj
文件对团结没有任何意义。统一自动生成这些文件,以使IDE (Visual、Rider或任何其他)正常工作。因此,当您在Visual中添加依赖项时,意味着只有Visual知道该依赖项,因此它不会显示错误。但是,在联合检查这段代码时,它没有看到这个依赖项,因此它显示了一个错误。
要在团结中添加依赖项,通常只需将*dll
文件放在Assets/
文件夹中的某个位置即可。当您这样做时,统一将自动重新生成*.csproj
文件,并将此dll作为它们的依赖项添加。你可以在这里读到更多关于它的https://docs.unity3d.com/Manual/UsingDLL.html。
你提到了NuGet,所以我认为这个统一插件会对你有帮助。您可以轻松地在您的团结项目中管理nuget员工。https://github.com/GlitchEnzo/NuGetForUnity
可能您不使用统一AssemblyDefenition文件。但是如果这样做,那么在将dll添加到Asset/
文件夹后,还必须在此*.asmdef
文件中指定它。你可以在这里读到更多关于它的https://docs.unity3d.com/Manual/ScriptCompilationAssemblyDefinitionFiles.html。
https://stackoverflow.com/questions/73686488
复制相似问题