如何在解决方案中嵌入StyleCop?

时间:2015-11-17 16:06:36

标签: msbuild visual-studio-2015 stylecop

我尝试将StyleCop集成到Visual Studio解决方案中。在每个开发人员的每台机器上安装StyleCop是我宁愿避免的。我多次看到的建议(example)是将StyleCop的二进制文件包含在项目中,并将它们存储在版本控制中。

我做到了。它在我的机器上工作,但在未安装StyleCop的其他机器上失败。在我的机器上卸载StyleCop后,它也无法正常工作。

错误消息如下:

  

严重级代码说明项目文件行   错误无法从程序集C:\ Program Files(x86)\ MSBuild .. \ StyleCop 4.7 \ StyleCop.dll加载“StyleCopTask”任务。无法加载文件或程序集'file:/// C:\ Program Files(x86)\ StyleCop 4.7 \ StyleCop.dll'或其依赖项之一。该系统找不到指定的文件。确认声明是否正确,程序集及其所有依赖项是否可用,以及该任务是否包含实现Microsoft.Build.Framework.ITask的公共类。演示

这是我在每个.csproj文件中包含的内容:

<Import Project="$(SolutionDir)\externs\Microsoft.StyleCop\StyleCop.targets" />

目录C:\demo\externs\Microsoft.StyleCop包含:

  • C:\Program Files (x86)\StyleCop 4.7

  • 中所有文件的副本
  • C:\Program Files (x86)\MSBuild\StyleCop\v4.7\StyleCop.Targets

  • 的副本

怎么了?

1 个答案:

答案 0 :(得分:4)

StyleCop.Targets似乎包含绝对路径:

<UsingTask
    AssemblyFile="$(MSBuildExtensionsPath)\..\StyleCop 4.7\StyleCop.dll"
    TaskName="StyleCopTask"/>

为了能够在未安装应用程序的计算机上使用StyleCop,请将此路径更改为类似于:

<UsingTask
    AssemblyFile="$(SolutionDir)\externs\Microsoft.StyleCop\StyleCop.dll"
    TaskName="StyleCopTask"/>