【问题标题】:Setting individual StyleCop rules as build errors将单个 StyleCop 规则设置为构建错误
【发布时间】:2013-04-16 02:26:26
【问题描述】:

根据this blog,您可以将所有/某些项目设置为将 StyleCop 违规视为构建错误而不是警告:

默认情况下,StyleCop 违规将显示为构建警告。 要将 StyleCop 违规转化为构建错误,必须将标志 StyleCopTreatErrorsAsWarnings 设置为 false。 该标志可以设置为机器上的环境变量,也可以在构建环境命令窗口中设置。以这种方式设置标志将导致 StyleCop 违规自动显示为所有启用 StyleCop 构建集成的项目的构建错误。

或者,可以在项目文件中为特定项目设置此标志。 再次打开项目的 .csproj 文件,找到文件中的第一个 PropertyGroup 部分。添加新标签以将 StyleCopTreatErrorsAsWarnings 标志设置为 false。

This doc 显示了您可以打开/关闭单个规则的位置,但它似乎不支持设置严重性,只能完全打开/关闭它们。

是否可以更精细地控制哪些规则会导致错误和警告?

【问题讨论】:

    标签: c# .net msbuild stylecop


    【解决方案1】:

    它不应该,但如果你真的想要它.. 为什么不呢?

    这里是一个想法,而不是一个完整的解决方案。

    StyleCop.Targets 文件中有两行有用的行。第一个导入 StyleCop 任务:

    <UsingTask AssemblyFile=".\StyleCop.dll" TaskName="StyleCopTask"/>
    

    这个叫它:

    <StyleCopTask
      ProjectFullPath="$(MSBuildProjectDirectory)"
      SourceFiles="@(StyleCopFiles)"
      AdditionalAddinPaths="@(StyleCopAdditionalAddinPaths)"
      ForceFullAnalysis="$(StyleCopForceFullAnalysis)"
      DefineConstants="$(DefineConstants)"
      TreatErrorsAsWarnings="$(StyleCopTreatErrorsAsWarnings)"
      CacheResults="$(StyleCopCacheResults)"
      OverrideSettingsFile="$(StyleCopOverrideSettingsFile)"
      OutputFile="$(StyleCopOutputFile)"
      MaxViolationCount="$(StyleCopMaxViolationCount)"
            />
    

    所以你基本上需要调用它两次,第一次指定TreatErrorsAsWarningsfalse(这样如果有任何警告它就会失败),第二次指定true(导致只是警告)。

    此外,您将需要使用两个单独的设置文件 - 第一个带有 stylecop 'errors',第二个带有 'warnings'。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-26
      • 1970-01-01
      • 1970-01-01
      • 2017-05-20
      • 2017-10-14
      • 1970-01-01
      • 2010-10-13
      • 1970-01-01
      相关资源
      最近更新 更多