使用FinalBuilder构建时,代码分析失败

时间:2013-07-25 12:38:09

标签: .net visual-studio-2010 fxcop static-code-analysis finalbuilder

更新3 我现在发现,当FinalBuilder调用MSBUILD时,似乎会调用旧版本的FxCop。使用命令行,当使用VS2010版本的FxCop运行时一切正常,但是当我对VS2008使用相同的命令时,我收到错误消息Switch /reference is an unknown switch

我有一个使用FinalBuilder 6构建的Visual Studio 2008解决方案。

我现在已经将解决​​方案转换为Visual Studio 2010并升级到FinalBuilder 7.使用Visual Studio中的静态代码分析可以很好地构建解决方案,但是在FinalBuilder 7中运行时构建失败,并出现以下错误:

  

运行代码分析...

     

Switch'/ reference'是一个未知的开关。

     

MSBUILD:错误:CA0059:传递给CodeAnalysis任务的设置无效。有关详细信息,请参阅输出窗口。

造成这种情况的原因是什么?如何解决此问题?我找不到/ reference开关的含义,或者它的设置位置。因为它在Visual Studio中工作,我认为它可能与FinalBuilder如何调用MSBUILD有关,但我猜这里。

任何想法都会非常感激。

更新:代码分析设置位于.ruleset文件中,该文件是解决方案项的一部分,并在.csproj中引用,如下所示:

<RunCodeAnalysis>true</RunCodeAnalysis>
<CodeAnalysisRules>
</CodeAnalysisRules>
<PlatformTarget>x86</PlatformTarget>
<CodeAnalysisRuleSet>..\myproduct.ruleset</CodeAnalysisRuleSet>

更新2:运行FinalBuilder正在使用的构建命令时,从命令行开始,一切正常。我注意到从命令行调用FxCop时,使用以下参数调用它:

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe /t:Rebuild /nr:false /p:Configuration="Release";Platform="Any CPU";TargetFramework="v2.0" /v:normal /m "C:\makempm\5.0.0.0\myproductTool.sln"

它反过来调用FxCopCmd.exe:

C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\FxCopCmd.exe  
/outputCulture:1033 
/out:"bin\Release\myproduct.exe.CodeAnalysisLog.xml" 
file:"bin\Release\myproduct.exe" /reference:"C:\makempm\5.0.0.0\mpCommon\bin\Release\mpCommon.dll" 
/reference:"C:\makempm\5.0.0.0\mpConfiguration\bin\Release\mpConfiguration.dll"
/reference:"C:\makempm\5.0.0.0\mpDownload\bin\Release\mpDownload.dll" 
/reference:"C:\makempm\5.0.0.0\mpStatus\bin\Release\mpStatus.dll" 
/reference:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorlib.dll" 
/reference:"c:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5\System.Core.dll" 
/reference:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dll" 
/reference:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Deployment.dll" 
/reference:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Design.dll" 
/reference:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dll" 
/reference:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dll" 
/reference:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dll" 
/reference:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Xml.dll" 
/directory:"C:\makempm\5.0.0.0\mpConfiguration\bin\Release" 
/directory:"C:\makempm\5.0.0.0\mpDownload\bin\Release" 
/directory:"c:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5" 
/directory:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727" 
/directory:"C:\makempm\5.0.0.0\mpStatus\bin\Release" 
/directory:"C:\makempm\5.0.0.0\mpCommon\bin\Release" 
/ruleSet:"=C:\makempm\5.0.0.0\myproduct\..\myproduct.ruleset" 
/rulesetdirectory:"C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets" 
/rule:"-C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules" 
/searchgac 
/ignoreinvalidtargets 
/forceoutput 
/successfile 
/ignoregeneratedcode 
/saveMessagesToReport:Active 
/targetframeworkversion:v3.5 
/timeout:120

一切都很好:

  

代码分析完成 - 0个错误,0个警告

0 个答案:

没有答案