2

TFS2010 の Windows ワークフローを使用して、ビルド プロセスの最後に実行する PS スクリプトをセットアップしました。http://www.ewaldhofman.nl/post/2010/11/09/Part-14-Execute-a-PowerShell-script.aspxの例に従ってT を実行すると、ビルド定義の Process セクションに正しく表示されます。ただし、引数をスクリプトのディレクトリパスに設定しても、結果は常に...

「.\DataServiceCpy.ps1」という用語は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前のスペルを確認するか、パスが含まれている場合は、パスが正しいことを確認してから再試行してください。

パスの 10 のバリエーションを試しました。ビルド サーバーで PS スクリプトを実行できるようにしました。コマンド プロンプトからスクリプトを正常に実行できます。

私が見落としている明らかなことはありますか?

どうもありがとう...

4

2 に答える 2

4

TFS 2013 (他の人にはわからない) には、ツールボックスの "Team Foundation Build Activities" に配置される RunScript アクティビティが存在します。カスタムスクリプトを実行したいときは、そのアクティビティを好みます。

これを使用するには、最初に引数を作成する必要があります (スクリプト パス用に少なくとも 1 つ)。引数を作成するには、この投稿に従ってください。

スクリプト パスの引数を作成したら、[引数] タブの [メタデータ] 引数に移動する必要があります。作成した引数を追加し、"Editor" フィールドに次のステートメントを追加します: Microsoft.TeamFoundation.Build.Controls.ServerFileBrowserEditor, Microsoft.TeamFoundation.Build.Controls

その後、RunScript アクティビティの [プロパティ] に移動し、FilePath に次のステートメントを挿入します: AdvancedBuildSettings.GetValue(Of String)(" PUT_HERE_YOUR_ARGUMENT_NAME ", String.Empty)

スクリプトパス用に作成した引数の正確な名前を最後のステートメントに挿入する必要があることに注意してください。

完了したら:

  • 変更をチェックインします。
  • ビルド定義の [プロセス] タブに移動し、[ビルド プロセス テンプレート] セクションの [更新] ボタンを押します。

これらの手順により、ソース管理を参照し、パスを指定せずに必要なスクリプトを選択できます。

新しいアクティビティを挿入する必要がない場合は、古い引数を変更するだけで済みます。

于 2015-05-18T18:39:34.680 に答える
1

同じブログを使用して同じ方法で実行したところ、うまくいきました。唯一の違いは、Powershell スクリプトがソリューション/プロジェクト フォルダーにあり、ビルド定義で相対パスを使用して PowerShell スクリプトを指定していることです。相対パスを使用すると、ConvertWorkspaceItem アクティビティでうまく機能します。ConverntWorkspaceItem アクティビティの後に取得したファイル パスをチェック (出力) して、それが正しいパスかどうかを確認することができます。

それが役立つことを願っています。

于 2013-02-26T00:44:42.443 に答える