Unity:Omnisharp 在 VSCode 中找不到引用的项目
Unity: Omnisharp is not finding referenced projects in VSCode
我最近升级到 Unity 2019.3.0f6。当我打开我的一个 c# 文件时,我注意到 UnityEngine.UI 没有被识别为有效的命名空间。这导致我在引用此命名空间时出现红色波浪线。 IntelliSense 也停止工作。这个问题只出现在 VSCode,我的项目在 Unity 中仍然运行良好。
我检查了 Omnisharp 日志,发现一些错误告诉我 Omnisharp 无法找到 UI .csproj 文件和其他几个文件。
[warn]: OmniSharp.MSBuild.ProjectLoader
The referenced project 'UnityEngine.UI.csproj' does not exist.
什么会导致这种情况?
我已经尝试过的事情:
- 检查 dotnet 命令是否有效
- 重新安装 c# vscode 插件
- 删除 .sln 和 .csproj 文件并让 Unity 重新生成它们
- 重新安装 Unity
我今天遇到了完全相同的问题。没有改变任何东西。它刚刚坏了。我认为 VSCode 中的 C# 插件需要更新,但我不能确定。我是 Unity 的新手,但情况似乎确实如此。与此同时,我切换到 VS2019,它似乎在工作。但我更喜欢 VSCode 所以我也在寻找解决方案。
这是 Visual Studio 代码编辑器包 1.1.4 版中的错误。
这些是我为解决此问题所做的步骤:
- 在 Unity 编辑器中打开 Window > 包管理器
- Select Visual Studio 代码编辑器并单击删除
- Select Visual Studio 代码编辑器下的“查看所有版本”
- Select 版本 1.1.3 然后点击安装
- 重启 VS Code
有论坛对此进行讨论here
实际问题正在处理 Unity Issue Tracker ticket here
更新:
当前Visual Studio代码编辑器包版本1.2.1没有这个bug。
Unity 项目的根目录下有 Assembly-CSharp.csproj
文件。我添加这个来修复错误:
<Reference Include="UnityEngine.UI">
<HintPath>Library/ScriptAssemblies/UnityEngine.UI.dll</HintPath>
</Reference>
在较新版本的 Unity 中,您可能仍然会遇到这种情况,您可以尝试这些答案,但如果使用 VSCode 并重新生成它们;至少对我来说,它消除了由于缺少程序集而导致的错误。也许对于其他问题,您也可以尝试勾选其他人。
当然,我的程序集在 Unity 中设置正确,可以相互引用。只是想为那些在寻找解决方案时可能忽略该设置的人添加这个(我很确定原作者已经这样做了,但我看到一些评论暗示我,并不是每个人都先尝试过)
设置中启用的部分:
VSCode Mac。 Omnisharp 无法加载的问题。
YouTube 用户 Axiom。他解释了如何修复 Omnisharp 加载。在我关注他的视频后,它解决了我的加载问题。
修复。
在你的 C# exstions 下,选择“扩展设置”,然后在搜索栏中添加“useGlobalMono” - 在使用全局单声道下 - 将“自动”更改为“始终”并重新启动 Omnisharp。
视频参考 - https://youtu.be/KJYrRv9cShY
我最近升级到 Unity 2019.3.0f6。当我打开我的一个 c# 文件时,我注意到 UnityEngine.UI 没有被识别为有效的命名空间。这导致我在引用此命名空间时出现红色波浪线。 IntelliSense 也停止工作。这个问题只出现在 VSCode,我的项目在 Unity 中仍然运行良好。
我检查了 Omnisharp 日志,发现一些错误告诉我 Omnisharp 无法找到 UI .csproj 文件和其他几个文件。
[warn]: OmniSharp.MSBuild.ProjectLoader
The referenced project 'UnityEngine.UI.csproj' does not exist.
什么会导致这种情况?
我已经尝试过的事情:
- 检查 dotnet 命令是否有效
- 重新安装 c# vscode 插件
- 删除 .sln 和 .csproj 文件并让 Unity 重新生成它们
- 重新安装 Unity
我今天遇到了完全相同的问题。没有改变任何东西。它刚刚坏了。我认为 VSCode 中的 C# 插件需要更新,但我不能确定。我是 Unity 的新手,但情况似乎确实如此。与此同时,我切换到 VS2019,它似乎在工作。但我更喜欢 VSCode 所以我也在寻找解决方案。
这是 Visual Studio 代码编辑器包 1.1.4 版中的错误。
这些是我为解决此问题所做的步骤:
- 在 Unity 编辑器中打开 Window > 包管理器
- Select Visual Studio 代码编辑器并单击删除
- Select Visual Studio 代码编辑器下的“查看所有版本”
- Select 版本 1.1.3 然后点击安装
- 重启 VS Code
有论坛对此进行讨论here
实际问题正在处理 Unity Issue Tracker ticket here
更新:
当前Visual Studio代码编辑器包版本1.2.1没有这个bug。
Unity 项目的根目录下有 Assembly-CSharp.csproj
文件。我添加这个来修复错误:
<Reference Include="UnityEngine.UI">
<HintPath>Library/ScriptAssemblies/UnityEngine.UI.dll</HintPath>
</Reference>
在较新版本的 Unity 中,您可能仍然会遇到这种情况,您可以尝试这些答案,但如果使用 VSCode 并重新生成它们;至少对我来说,它消除了由于缺少程序集而导致的错误。也许对于其他问题,您也可以尝试勾选其他人。
当然,我的程序集在 Unity 中设置正确,可以相互引用。只是想为那些在寻找解决方案时可能忽略该设置的人添加这个(我很确定原作者已经这样做了,但我看到一些评论暗示我,并不是每个人都先尝试过)
设置中启用的部分:
VSCode Mac。 Omnisharp 无法加载的问题。 YouTube 用户 Axiom。他解释了如何修复 Omnisharp 加载。在我关注他的视频后,它解决了我的加载问题。 修复。 在你的 C# exstions 下,选择“扩展设置”,然后在搜索栏中添加“useGlobalMono” - 在使用全局单声道下 - 将“自动”更改为“始终”并重新启动 Omnisharp。
视频参考 - https://youtu.be/KJYrRv9cShY