【问题标题】:MSBuild: Treat single warning as errorMSBuild:将单个警告视为错误
【发布时间】:2013-03-11 05:31:28
【问题描述】:

有没有办法强制 MSBuild 将某个警告视为错误?

在运行 ccproj 文件的发布目标以制作 cspkg 以部署到 Azure 时,会引发此错误:

Project.Name : 警告 WAT150: 项目 'Project.Name' 是 依赖于以下组件: C:\Windows\assembly\GAC_64\DllName\2.10.0.0__Guid\DllName.dll。这 组件不在包装中。要确保角色启动,请添加 此程序集作为对项目的引用并设置 Copy Local 属性为真。 [C:\bld\66\797\Sources\Applications\cloud\Project.Name.ccproj]

这是一个警告,可能意味着角色在部署时不会启动...我想让 WAT150 成为错误。 有没有办法使特定的单个警告或警告列表成为错误?

【问题讨论】:

    标签: visual-studio-2010 azure msbuild


    【解决方案1】:

    在 msbuild 命令行选项中你有这个:

    warningsAsErrors

    指定作为错误处理的警告列表。此参数等效于 /warnaserror 编译器开关。

    文档链接:http://msdn.microsoft.com/en-us/library/vstudio/bb629394(v=vs.100).aspx

    【讨论】:

    • 这实际上不是命令行选项。命令行选项为/p:key=value,key 为warningsAsErrors
    【解决方案2】:

    在 MSBuild 中,您可以使用 /warnaserror 命令行开关

      /warnaserror[:code[;code2]]
                         List of warning codes to treats as errors.  Use a semicolon
                         or a comma to separate multiple warning codes. To treat all
                         warnings as errors use the switch with no values.
                         (Short form: /err[:c;[c2]])
    
                         Example:
                           /warnaserror:MSB4130
    
                         When a warning is treated as an error the target will
                         continue to execute as if it was a warning but the overall
                         build will fail.
    

    这相当于在项目文件(docs)中设置<WarningsAsErrors>属性。

    为了完整起见,C# 编译器还具有 -warnaserror 命令行选项 (docs)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-05
      • 2012-01-13
      • 2022-08-03
      • 2010-11-05
      • 2013-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多