0

私の Visual Studio 2013 Release Management Client/Server のバージョンはリリース 4.0 です。ReleaseTfvcTemplate.12.xaml テンプレートを使用しています。AGENT ベースのリリース テンプレートを使用しているときに、リリース管理コンポーネント (デプロイヤー構成) からシステム変数にアクセスする方法はありますか? $applicationPath または $(applicationPath) または $(ApplicationPath) を渡そうとすると、NULL が返されます。

カスタム PowerShell 展開スクリプトを持つ RM でのコンポーネントの展開に関する私のステータスは次のとおりです。

  1. リリース ビルドを正常にキューに入れることができます
  2. ビルド出力は \servername\BuildDrop\ に正しくコピーされます
  3. ビルドの完了時にトリガーされるエージェント (VNEXT ではない) ベースの RM テンプレートがあります。
  4. ビルドが RM テンプレートを適切にトリガーしてビルドをリリースする
  5. この RM テンプレートには、CUSTOM PowerShell スクリプトを介して展開される 1 つのコンポーネントがあります。
  6. Powershell スクリプトは、その作業を実行するために builddrop の場所への完全な絶対パスを必要とします (powershell スクリプトが行うことは、この議論には関係ありません) 例: RM のコンポーネントの展開構成で、TFS ビルドを渡す必要があります。ハードコーディングせずに場所をドロップ
  7. MSDN のドキュメントに基づいて、 RM によってハイドレートされるシステム変数 $applicationPath がありますが、エージェント ベースのテンプレートではなく、VNEXT ベースのテンプレートを使用する場合のみです。
  8. エージェント ベースの RM テンプレートからのシステム変数へのアクセスに関連するここで受け入れられた StackOverflow の回答によると、MSDN のドキュメントではすべてが説明されていないようであり、コンポーネントの展開構成に行を設定できるはずです (以下を参照)。TFS システム変数をコンポーネントの Powershell Deployer に渡そうとしています
4

1 に答える 1

2

Graham がコメントで述べたように、ビルド出力はローカルにコピーされ、Powershell を実行するときの作業ディレクトリになります。

これを使用して、ビルドのドロップ場所にアクセスすることもできます: $(PackageLocation) http://incyclesoftware.zendesk.com/entries/24422737-Deployment-Metadata

Donovan Brown による最新の投稿を見つけました: http://donovanbrown.com/post/What-are-the-System-variables-for-PS-DSC-deployments-in-Release-Management.aspx

于 2015-02-23T18:53:07.273 に答える