3

Cakeをビルド ツールとして使用しようとしていますが、powershell スクリプトで問題が発生しています。

スクリプトはnuget.exe環境変数パスで検索しようとしています。存在しない場合は、ダウンロードします。

問題は、msbuild.exe常に返されることでありnuget.exe、存在しない場合、スクリプトは失敗します。msbuild.exe

$existingPaths = $Env:Path -Split ';' | Where-Object { (![string]::IsNullOrEmpty($_)) -and (Test-Path $_) }

$NUGET_EXE_IN_PATH = Get-ChildItem -Path $existingPaths -Filter "nuget.exe" | Select -First 1

このスクリプトが存在する場合でもexe、このスクリプトを使用して検索しようとしても、msbuild.exe常にリストに返されます。

4

1 に答える 1

3

nuget.exeの可用性については、別のおそらくより効果的なチェックを使用します。

if (!(Get-Command nuget.exe -ErrorAction 0)) {
    # nuget.exe is not found, download ...
}

Enrico Campidoglio が提案したように、 を追加でき-CommandType Applicationます。理論的には、さらに効率的であるはずです。(私の)実際には、これは必ずしもそうではありません。

于 2017-01-04T13:49:45.160 に答える