【发布时间】:2020-05-11 12:41:05
【问题描述】:
我在Unity Forums 上问过这个问题,但不幸的是那里没有任何回应。由于这似乎是 Visual Studio 本身的错误/问题,所以我也在这里问。
情况
我无法在 Visual Studio 中编译我的项目代码。它仍然在 Unity 编辑器中编译和运行,但 Visual Studio 给出了数百个缺少的引用错误(“找不到类型或命名空间名称 'XXX'(您是否缺少 using 指令或程序集引用?)”)。这包括我编写但在另一个程序集中的文件,即我自己创建的命名空间。
除了一件事之外,我尝试过的所有方法都不起作用(见下文)。如果我手动删除对 Visual Studio 中所有四个程序集的引用并重新添加它们,则解决方案将编译。但是当我关闭 VS 并重新打开时,会出现同样的错误。通过更多测试,我发现有时(不知道是什么触发它)引用甚至会在不关闭 Visual Studio 的情况下中断。
程序集是 Assembly-CSharp、Assembly-CSharp-Editor、Assembly-CSharp-Editor-firstpass 和 Assembly-CSharp-firstpass;使用 Unity 项目创建的普通项目。现在在程序集中没有正确引用的脚本之前没有引起任何问题,我根本没有更改它们。我不知道我会做什么,现在导致它破裂。以前这些脚本没有出现错误;前一刻他们编译得很好,下一刻这些错误又出现了。
版本
Unity 2019.3.12f1 个人版。
Visual Studio 社区 2017 年 15.9.22。
我试过了:
- 所有这些Visual Studio refuses to build project due to missing assembly reference that isn't missing
- 所有这些"Are you missing an assembly reference?" compile error - Visual Studio
- 从 Unity 项目文件夹中删除 .vs 文件夹和所有 VS 文件,并让编辑器重新生成它们。也从统一内手动重新生成
- 确保 Visual Studio(以及 Visual Studio Tools for Unity(使用 Visual Studio 安装程序安装))完全是最新的。
- 将 VS 更新到最新版本
- 从 Unity 中删除了 VS Code 包(我没有使用 Code),然后重新读取。
- 在上述所有操作之间多次重启 Unity 和 VS。
- 编辑:所有这些http://www.codeandyou.com/2017/08/missing-assembly-reference-in-visual.html
编辑:
我已经在副本中删除了项目的大部分内容,看看什么时候可以解决。它并不能一直解决到删除最后一个脚本。然后删除最后一个脚本并再次添加一个不同的脚本会导致错误。我不认为这是脚本本身有什么问题,但一定是 VS 设置或行为的问题。
【问题讨论】:
-
之前都在工作什么?从头开始创建一个全新的,看看是否有效。如果新的从头开始不起作用,则说明您有安装问题。如果新的有效,请开始将您的重要部分复制到新的中,看看它在哪里坏了。只需将其分解并有条不紊。这是一个调试练习。
-
@Wyck 我已将问题编辑得更清楚一些。几天前我正在编写一些代码并且它正在编译,一个小时后它没有,我什至没有处理现在没有引用的脚本。我认为复制脚本不会解决这个问题,因为它会导致更多的编译器错误(实际错误),而且这个问题与 Visual Studio 中的程序集引用有关。正如我所提到的,在游戏引擎中它正在编译和运行良好,当我在 Visual Studio 中手动修复引用时,它会编译得很好,然后在没有明显原因的情况下再次中断。
-
凹凸编辑
标签: c# visual-studio unity3d visual-studio-2017 .net-assembly