You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MSBuild的NoWarn属性中无前缀数字的默认解析规则是什么?

问题

给定如下项目文件:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <NoWarn>75</NoWarn>
  </PropertyGroup>
</Project>

请问MSBuild会如何解析其中的75?有两种猜想:

  • 默认视为C#编译器警告
  • 根据项目语言自动匹配对应语言的警告(如CS0075、FS0075或BC0075)

相关文档未明确说明,特此求证。

回答

MSBuild会根据项目语言自动匹配对应前缀的警告码,即第二种猜想成立。

具体行为如下:

  • 若为C#项目,75会被解析为CS0075
  • 若为F#项目,会被解析为FS0075
  • 若为VB.NET项目,则会被解析为BC0075

.NET SDK的目标会依据项目类型(通过项目文件后缀或SDK隐含的语言属性),自动为NoWarn中的纯数字警告码补充对应语言的前缀,并非默认绑定C#警告。

内容的提问来源于stack exchange,提问作者psfinaki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 18:12:01