我是 Unity 和 C# 的新手,希望我的問題足夠清楚。
這是一個僅顯示問題的 Unity 測驗專案。
在 Mac 上:我創建了一個新類并使用 Visual Studio 打開它,使用以下方法添加了 CsvHelper 包:工具 => 管理 NuGet 包 => 添加包。
包已成功添加到包中,如下所示解決方案
一旦完成,我就可以添加代碼行: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 將在那里重新創建錯誤,并且我添加的參考從“參考”下的“解決方案資源管理器”中消失。
我不知道我錯過了什么,嘗試了幾乎所有我能理解的建議。請原諒我對術語和正確做法缺乏理解。
uj5u.com熱心網友回復:
您需要了解兩點才能正確解決您的問題。
- 您有一個
*.csproj檔案,其中指定了所有依賴項,例如CsvHelper,UnityEngine等等。當 Visual Studio 檢查代碼時,它會基于此*.csproj檔案顯示“缺少命名空間”等錯誤。 - 這個
*.csproj檔案對 Unity 沒有任何意義。Unity 會自動生成這些檔案以使您的 IDE(Visual Studio、Rider 或任何其他)正常作業。
因此,這意味著,當您在 Visual Studio 中添加依賴項時,這意味著只有 Visual Studio 知道此依賴項,因此不會顯示錯誤。但是當 Unity 檢查這段代碼時,它沒有看到這個依賴,所以它顯示了一個錯誤。
要在 Unity 中添加依賴項,通常只需將*dll檔案放在Assets/檔案夾中的某個位置即可。當您這樣做時,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。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/508658.html
上一篇:TeamCity Msbuild:無法加載“TransformXml”任務
下一篇:無法在設計器視圖中拖放或編輯VisualStudioCommunityEdition2022forASP.NETWebForms(C#)中的工具箱元素
