Domanda

Sto cercando di eseguire Fortify su un progetto di Visual Studio 2008. Il progetto si basa con successo da solo. Quando provo ad analizzare il progetto con Fortify utilizzando i controlli di Visual Studio integrato, il progetto si basa con successo, ma un messaggio di errore viene generato. Ecco l'output di console 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.

Quando eseguo Fortify dal standalone Audit Workbench, ottengo il seguente messaggio di errore:

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

Continuo la maggior parte del Opzioni di scansione predefinite, tranne che cambia 'Si tratta di un'applicazione web J2EE' a 'No' (ho anche provato a lasciare questo al 'sì', ma che non ha funzionato neanche.

Ricerca di qualsiasi informazione sui messaggi di errore prodotto solo un'altra domanda su Stack Overflow, ma la messa a punto del progetto sembra molto diverso dal mio progetto di Visual Studio. In ogni modo, ho anche provato a eseguire la scansione dalla riga di comando con gli argomenti forniti da Visual Studio, ma ottengo lo stesso messaggio di errore.

documentazione Fortify menziona che l'ID build è utilizzato per tenere traccia quali file vengono compilato e collegato, come parte di una generazione e successivamente per la scansione di quei file e che di solito è il nome del progetto. Ho provato un paio di corde diverse, come l'ID di creazione, ma nulla sembra funzionare.

Qualcuno ha idea di dove sto andando male? Grazie in anticipo.

Aggiorna : Il problema si verifica durante la fase di tradurre dell'analisi a causa della quale l'ID di creazione non si crea affatto. Ecco il registro dal registro 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)
È stato utile?

Soluzione

OK, credo che questo è un problema noto con il C / C ++ traduzione su VS2010. La soluzione che ho trovato è:

  1. Aprire un Visual Studio 86 Prompt dei comandi
  2. Passare alla directory del KindleExport.sln
  3. Esegui: sourceanalyzer -b kindleexport devenv KindleExport.sln / rebuild
  4. Esegui: sourceanalyzer -b kindleexport -scan -f KindleExport.fpr
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top