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

Msbuild 如何在解决方案中嵌入StyleCop?,msbuild,visual-studio-2015,stylecop,Msbuild,Visual Studio 2015,Stylecop,我尝试在VisualStudio解决方案中集成StyleCop。在每个开发人员的每台机器上安装StyleCop是我希望避免的事情。我多次看到的建议()是在项目中包含StyleCop的二进制文件,并将它们存储在版本控制中 我做到了。它在我的机器上工作,但在未安装StyleCop的其他机器上失败。在我的机器上卸载StyleCop之后,它也不工作了 错误消息如下所示: 严重性代码说明项目文件行 错误无法从程序集C:\Program Files(x86)\MSBuild..\StyleCop 4.7\S

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

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

错误消息如下所示:

严重性代码说明项目文件行 错误无法从程序集C:\Program Files(x86)\MSBuild..\StyleCop 4.7\StyleCop.dll加载“StyleCopTask”任务。无法加载文件或程序集的file:///C:\程序文件(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:\ProgramFiles(x86)\MSBuild\StyleCop\v4.7\StyleCop.Targets的副本


怎么了?

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

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

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

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