2014-09-24 65 views
0

我有一个约80个项目的解决方案。每个项目都启用StyleCop MSBuild集成:删除stylecop msbuild集成

<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> 
    <Import Project="$(ProgramFiles)\MSBuild\Microsoft\StyleCop\v4.4\Microsoft.StyleCop.targets" /> 

我需要从所有项目中删除此项。有没有办法检出和手动编辑每个.csproj文件?

+1

可能重复[如何摆脱了StyleCop的(http://stackoverflow.com/questions/4399061/how-to-get-rid-of-stylecop) – jordanhill123 2014-09-24 02:40:31

+0

@ jordanhill123不是。当人们被告知如何禁用警告时,该问题被标记为“回答”。我知道该怎么做。我需要TFS TEAMBUILD控制器来忽略这些导入语句。 – zaitsman 2014-09-24 02:46:13

+2

这个问题中的这个特定答案是否有帮助? http://stackoverflow.com/a/21931371/749725我不使用TFS,所以不能测试它,并不确定它将如何处理这个配置文件。 – jordanhill123 2014-09-24 02:47:57

回答

2

Microsoft.StyleCop.targets中定义的StyleCop目标是以属性StyleCopEnabled为条件。

这里是Microsoft.StyleCop.targets一个片段:

<!-- Define target: StyleCop --> 
<Target Name="StyleCop" Condition="'$(StyleCopEnabled)' != 'false'"> 
    <Message Text="Forcing full StyleCop reanalysis." Condition="'$(StyleCopForceFullAnalysis)' == 'true'" Importance="Low" /> 
    ... snip ... 

的快捷方式禁用了StyleCop是通过全局设置为StyleCopEnabled。例如。如果你是从命令行构建,命令将是:msbuild MyProject.proj /p:StyleCopEnabled=false

+0

我试着在TFS的MSBuild参数中指定它,并且由于某种原因它忽略了它。当然,这可能是TFS的问题。另外,是否需要安装stylecop才能识别此标志? – zaitsman 2014-09-25 01:13:02

+0

@zaitsman,您的项目假定已安装StyleCop,并且如果在元素中指定的位置找不到'Microsoft.StyleCop.targets'文件,则构建失败。错误代码将是'MSB4019'。 – 2014-09-25 16:23:36

+0

是的,我收集到了。我可以绕过这个的唯一方法就是手动编辑每个项目的.csproj文件来删除它。 我正在寻找的是某种自动化的方式来实现相同的结果。我无法在tfs在线上的托管构建控制器上安装stylecop。 – zaitsman 2014-09-25 23:46:18

0

我有一个类似的问题,仍然是手动编辑,但这对我有用。在记事本中打开所有的.csproj文件,方法是在项目目录中搜索,然后选择全部和“用记事本++编辑”。然后做了“查找全部在所有打开的文档”查找,替换,除去导入行:

<Import Project="$(ProjectDir)\..\StyleCop.targets" Condition=" '$(OS)' == 'Windows_NT' " />