使用批处理文件执行 Fortify 命令

Executing Fortify commands with batch file

我正在尝试 运行 通过批处理文件强化命令。通常,当 运行 进行强化扫描时,我会通过命令行使用这三个不同的命令:

sourceanalyzer -b buildId-clean

sourceanalyzer -b buildId devenv "mysolution.sln" /Rebuild Debug 

sourceanalyzer -b buildId -scan -f "mysolution.fpr" -format fpr

现在当 运行 执行第二个命令时,您需要 devenv 来完成翻译。调用它的最佳方法是什么?在批处理文件中 运行 命令之前,我尝试 运行 VsDevCmd.bat,但结果是:

ERROR: Cannot determine the location of the VS Common Tools folder.

这甚至在我称为强化批处理文件的同一目录中有 .bat 文件。

我也打电话给 devenv.com 但得到这个错误:

[error]: The HPE Security Fortify add-in for Visual Studio did not execute; ther efore, no files were translated. Ensure that the HPE Security Fortify add-in is installed. If you are running Visual Studio 2005 SP1, you must also install t he hotfix indicated by KB934517.

这是批处理文件命令:

set SOURCEANALYZER=sourceanalyzer
set BUILDID="buildId"
set DEVCOMMAND="devenv.com"
set SOLUTIONFILE="mysolution.sln"
set ARGS="/Rebuild Debug"

%SOURCEANALYZER% -b %BUILDID% %DEVCOMMAND% %MYSOLUTION% %ARGS%

我的VsDevCmd.batdevenv.com来自VS2015目录。

据我了解,当通过命令行 运行 时,devenv 参数有三个选项:

  1. 使用 devenv.exe 文件的完全限定路径,通常位于 C:\Program Files (x86)\Mircosoft Visual Studio x.0\Common7\IDE\devenv.exe
  2. 从常规命令行 window,在 运行 之前调用 vsvars32.bat sourceanalyzer 命令来设置一些局部变量,例如 devenv,以正确的路径。此文件位于 ‪C:\Program Files (x86)\Microsoft Visual Studio x.0\Common7\Tools\vsvars32.bat.
  3. 运行 sourceanalyzer 命令通过 Visual Studio 开发人员命令提示符。这与打开传统命令行 window 并执行 vsvars32.bat.
  4. 相同

如果您执行选项 2 或 3,您将能够简单地在 sourceanalyzer 命令中使用变量 devenv,而选项 1 将需要命令中的硬路径,但可以如果您需要指定要使用的 Visual Studio 版本,这将很有用。