3

Visual Studio 2008 プロジェクトで Fortify を実行しようとしています。プロジェクトは、単独で正常にビルドされます。Visual Studio 統合コントロールを使用して Fortify でプロジェクトを分析しようとすると、プロジェクトは正常にビルドされますが、エラー メッセージがスローされます。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.

スタンドアロンの Audit Workbench から Fortify を実行すると、次のエラー メッセージが表示されます。

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

「これは J2EE Web アプリケーションですか」を「いいえ」に変更する以外は、ほとんどのデフォルトのスキャン オプションをそのまま使用します (これも「はい」のままにしてみましたが、どちらもうまくいきませんでした。

エラー メッセージに関する情報を検索しても、スタック オーバーフローに関する別の質問が表示されるだけでしたが、プロジェクトのセットアップは私の Visual Studio プロジェクトとはかなり異なっているようです。とにかく、Visual Studio が提供する引数を使用してコマンド ラインからスキャンを実行しようとしましたが、同じエラー メッセージが表示されます。

Fortify のドキュメントには、ビルド ID はビルドの一部としてコンパイルおよびリンクされたファイルを追跡するために使用され、後でそれらのファイルをスキャンするために使用され、通常はプロジェクト名であることが記載されています。ビルド ID としていくつかの異なる文字列を試しましたが、何も機能していないようです。

誰が私がどこで間違っているのか知っていますか? 前もって感謝します。

更新: この問題は、ビルド ID がまったく作成されないため、分析の変換フェーズで発生します。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

1 に答える 1

4

OK、これは VS2010 での C/C++ 変換に関する既知の問題だと思います。私が見つけた回避策は次のとおりです。

  1. Visual Studio x86 コマンド プロンプトを開く
  2. KindleExport.sln のディレクトリに移動します。
  3. 実行: sourceanalyzer -b kindleexport devenv KindleExport.sln /REBUILD
  4. 実行: sourceanalyzer -b kindleexport -scan -f KindleExport.fpr
于 2010-10-13T22:45:26.720 に答える