2

更新 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 中运行时构建失败,并出现以下错误:

运行代码分析...

开关“/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 个警告

4

0 回答 0