Как запустить анализ кода .NET 4 на сервере сборки - PullRequest
13 голосов
/ 19 июня 2010

В 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.

Я установил FxCop из SDK и без удачи указал переменную FxCopDirустановленное расположение FxCopCmd.exe, а также установка этой записи реестра в это расположение:

HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\10.0\Setup\EDev@FxCopDir

Ответы [ 3 ]

17 голосов
/ 27 июня 2010

У меня была такая же проблема на моем сервере MSBuild, и я исправил ее:

  • Установка Windows SDK 7.1
  • Настройка ключей реестра FxCopDir и StanDir в HKEY_LOCAL_MACHINE \ Software \ Microsoft \ VisualStudio \ 10.0 \ Setup \ EDev (в Win32).

Затем я скопировалс компьютера разработчика в папку FxCop на сервере сборки:

  • Папка Наборы правил (цель установки по умолчанию здесь: C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Инструменты команды \ Инструменты статического анализа \ FxCop)
  • Microsoft.VisualStudio.CodeAnalysis.Sdk.dll
  • Microsoft.VisualStudio.CodeAnalysis.Phoenix.dll
  • phx.dll

Выполните поиск их на компьютере разработчика с помощью Visual Studioустановлен, чтобы найти их.

Затем используйте .NET 4.0 версию gacutil.exe для установки Microsoft.VisualStudio.CodeAnalysis.Sdk.dll в GAC.

Вы должны , затем сможете запустить анализ кода как часть сборки MSBuild и заставить его работать правильно.

2 голосов
/ 19 октября 2010

Альтернативой FxCop было бы использование инструмента NDepend, который позволяет писать Правила кода для запросов C # LINQ (а именно CQLinq) . Отказ от ответственности: я являюсь одним из разработчиков инструмента

По умолчанию предлагается более 200 правил кода .Настроить существующие правила или создать свои собственные правила легко благодаря хорошо известному синтаксису C # LINQ.

Правила можно проверить вживую в Visual Studio и в процессе сборкивремя в сгенерированном отчете HTML + javascript .

0 голосов
/ 22 июня 2010

Другим вариантом может быть вызов исполняемого файла FxCop в качестве задачи сборки (из msbuildtasks ), сохранение результата в виде файла XML, который можно проанализировать в большинстве инструментов CI (таких как Hudson и CC.NET).

...