2010-08-23 4 views
3

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

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 от автономного аудита Workbench, я получаю следующее сообщение об ошибке:

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

я храню большинство опций сканирования по умолчанию, за исключением изменений «Is это веб-приложение J2EE 'to' No '(я также попытался оставить это «да», но это тоже не сработало.

Поиск любой информации об ошибках создавал еще один question на переполнение стека, но проект настройка кажется совершенно различной nt из моего проекта 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) 

ответ

4

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

  1. Открыть Visual Studio x86 с поддержкой командной строки
  2. Изменение в каталог KindleExport.sln в
  3. Run: sourceanalyzer -b kindleexport Devenv KindleExport.sln/REBUILD
  4. Run: sourceanalyzer -b kindleexport -scan -f KindleExport.fpr
Смежные вопросы