2

我的 Powershell 脚本必须从 VS 命令提示符运行,我想通过检查 msbuild.exe 是否在路径中来验证这一点。我设法使用 where.exe 做到了:

where.exe msbuild.exe > $null
if ($LASTEXITCODE -ne 0)
{
    throw "BuildAll must be run from ""Developer Command Prompt for VS2012"" shortcut."
}

但是,这感觉不像是“Powershell 方式”——是否有一种 Powershell 原生方式来做到这一点?

4

1 回答 1

1

如果msbuild.exe必须与脚本位于同一文件夹中,请尝试此操作

   if ( TEST-PATH (JOIN-PATH (Split-Path -parent $MyInvocation.MyCommand.Definition) "msbuild.exe " ))
{
  ...
}
else
{
  ...
}

如果您想检查是否 build.exe可用作命令(来自 $env:path 的任何可用路径),您可以执行以下操作:

if ([bool](Get-Command "msbuild.exe" -ea silentlycontinue)) 
{ 
  ...
}
于 2013-05-22T08:35:26.000 回答