2010-06-19 126 views
13

在.NET 4碼分析在基於Windows Server 2003 R2和.NET 4 SDK,但沒有Visual Studio 2010中,我試圖建立一個Visual Studio 2010的解決方案與如何運行構建服務器

msbuild MySolution.sln /p:RunCodeAnalysis=true 

但失敗。

在這樣的環境下運行代碼分析需要什麼?


我收到此錯誤信息:

 
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.

我從SDK並沒有運氣安裝的FxCop指出變量FxCopDir到FxCopCmd.exe的安裝位置,並設置此註冊表項到該位置:

HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\10.0\Setup\[email protected] 
+0

這適用於C++項目,但不適用於C#項目 – linquize 2014-01-17 02:34:30

回答

17

我有我的MSBuild的服務器上的同樣的問題,並通過固定它:

  • HKEY_LOCAL_MACHINE \軟件安裝的Windows SDK 7.1
  • 設置註冊表項FxCopDirStanDir \ Microsoft \ VisualStudio \ 10.0 \ Setup \ EDev(在Win32中)。

我再從開發PC複製到的FxCop文件夾中生成服務器上,如下:

  • 文件夾規則集(默認安裝的目標是在這裏:C: \程序文件(x86)\微軟的Visual Studio 14.0 \團隊工具\靜態分析工具\的FxCop)
  • Microsoft.VisualStudio.CodeAnalysis.Sdk.dll
  • Microsoft.VisualStudio.CodeAnalysis.Phoenix.dll
  • phx.dll

爲他們做一個搜索你的dev的PC上安裝Visual Studio,找到他們。

然後使用的Gacutil.exe的.NET 4.0版本安裝Microsoft.VisualStudio.CodeAnalysis.Sdk.dll到GAC。

應該然後能夠運行代碼分析作爲MSBuild構建的一部分,並使其正常工作。

+0

謝謝!包括這些程序集和規則使它適用於我。 – 2010-06-28 17:09:06

+1

應該爲StanDir設置什麼值? – 2012-10-15 15:14:20

+4

如果它適用於.NET 4.5以及VS 2012中構建的項目,您能分享一步一步的指導嗎? – 2013-10-03 14:52:42

0

另一種選擇可能被調用的FxCop可執行文件作爲生成任務(從msbuildtasks),將結果保存爲可在大多數的CI工具(如Hudson和CC.NET)被解析的XML文件

相關問題