我想自動執行在.NET解決方案上收集代碼度量的過程。有什麼辦法讓msbuild運行VS2008開發版中包含的Code Metrics功能?如何自動化Visual Studio的代碼度量功能
我可能會最終使用SourceMonitor,但我想知道是否有方法從命令行使用VS代碼度量引擎。
我想自動執行在.NET解決方案上收集代碼度量的過程。有什麼辦法讓msbuild運行VS2008開發版中包含的Code Metrics功能?如何自動化Visual Studio的代碼度量功能
我可能會最終使用SourceMonitor,但我想知道是否有方法從命令行使用VS代碼度量引擎。
最後,Microsoft向我們提供了使用新的「power tool」的a way to automate the Visual Studio code metrics feature。
這是我的公司如何使用自動的FxCop的MSBuild:
<!-- The directory where FxCop is installed. -->
<FxCopDirectory>C:\Program Files\Microsoft FxCop 1.36</FxCopDirectory>
<!-- The FxCop console executable.. -->
<FxCopCmd>$(FxCopDirectory)\FxCopCmd</FxCopCmd>
<Target Name="CodeAnalysis>
<!-- Once to get XML for metrics. -->
<Exec Command=""$(FxCopCmd)" /p:"$(BuildDirectory)\FxCop\RuleSet.FxCop" /out:$(BuildResults)\FxCop.xml /summary /verbose /f:$(Binaries)\@(CodeAnalysis, ' /f:$(Binaries)\')" />
<!-- Once to report with the build results. -->
<Exec Command=""$(FxCopCmd)" /p:"$(BuildDirectory)\FxCop\RuleSet.FxCop" /out:$(BuildResults)\FxCop.html /summary /verbose /applyoutXsl:$(MSBuildTasks)\CodeAnalysisReport.xsl /f:$(Binaries)\@(CodeAnalysis, ' /f:$(Binaries)\')" />
<!-- Update the FxCop report so that it is fully expanded by default. -->
<FileUpdate Regex="<body\s"
ReplacementText="<body onLoad="ExpandAll();" "
Files="$(BuildResults)\FxCop.html" />
</Target>
然後,你可以寫一些C#代碼來使用輸出文件:
/// <summary>
/// Gather metrics for code analysis.
/// </summary>
private static void GatherCodeAnalysisMetrics()
{
string file = @"$(BuildResults)\FxCop.xml";
if (!File.Exists(file)) return;
System.Xml.XmlDocument document = new System.Xml.XmlDocument();
document.Load(file);
System.Xml.XmlNodeList list = document.SelectNodes("//Message");
codeAnalysisWarnings = list.Count;
Console.WriteLine("Code analysis warnings: " + codeAnalysisWarnings);
}
我想從代碼度量分析的命令中運行我的C++解決方案文件(vs 2010)。是否需要爲C++ Project進行此項工作? – 2012-02-16 13:43:45