【问题标题】:Why am I getting "vbc : warning BC42206: Maximum number of warnings has been exceeded" in Visual Studio 2013?为什么我在 Visual Studio 2013 中收到“vbc:警告 BC42206:已超出最大警告数”?
【发布时间】:2014-11-19 22:55:02
【问题描述】:

我正在维护一些我没有编写的遗留代码,这些代码目前会产生很多警告。我正在尝试修复我接触的文件中的警告,但它们并未全部报告:每个项目我得到 101,然后是这个问题标题中的消息。

作为测试,我创建了一个全新的面向 .NET 4.5.1 的 VB.Net Windows Forms 应用程序,并将 150 个未使用的局部变量插入到 Form_Load。

只有前 101 个触发警告,然后我得到“已超出最大警告数”:

根据this question 的回答,不应再有警告限制,因为 Visual Studio 2012 / VB 11。

我正在使用 Visual Studio 2013,我的构建日志中的 CoreCompile 行表明它正在从 MSBuild 版本 12 调用 vbc.exe

C:\Program Files (x86)\MSBuild\12.0\bin\Vbc.exe /noconfig /imports:Microsoft.VisualBasic,System,System.Collections,System.Collections.Generic,System.Data,System.Drawing,System.Diagnostics,System.Windows.Forms,System.Linq,System.Xml.Linq,System.Threading.Tasks /optioncompare:Binary /optionexplicit- /optionstrict+ /nowarn:42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 /optioninfer+ /nostdlib /platform:anycpu32bitpreferred /rootnamespace:WindowsApplication3 /sdkpath:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1" /highentropyva+ /doc:obj\Debug\WindowsApplication3.xml /define:"CONFIG=\"Debug\",DEBUG=-1,TRACE=-1,_MyType=\"WindowsForms\",PLATFORM=\"AnyCPU\"" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\System.Core.dll","C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\System.Data.DataSetExtensions.dll","C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\System.Data.dll","C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\System.Deployment.dll","C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\System.dll","C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\System.Drawing.dll","C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\System.Windows.Forms.dll","C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\System.Xml.dll","C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\System.Xml.Linq.dll" /main:WindowsApplication3.My.MyApplication /debug+ /debug:full /filealign:512 /out:obj\Debug\WindowsApplication3.exe /subsystemversion:6.00 /resource:obj\Debug\WindowsApplication3.Form1.resources /resource:obj\Debug\WindowsApplication3.Resources.resources /target:winexe Form1.vb Form1.Designer.vb "My Project\AssemblyInfo.vb" "My Project\Application.Designer.vb" "My Project\Resources.Designer.vb" "My Project\Settings.Designer.vb" "C:\Users\blorgbeard\AppData\Local\Temp\.NETFramework,Version=v4.5.1.AssemblyAttributes.vb"

编辑:我尝试手动运行上述程序(即从命令行调用 vbc.exe),但仍然只收到 101 个警告。

我在 google 上也找不到任何最近引用此错误消息的内容。

这让我怀疑我的本地配置有问题。

我如何获得所有我的 VB 编译器警告的列表?

【问题讨论】:

    标签: vb.net visual-studio visual-studio-2013 msbuild compiler-warnings


    【解决方案1】:

    无限(命令行)错误! 这实际上是一件好事,让我解释一下。出于性能原因,Visual Basic IDE 最多出现 101 个错误(错误 #102 是“超出最大错误数”)。这可能会导致难以估计在某些情况下剩余的工作量,尤其是在升级方案中。在此版本中,我们已从命令行编译器中删除了此限制,尽管它仍然存在于 IDE 中。这意味着如果您想确切知道一个项目有多少错误,只需通过 msbuild.exe 或 vbc.exe 调用编译器,您就会得到答案。

    来自: http://blogs.msdn.com/b/vbteam/archive/2012/02/28/visual-basic-11-beta-available-for-download.aspx

    底线:你仍然有来自 IDE 的限制。手动运行 vbc.exe 以获取它没有限制。

    注意:最新的 msbuild 和 vbc(版本 12 - 与 Visual Studio 一起分发)似乎再次限制为 101 个警告。您必须使用以前版本的构建工具(版本 11 - 与 .Net 框架一起分发)。

    【讨论】:

    • 我尝试手动运行 vbc.exe,不幸的是,收到了相同的输出:(
    • 我发现问题在最新的 vbc 中又出现了。使用随 .Net framework 4 分发的版本会报告所有警告。我没有在我自己的答案中发布该信息,而是在您的答案中添加了一条注释。希望没问题!
    【解决方案2】:

    我很高兴地报告,在 Visual Studio 2015(命令行工具和 IDE 中)中,限制已经消失(或至少更大):

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多