2010-06-19 2 views
13

На Windows Server 2003 R2 с .NET 4 SDK, но без Visual Studio 2010, я пытался строить Визуальное решение Studio 2010 сКак запустить .NET анализ 4 кода на сервере сборки

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\[email protected] 
+0

Это работает для проекта C++, но не C# project – linquize

ответ

17

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

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

Затем я скопировал из Dev ПК, в папку FxCop на сервере сборки, следующее:

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

Выполните поиск для них на своем Dev ПК с установленной Visual Studio, чтобы найти их.

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

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

+0

Спасибо! Включение этих собраний и правил заставило его работать на меня. –

+1

Какое значение должно быть установлено для StanDir? –

+4

, если это сработало для кого-то с .NET 4.5 и проектов, построенных в VS 2012, можете ли вы поэтапно пошаговые инструкции? –

0

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

2

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

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

Правила могут быть проверены live in Visual Studio и на этапе сборки, в generated HTML+javascript report.

 Смежные вопросы

  • Нет связанных вопросов^_^