Fortify выдает ошибку при сканировании проекта Visual Studio

Я пытаюсь запустить Fortify в проекте Visual Studio 2008. Проект успешно строится сам по себе. Когда я пытаюсь проанализировать проект с помощью Fortify с помощью встроенных элементов управления Visual Studio, проект успешно строится, но выдается сообщение об ошибке. Вот вывод из консоли Fortify:

Fortify SCA...
Running: "-show-runtime-properties" 
Running: "-b" "ProjectName" "-clean" 
Error setting VCProject Path. Abort VC project related scan
Scan Failed Could not load file or assembly 'Microsoft.VisualStudio.VCProjectEngine, Version=8.0.0.0, Culture=neutral, PublicKeyToken=<string here>' or one of its dependencies. The system cannot find the file specified. 
   at FortifyBase.Scanner.CPPScanUtil.ResetVCProjectExecutableDirectories()
   at FortifyCommon.Scanner.BuildListeners.VSBuildDone(vsBuildScope scope, vsBuildAction action)
Scan Failed: 
Could not load file or assembly 'Microsoft.VisualStudio.VCProjectEngine, Version=8.0.0.0, Culture=neutral, PublicKeyToken=<string here>' or one of its dependencies. The system cannot find the file specified.

Когда я запускаю Fortify из автономной рабочей среды аудита, я получаю следующее сообщение об ошибке:

SCA Commandline invocation failed
[error]: Build ID "ProjectName" doesn't exist.

Я сохраняю большинство параметров сканирования по умолчанию, за исключением изменения «Это веб-приложение J2EE» на «Нет» (я также пытался оставить это значение «да», но это тоже не сработало.

Поиск любой информации в сообщениях об ошибках привел только к другому вопросу о переполнении стека, но настройка проекта сильно отличается от моего проекта Visual Studio. В любом случае, я также пытался запустить сканирование из командной строки с аргументами, предоставленными Visual Studio, но получаю то же сообщение об ошибке.

В документации Fortify упоминается, что идентификатор сборки используется для отслеживания того, какие файлы скомпилированы и связаны как часть сборки, а затем для сканирования этих файлов, и что обычно это имя проекта. Я попробовал несколько разных строк в качестве идентификатора сборки, но ничего не работает.

Кто-нибудь знает, где я ошибаюсь? Заранее спасибо.

Обновление: проблема возникает на этапе перевода анализа, из-за которого идентификатор сборки вообще не создается. Вот лог из лога sourceanalyzer:

[2010-08-23 21:20:53 INFO]
Fortify Source Code Analyzer 5.1.0.0061
[2010-08-23 21:20:53 INFO]
Args:
["-b", "ProjectName", "-machine-output", "-vsversion", "8.0", "C:\\Program Files (x86)\\Microsoft Visual Studio 9.0\\Common7\\IDE\\devenv.exe", "ProjectName.sln", "/rebuild", "DEBUG"]
[2010-08-23 21:20:53 INFO]
VM Args:
"-XX:SoftRefLRUPolicyMSPerMB=100 -Xss1M -Xmx600M -Xms16M"
[2010-08-23 21:21:04 INFO 1102]
Compiler execution failed (exit code: 1).
[2010-08-23 21:21:04 WARNING]
exit(1)

person Sameer    schedule 23.08.2010    source источник


Ответы (1)


Хорошо, я думаю, что это известная проблема с переводом C/C++ в VS2010. Обходной путь, который я нашел:

  1. Откройте командную строку Visual Studio x86.
  2. Перейдите в каталог KindleExport.sln.
  3. Выполнить: sourceanalyzer -b kindleexport devenv KindleExport.sln /REBUILD
  4. Выполнить: sourceanalyzer -b kindleexport -scan -f KindleExport.fpr
person Douglas Held    schedule 13.10.2010