Unity: Omnisharp在VSCode中找不到引用的项目

5
我最近升级到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

你是否已经安装了Visual Studio Code软件包? - BugFinder
@BugFinder 是的,我已经安装了经过验证的2019.3版本的软件包。 - Levi J
5个回答

9

这是Visual Studio Code编辑器包1.1.4版本中的一个错误。

以下是我解决此问题的步骤:

  1. 在Unity Editor中打开“Window”>“Package Manager”
  2. 选择“Visual Studio Code Editor”,然后单击“删除”
  3. 在“Visual Studio Code Editor”下选择“查看所有版本”
  4. 选择版本1.1.3,然后单击“安装”
  5. 重新启动VS Code

关于此问题有一个论坛讨论在这里

实际问题正在Unity Issue Tracker ticket在这里上处理

更新:

当前的Visual Studio Code编辑器包版本1.2.1没有这个错误。


谢谢你的回答,我会尽快检查一下是否适用于我的情况,如果可以的话,我会接受你的答案。 - Levi J
经过两天的尝试解决这个问题...终于感谢你,兄弟... - akshay yadav
非常感谢,我只是想要 IntelliSense,现在我可以使用它了,谢谢!!! - Josh Batley
升级到了1.1.3,但对我没用。使用的是Unity 2019.3.4f1和VS Code 1.43.0。 - kalmdown
降级到1.1.3版本,解决了在Unity 2019.3.7f1上的问题。 - BOOMHUNK
我仅通过从包管理器更新 Visual Studio Code 引用就成功解决了这个问题,而无需将其删除。 - Jesse Moreland

6
在Unity项目的根目录下有一个名为Assembly-CSharp.csproj的文件。我添加了这个文件来修复错误。
<Reference Include="UnityEngine.UI">
<HintPath>Library/ScriptAssemblies/UnityEngine.UI.dll</HintPath>
</Reference>

1
这是唯一一个对我有效的解决方案,被接受的解决方案没有改变任何东西。谢谢! - jorelli
这对我来说真的解决了问题,即使使用1.2.2版Visual Studio Code编辑器包也会导致此问题。 - Mostafa Abdulrazic
修好了;还有其他参考资料,但这个通用的方法似乎管用。 - TheClockTwister

4
在新版的Unity中,可能仍会出现这种情况,您可以尝试以下答案,但首先请确保在项目设置中已激活“嵌入式包”和“本地包”,如果使用VSCode,请重新生成它们; 对于我而言,这使由于缺少程序集而导致的错误消失了。对于其他问题,您也可以尝试勾选其他选项。
当然,在Unity中我的程序集已正确设置以相互引用。只是想为那些可能在寻找解决方案时忽略该设置的人添加此说明(我相信原作者已经这样做了,但是我看到一些评论提示我,并非每个人都首先尝试了这个)。
设置中启用的部分: Enabled Sections in the Setup

1
帮了很大的忙! - Olexander Korenyuk

1
我今天遇到了完全相同的问题,没有更改任何内容,它就出现了故障。我认为VSCode中的C#插件需要更新,但我不能确定。我对Unity还比较陌生,但似乎是这种情况。在此期间,我切换到了VS2019,它似乎可以正常工作。但我更喜欢VSCode,所以我也在寻找解决方案。

看起来这是目前最好的选择... :( 感谢您的解决方案! - Levi J
现在它可能又可以工作了。至少从我的角度来看是这样的。我今天早上加载了我的项目,一切似乎都很好。 - Lee Robison

-1

在Mac上使用VSCode时,遇到了Omnisharp无法加载的问题。 有一个名叫Axiom的YouTube用户,他解释了如何修复Omnisharp的加载问题。我按照他的视频操作后,成功解决了我的加载问题。 修复方法如下: 在C#扩展中,点击齿轮图标选择“Extension Settings”,然后在搜索栏中添加“useGlobalMono” - 在“Use Global Mono”下,将“auto”更改为“always”,然后重新启动Omnisharp。

视频参考 - https://youtu.be/KJYrRv9cShY


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接