.net 4.0 如何在生成服务器上运行.NET4代码分析

.net 4.0 如何在生成服务器上运行.NET4代码分析,.net-4.0,fxcop,build-server,.net 4.0,Fxcop,Build Server,在带有.NET 4 SDK但没有Visual Studio 2010的Windows Server 2003 R2上,我尝试使用构建Visual Studio 2010解决方案 msbuild MySolution.sln /p:RunCodeAnalysis=true 但这失败了 在这样的环境中运行代码分析需要什么 我收到此错误消息:另一个选项可能是将FxCop可执行文件作为生成任务(从)调用,将结果保存为XML文件,该文件可以在大多数CI工具(如Hudson和CC.NET)中解析。我在我

在带有.NET 4 SDK但没有Visual Studio 2010的Windows Server 2003 R2上,我尝试使用构建Visual Studio 2010解决方案

msbuild MySolution.sln /p:RunCodeAnalysis=true
但这失败了

在这样的环境中运行代码分析需要什么



我收到此错误消息:另一个选项可能是将FxCop可执行文件作为生成任务(从)调用,将结果保存为XML文件,该文件可以在大多数CI工具(如Hudson和CC.NET)中解析。

我在我的MSBuild服务器上遇到了相同的问题,并通过以下方式修复了该问题:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\CodeAnalysis\Microsoft.CodeAnalysis.targets(129,9): error MSB6003: The specified task executable "FxCopCmd.exe" could not be run. Could not load file or assembly 'Microsoft.VisualStudio.CodeAnalysis.Sdk, Version=10.0.0.0, Culture=neutral, PublicKeyToken= b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
  • 安装Windows SDK 7.1
  • 在Win32中的HKEY\U LOCAL\U MACHINE\Software\Microsoft\VisualStudio\10.0\Setup\EDev中设置注册表项
然后,我从dev PC复制到构建服务器上的FxCop文件夹,如下所示:

  • 文件夹规则集(默认安装目标为:C:\Program Files(x86)\Microsoft Visual Studio 14.0\Team Tools\Static Analysis Tools\FxCop)
  • Microsoft.VisualStudio.CodeAnalysis.Sdk.dll
  • Microsoft.VisualStudio.CodeAnalysis.Phoenix.dll
  • phx.dll
在安装了Visual Studio的dev PC上搜索它们以找到它们

然后使用.NET 4.0版本的gacutil.exeMicrosoft.VisualStudio.CodeAnalysis.Sdk.dll安装到GAC


然后,您应该能够将代码分析作为MSBuild生成的一部分运行,并使其正常工作。

FxCop的替代方法是使用允许写入的工具NDepend。免责声明:我是该工具的开发者之一

默认情况下建议的数量超过。由于众所周知的C#LINQ语法,定制现有规则或创建自己的规则非常简单


规则可以在构建过程中进行验证。

谢谢!包括这些程序集和规则使它为我工作。应该为SADDIR设置什么值?如果它对.NET 4.5和VS 2012中构建的项目有帮助,可以共享分步的指令吗?这对于C++项目,而不是C项目是有效的。
HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\10.0\Setup\EDev@FxCopDir