在Visual Studio 2019中构建错误不一致地显示在错误列表中

15

我最近从Visual Studio 2017 Community Edition升级到Visual Studio 2019 Community Edition。

现在,如果我的解决方案构建有错误,它们将显示在构建输出中,但并不是所有的错误都会出现在错误列表中。只有打开文件的错误才会显示在错误列表中。这非常让人恼火。

我不是唯一遇到这个问题的人。在Microsoft的论坛上已经有很多次报告了这个问题,但没有一个明确的解决方案。

我尝试了许多人在这些帖子中建议的解决方案:

  • 我保证筛选器是合法的:整个解决方案、启用错误、生成+智能感知。
  • 我尝试删除了.vs文件夹并重新启动Visual Studio。
  • 我刚刚更新到最新的Visual Studio 2019版本。据说这个错误有很多不同的版本,在Visual Studio 2017之后的版本中发生。有些被认为已经被修复了...?
  • 我已经禁用了并行项目加载。

我以前在其他版本的Visual Studio中也遇到过这个问题,主要是在Razor页面中。据我所知,在Razor中会出现这种情况。

我严重怀疑影响任何事情的唯一因素是它是由Unity编辑器生成的Visual Studio项目。根据我所读的,ASP.NET、Razor、Xamarin和其他框架都报告了自己版本的问题。也许Unity也受到了影响,但我不知道如何或为什么会受到影响。我怀疑Unity自动生成的Visual Studio项目与您的标准库项目并没有那么大的区别。


1
你是否点击了“错误列表”中的“清除所有筛选器”? - mjwills
是的,但没有成功。 - Zoop
听起来像是个bug,你已经向微软报告了吗? - TheGeneral
我还没有。鉴于有几个人报告了类似的问题,并且它是随着Visual Studio 2019一起出现的,我希望它是其他问题。 - Zoop
1
从Visual Studio 2019的v16.8.2版本开始到至少v16.9.1版本,存在问题。已接受的解决方案无效。我不得不将构建输出复制到Notepad++中,并手动搜索“error”。如果Microsoft继续“更新”Visual Studio,我们很快就会回到纸和笔的时代。 - AlainD
5个回答

19

我现在已经在两台不同的计算机上安装了Visual Studio 2019,并且默认情况下"完整解决方案分析"是禁用的。

只需在选项中勾选复选框,似乎一切都像以前一样工作: 启用完整解决方案分析


1
谢谢!我一直在尝试找出如何修复这个问题(Visual Studio支持论坛没有帮助),最终偶然发现了这个。 - Nate Barbettini
不幸的是,即使在最新版本(16.7.2)中启用完整解决方案分析,也会使VS的整体性能急剧下降(例如,在键入和自动完成/建议列表出现或更新之间存在非常明显的延迟),并且每当错误列表窗口打开并有超过一小部分项目时,VS整个UI的响应速度也会突然变慢。 - Dai
4
在版本16.9.1中,这似乎不起作用,设置被称为“后台分析范围”,并设置为“整个解决方案”。这个错误将Visual Studio带回到手动构建代码以查看其是否有效的石器时代 :-( - Eric Mutta

3
对于使用 Visual Studio 2019 v16.9.1 的用户,请确保您的“错误列表”窗口看起来像这样:

Error List Window

对我来说重要的是选择生成+智能感知(之前设置为仅构建,这就解释了为仅在构建时才会刷新错误列表)。

4
我有一个相反的问题。在使用“建立+智能感知”时,只显示高级错误,但切换到“仅构建”后开始显示实际的构建错误。他们在最新的VS2019更新中破坏了一些基本功能... - AlainD
1
@AlainD,VS2019存在一些非常微妙的奇怪的错误/问题(例如,断点窗口的滚动条似乎无法正确调整大小以允许滚动断点列表),我希望他们能减缓发布频率,因为像Visual Studio这样庞大且重要的产品确实需要非常稳定。 - Eric Mutta
我正在使用VS 2019 16.11.5,但这仍然是一个问题。唉。 - Dai

0
在我的情况下,解决方案是关闭“工具->选项->项目和解决方案->常规->构建开始时显示输出窗口”。即使“输出”窗口显示“0成功,1失败”,它也不会切换回“错误列表”窗口,即使上面的复选框“如果构建完成后有错误,则始终显示错误列表”应该将其移动到“错误列表”。这显然是Visual Studio 2019的一个bug,在Visual Studio 2017中没有出现(我刚刚更新完)。

0
在我的情况下,问题是我正在 Release 模式下构建。一旦我从“开始调试”按钮旁边的下拉菜单中选择了 Debug 模式,它会在几秒钟后开始显示错误列表中的错误。

0
在我的情况下,这是因为依赖的 dll 是为 x86 构建的,但在出现问题的项目中,它的引用是使用 processorArchitecture=MSIL。

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