为啥我的命名空间引用在 Visual Studio 中不断中断?

Posted

技术标签:

【中文标题】为啥我的命名空间引用在 Visual Studio 中不断中断?【英文标题】:Why do my namespace references keep breaking in Visual Studio?为什么我的命名空间引用在 Visual Studio 中不断中断? 【发布时间】: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 中手动修复引用时,它会编译得很好,然后在没有明显原因的情况下再次中断。 凹凸编辑 【参考方案1】:

又弹出这个问题(我用的是2020.2.1f1)。

我通过在编辑器中选择 Assets->Reimport All 来修复它。

【讨论】:

【参考方案2】:

原来这是 Unity 中的一个错误。新的更新出来了,修复了它。我生命中的 8 小时后...

【讨论】:

我想我现在正面临这个问题,但它应该是以后的版本.. 可以指定涉及哪些版本吗?我在 2019.3.12 我在 2019.3.2f1 并且遇到了类似的问题。请让我们知道哪个版本更新解决了该问题。在 Unity 编辑器中编译工作正常,但生成的 Visual Studio 项目包含带有警告图标的引用。【参考方案3】:

我正在使用 Unity 2020.3.18f1 和 Visual Studio 2019.. 花几个小时弄清楚。我试过了:-

    正在删除“*.csproj” Unity > 编辑 > 首选项 > 外部工具 > “重新生成项目文件” Unity > 编辑 > 首选项 > 外部工具 > 外部脚本编辑器 > Visual Studio 重建解决方案 在unity中右键单击.cs文件>在脚本上打开C#项目 重新导入脚本 创建新脚本并打开,以触发重新编译

这些都不适合我的情况。在 Visual Studio 的“解决方案资源管理器”中重新加载程序集后问题消失了。对“卸载”程序集的其余部分执行操作。

【讨论】:

只需调用 Unity > 编辑 > 首选项 > 外部工具 > “重新生成项目文件”已经为我修复了它。谢谢!

以上是关于为啥我的命名空间引用在 Visual Studio 中不断中断?的主要内容,如果未能解决你的问题,请参考以下文章

为啥visual studio找不到response学要using啥

在 Visual Studio C++ 中使用 DLL

由于缺少未丢失的程序集引用,Visual Studio拒绝构建项目

Visual Studio 中的 .NET Framework 类库

Visual Studio 未能解析主引用 该框架版本高于当前目标框架

参考 c# Visual Studio