代码之家  ›  专栏  ›  技术社区  ›  Xavier Poinas

PowerShell脚本中的msbuild-如何知道生成是否成功?

  •  30
  • Xavier Poinas  · 技术社区  · 14 年前

    我正在用PowerShell编写生成脚本。脚本执行各种操作,例如从SVN、备份等获取最新的源代码,并使用msbuild生成解决方案:

    cmd /c C:\WINDOWS\Microsoft.NET\Framework\v3.5\msbuild.exe "C:\Dev\Path\MyProjct.sln" /p:Configuration=Release 
    

    在这个指令之后,如果编译成功,我只想执行脚本的其余部分。我怎么检查这个?

    该项目是一个Web项目,因此检查输出并不容易,但我想一些变量可能包含编译结果。另外,由于我使用cmd/c调用msbuild,我是否能够访问这些变量?

    2 回复  |  直到 14 年前
        1
  •  38
  •   Keith Hill    14 年前

    检查的值 $LastExitCode 在调用msbuild之后。如果为0,则msbuild成功,否则失败。

    btw不需要使用cmd/c。直接调用msbuild.exe即可。我们一直在PowerShell构建脚本中这样做。

        2
  •  10
  •   Jay Bazuzi Buck Hodges    14 年前

    要仅检查成功/失败,请使用自动变量 $? .

    PS> help about_Automatic_Variables
    
    
        $?
           Contains the execution status of the last operation. It contains
        TRUE if the last operation succeeded and FALSE if it failed.
    

    例如:

    msbuild
    if (! $?) { throw "msbuild failed" }