在 Visual Studio 2019 中将警告视为构建错误而非智能感知
Treating warnings as errors in Visual Studio 2019 for build but NOT intellisense
我刚开始在我的 csproj 文件中使用 <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
,当弄乱一些代码时,我发现自己花了很多额外的时间在所有不同的红线上徘徊找到 实际上 一个错误,因为我想优先修复错误而不是警告。如果 intellisense 警告仍然可以在文本编辑器中显示为绿线,但也会导致构建失败,那就太好了。
我认为我可以通过将 /warnaserror
传递给 MSBuild 来使 test/staging/production 构建失败,但我确实希望 VS 中的开发构建在出现任何警告时也会失败。
有人知道这是否可行吗?我在 Visual Studio 2019 年使用 .NET Framework 4.8(但也想知道在 .NET Core 中是否可行)。
非常感谢!
I've found myself taking quite a bit of extra time hovering over all
the different red lines to find the one that's actually an error, as I
want to prioritse fixing the errors over the warnings. It would be
great if the intellisense warnings could still show as green lines in
the text editor, but also cause the build to fail.
据我所知,Intellisense对捕获错误非常敏感,一旦构建的警告变成错误,intellisense会将它们捕获为错误。
Does anyone know if this is possible? I'm using .NET Framework 4.8
(but would also be interested to know if it's possible in .NET Core)
in Visual Studio 2019.
编辑 1
因此不可能区分这种状态下的警告和真正的错误。在这种状态下,Intellisense 不会区分它们。
作为替代方案,你可以试试我的建议:
建议
您可以创建一个名为 Production 的新配置,它不同于 Debug 或 Release。在这个解决方案中,第一步是找到真正的错误,第二步是将警告变成错误,以便优化代码。
首先,你可以使用Debug
或Release
在这种模式下构建你的项目,它可以捕捉到真正的构建错误,这样你就可以优先修复这些错误。
第二个,将Configuration
改为Production
。此阶段通常称为最终产品发布阶段,构建过程会将警告转化为错误,因此您可以发现错误代码并对其进行优化。
真正的问题是如何创建 Production 配置:
步骤
1)点击菜单Build
-->Configuration Manager
-->点击Active solution configuration
中的new
-->创建一个名为 Production
.
的新配置
2) 卸载项目并在 Production 下添加 <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
,如下所示:
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Production|AnyCPU'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\Production\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>AnyCPU</PlatformTarget>
<LangVersion>7.3</LangVersion>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>true</Prefer32Bit>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
</PropertyGroup>
一句话,先把Configuration
改成Debug
或者Release
,然后build工程找到真正的错误来修复它们。其次,将change Configuration
改为Production
,构建工程找到warning errors修复。
希望对您有所帮助。
我刚开始在我的 csproj 文件中使用 <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
,当弄乱一些代码时,我发现自己花了很多额外的时间在所有不同的红线上徘徊找到 实际上 一个错误,因为我想优先修复错误而不是警告。如果 intellisense 警告仍然可以在文本编辑器中显示为绿线,但也会导致构建失败,那就太好了。
我认为我可以通过将 /warnaserror
传递给 MSBuild 来使 test/staging/production 构建失败,但我确实希望 VS 中的开发构建在出现任何警告时也会失败。
有人知道这是否可行吗?我在 Visual Studio 2019 年使用 .NET Framework 4.8(但也想知道在 .NET Core 中是否可行)。
非常感谢!
I've found myself taking quite a bit of extra time hovering over all the different red lines to find the one that's actually an error, as I want to prioritse fixing the errors over the warnings. It would be great if the intellisense warnings could still show as green lines in the text editor, but also cause the build to fail.
据我所知,Intellisense对捕获错误非常敏感,一旦构建的警告变成错误,intellisense会将它们捕获为错误。
Does anyone know if this is possible? I'm using .NET Framework 4.8 (but would also be interested to know if it's possible in .NET Core) in Visual Studio 2019.
编辑 1
因此不可能区分这种状态下的警告和真正的错误。在这种状态下,Intellisense 不会区分它们。
作为替代方案,你可以试试我的建议:
建议
您可以创建一个名为 Production 的新配置,它不同于 Debug 或 Release。在这个解决方案中,第一步是找到真正的错误,第二步是将警告变成错误,以便优化代码。
首先,你可以使用Debug
或Release
在这种模式下构建你的项目,它可以捕捉到真正的构建错误,这样你就可以优先修复这些错误。
第二个,将Configuration
改为Production
。此阶段通常称为最终产品发布阶段,构建过程会将警告转化为错误,因此您可以发现错误代码并对其进行优化。
真正的问题是如何创建 Production 配置:
步骤
1)点击菜单Build
-->Configuration Manager
-->点击Active solution configuration
中的new
-->创建一个名为 Production
.
2) 卸载项目并在 Production 下添加 <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
,如下所示:
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Production|AnyCPU'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\Production\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>AnyCPU</PlatformTarget>
<LangVersion>7.3</LangVersion>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>true</Prefer32Bit>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
</PropertyGroup>
一句话,先把Configuration
改成Debug
或者Release
,然后build工程找到真正的错误来修复它们。其次,将change Configuration
改为Production
,构建工程找到warning errors修复。
希望对您有所帮助。