5

TFS 2013 Update 2 ビルドサーバーがあります。プロジェクトをビルドするときは、いくつかのファイルをチェックアウトし、いくつか変更して、もう一度チェックインします。これはうまくいきます。唯一の問題は、誰かがこれらのファイルの 1 つをチェックアウトすると、ビルドサーバーはそれをエラーとして認識し、ビルドが部分的に成功することです。実際には単なる情報メッセージですが、ビルドではエラーとして認識されます。これらのメッセージを抑制するにはどうすればよいですか?

次の Powershell コマンドがあります。

Add-TfsPendingChange -Edit -Item $PathToFolderToCheckout -Recurse

コマンドは、TFS 2013 Power Tools からのものです。

次のことを試しましたが、うまくいきません。

  • -ErrorAction_ Igonore_SilentlyContinue
  • 追加-Out-Null
  • Catch を試して空にする

ファイルごとにスローされるメッセージは次のとおり です:ファイルへのパス:ワークスペースで編集用に開かれました;Ralph Jansen

ありがとう

4

4 に答える 4

1

nullに送信するには、標準出力ストリームにある必要があると思います。これを試して:

$Null = Add-TfsPendingChange -Edit -Item $PathToFolderToCheckout -Recurse *>&1 

*>&1 はすべての出力を標準出力にリダイレクトし、$null はこの目的のために予約された変数です。out-null にパイプするよりも効率的です。

別の方法として、エラーに対するアクション設定を設定することもできます。以前、コマンドレットが -ErrorAction 共通パラメーターを認識していないように見える場所を見てきました。

$ErrorActionPreference = 'SilentlyContinue'
Add-TfsPendingChange -Edit -Item $PathToFolderToCheckout -Recurse
$ErrorActionPreference = 'Continue'
于 2014-10-01T14:49:57.457 に答える
1

いくつかの努力の後、Tfs ビルド用に正常に取得できました。\o/

コマンドラインを終了する必要があります *>&1 | out-null

例えば:

Add-TfsPendingChange -Edit -Item $PathToFolderToCheckout -Recurse *>&1 | out-null

副作用として、エラーの原因となったすべてのメッセージが失われます。

于 2015-09-16T16:44:12.927 に答える
0

次のいずれかを試してください。

Add-TfsPendingChange -Edit -Item $PathToFolderToCheckout -Recurse -ErrorAction SilentlyContinue -wa 0 | Out-null

また

[void](Add-TfsPendingChange -Edit -Item $PathToFolderToCheckout -Recurse -ErrorAction SilentlyContinue -wa 0)

コマンドレットの結果を変数に代入することもできます (何もしないでください)。

$throwaway = Add-TfsPendingChange -Edit -Item $PathToFolderToCheckout -Recurse -ErrorAction SilentlyContinue -wa 0
于 2014-10-01T09:20:54.423 に答える
0

これを試して:

Add-TfsPendingChange -Edit -Item $PathToFolderToCheckout -Recurse 2>&1 >$null

2>&1引数はにリダイレクトさstderrstdout、引数>$nullstdoutnull にリダイレクトされるため、何も表示されません。

または、 に送信されるデータのみを非表示にする場合は、次のようstderrにリダイレクトします。

Add-TfsPendingChange -Edit -Item $PathToFolderToCheckout -Recurse 2>$null
于 2014-10-01T15:08:57.737 に答える