警告时强制构建失败> N

时间:2017-10-04 19:32:36

标签: visual-studio msbuild

是否可以在项目/解决方案级别编写“规则”,如果Visual Studio数字大于预定义msbuild,则warnings / N会失败?

原因:解决方案包含600+警告的遗留代码。我想稍后处理它们,但不希望新代码增加这个数字。

1 个答案:

答案 0 :(得分:2)

  

警告时强制构建失败> Ñ

根据界面IEventSource

  

定义构建引擎引发的事件。记录器在其Initialize方法中接收实现此接口的对象,并使用它来订阅他们有兴趣接收的事件。

因此我们可以使用客户记录器,它可以用.NET编写,例如C#。经过长时间的搜索,我发现了类似的问题:

How can I treat MSB3245 (could not resolve reference) warning as an error?

您可以参考stijn的答案获取详细信息。

要解决此问题,您可以尝试使用类WarningRaised来计算警告的数量:

public class ScanLogger : Logger
{

    private int warnings = 0;
    public override void Initialize(IEventSource eventSource)
    {

        eventSource.WarningRaised += (s, e) => ++warnings;
          {
               eventSource.MessageRaised += (s, e) =>
             Common.errorsOccurred |= (warnings >= 600);
          }
    }

有关详细信息,请参阅以下链接:IEventSource Interface

希望这有帮助。