【问题标题】:How to exclude some stylecop rule in visual studio 2013如何在 Visual Studio 2013 中排除一些 stylecop 规则
【发布时间】:2014-08-28 08:15:03
【问题描述】:

我正在使用 Visual Studio 2013。

我使用 NuGet 包安装 stylecop,请按照以下步骤操作: https://www.nuget.org/packages/StyleCop.MSBuild/

以前在使用 Visual Studio 2010 时,我通常将名为 Setting.StyleCop 的自定义规则集放入我的解决方案或项目中。

我应该如何实现我在 VS 2013 中设置的自定义规则?

【问题讨论】:

  • 只是做你一直做的事情?我看不出这有什么不同。是什么阻碍了你?
  • 不同的是,对于 VS 2013,Stylecop 不支持在安装过程中自动集成。这就是一切的开始。
  • 您应该仍然可以添加setting.Stylecop 文件。只需选择新的 XML 文件作为模板并为其命名。

标签: msbuild visual-studio-2013 nuget-package stylecop


【解决方案1】:

Settings.StyleCop 仍然像以前一样工作。


StyleCop.MsBuild 包执行几个操作:

1. 在 packages 目录中存储 StyleCop.exe 的一个实例,这使得它可以在机器、构建服务器等之间移植。即 \packages\StyleCop.MSBuild.4.7.49.1\tools 这与您使用的几乎相同安装它,但它不在程序文件中。

2. 对 csproj 进行更改,即:

  <Import Project="..\..\packages\StyleCop.MSBuild.4.7.49.1\build\StyleCop.MSBuild.Targets" Condition="Exists('..\..\packages\StyleCop.MSBuild.4.7.49.1\build\StyleCop.MSBuild.Targets')" />
  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
    <PropertyGroup>
      <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
    </PropertyGroup>
    <Error Condition="!Exists('..\..\packages\StyleCop.MSBuild.4.7.49.1\build\StyleCop.MSBuild.Targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\StyleCop.MSBuild.4.7.49.1\build\StyleCop.MSBuild.Targets'))" />
  </Target>

所有这些基本上都是指向目标文件,以便它运行 stylecop 并添加一些要求,以使包在构建之前存在。

您需要做什么才能使用 StyleCop.Settings
将其复制到解决方案的根目录或项目文件中,然后它应该像往常一样被拾取。最简单的方法就是从\packages\StyleCop.MSBuild.4.7.49.1\tools复制它

【讨论】: