我最近从Visual Studio 2012升级到2017(更新到15.3.5版)并且在IDE上遇到了一些问题。
在某个项目中,我没有得到错误下划线。
并在“错误列表”窗格中,“仅构建”实际显示更多信息,而不是“Build + IntelliSense”
此外,选择“Build + IntelliSense”后,我只能在“输出”窗口中看到编译器错误。这是构建失败后的错误列表
但输出窗口有:
3> ------构建开始:项目:...,配置:调试任何CPU ------
3> C:\ Checkout ... \ MainForm.vb(454,27):错误BC30311:类型'Module1.aClass'的值无法转换为'Module1.bClass'。
所有项目都不会发生这种情况。我做了一个新项目,看看我是否可以复制,但我做不到。这是一个具有相同代码的新项目,其中错误在代码中加下划线并且“Build + IntelliSense”有效。
我甚至已经在vbproj文件中对xml进行了排序,并且“违反”了违规项目与新项目,并且没有明显的区别会导致这种情况。两者都引用相同的编译器。这两个项目都以.Net 4.6.2为目标,并设置为仅针对x86进行编译。违规项目引用了一些其他项目(C#和VB.Net)以及第三方dll和nuget包。除了这些差异之外别无其他。
违规项目解决方案中的其他项目(C#和VB.Net)工作正常。
我在网上看过类似的问题,但没有任何修复对我有用。我在安装程序中尝试了“修复”选项。然后我卸载了Visual Studio并重新安装。
更新
更改目标框架似乎有一些影响。具有此行为的项目的目标是4.6.2并且没有显示任何错误,当它更改为4.7时,它显示出编译错误。然后改回4.5它显示错误。然后改回4.6.2它没有显示任何错误。重复该过程被证明是不可重复的。 4.7,4.5,4.6,4.6.2 - 无论如何,现在都没有显示错误。
链接此Microsoft页面https://developercommunity.visualstudio.com/content/problem/7759/no-errors-displayed-in-the-error-list.html也很重要,因为许多其他人似乎也有类似的问题。
答案 0 :(得分:2)
至少在我的解决方案中,我已经解决了这个问题。
我正在玩项目引用,并发现当某个特定项目没有被另一个项目引用时,我得到了错误下划线。我经历了一个改变框架版本目标的过程,直到有效。
我之前的所有项目都是针对.NET 4.6.2。通过在所有项目上定位4.7,我现在可以在错误窗口中获得正确的错误下划线和报告。
我不确定这是否适用于所有人,我需要做一些额外的工作才能将我的项目部署到生产中,但我可以接受。
我想这与使用Visual Studio 2012并升级到2017年的目标4.6.2有关。如果/当项目升级时,可能没有正确设置某些内容。