複雑な Windows Workflow 内の移動

Visual Studio Ultimate の各種タスクでは、Windows ワークフロー ファイルを変更する必要があり、それらのファイルは複雑な構造になっていたり、要素が複雑に入れ子になっていることがあります。 たとえば、次の種類のファイル間を移動したり、変更するのは困難です。

  • 既定のテンプレート (DefaultTemplate.xaml) に基づく Team Foundation ビルドのカスタム テンプレート

  • 既定のテンプレート (LabDefaultTemplate.xaml) に基づく Visual Studio Lab Management のカスタム テンプレート

このようなファイルの操作方法を説明するトピックでは、短縮構文の Windows ワークフロー ファイルにおける特定の要素の場所について説明します。 ここでは、この構文を使用して作業する特定の要素を見つける方法について説明します。

このトピックの内容

  • 例: "プロジェクトで MSBuild を実行する"

  • ワークフロー デザイナーを使用してワークフロー要素を見つける

  • XML エディターを使用してワークフロー要素を見つける

例: "プロジェクトで MSBuild を実行する"

たとえば、DefaultTemplate.xaml のコピーを変更することでカスタム ビルド処理を作成し、ビルド処理が MSBuild を使用してコードをコンパイルする方法を変更できます。 この変更を行うには、Run MSBuild for Project 要素のプロパティを変更する必要があります。

その要素を変更するには、まず 14 個のコンテナー要素間を移動し、ワークフローの構造における場所を特定する必要があります。 たとえば、このタスクについて説明するトピックでは、次の方法で構造が明らかにされています。

  1. シーケンス (Sequence) >

  2. エージェントで実行 (AgentScope) >

  3. 変更セットと作業項目のコンパイル、テスト、および関連付けを試す (TryCatch [Try]) >

  4. シーケンス (Sequence) >

  5. 変更セットと作業項目のコンパイル、テスト、および関連付けを行う (Parallel) >

  6. コンパイルとテストの試行 TryCatch [Try] >

  7. コンパイルとテスト Sequence >

  8. BuildSettings.PlatformConfigurations の構成ごと ForEach [Body] >

  9. 構成のコンパイルおよびテスト Sequence >

  10. BuildSettings.HasProjectsToBuild かどうか If [Then] >

  11. BuildSettings.ProjectsToBuild のプロジェクトごと ForEach [Body] >

  12. プロジェクトのコンパイルを試す TryCatch [Try] >

  13. プロジェクトのコンパイル Sequence >

  14. プロジェクトで MSBuild を実行する MSBuild

この構文は、場所を特定する必要がある要素が存在する、入れ子になった構造を示しています。 各要素は、その要素が含まれる要素の後に続きます。 たとえば、Run MSBuild for Project 要素は Compile the Project 要素に含まれており、この要素は Try to Compile the Project 要素の Try ブロックに含まれています。

ワークフロー デザイナーを使用してワークフロー要素を見つける

ワークフロー デザイナーを使用する場合は、次の側面を考慮する必要があります。

  • メリット: ワークフローを中断するスキーマ エラーがあるかどうか心配する必要がない。

  • メリット: コードを編集するよりも視覚的なモデルの操作を好む場合は、この方法の方が行いやすい。

  • デメリット: タスクによっては、デザイナーを使用すると、テキスト ベースの エディターよりも時間がかかることがある。

  • デメリット: ワークフロー デザイナーを使用すると、XML エディターを使用して編集した場合よりもワークフロー ファイルが大きくなる。

ワークフロー デザイナーで Windows ワークフロー ファイルを開くには、ソース管理エクスプローラーを開き、.xaml ファイルが存在するフォルダーを見つけてダブルクリックします。

ワークフロー デザイナーを使用して Run MSBuild for Project 要素を見つけるには、前の例のトップ レベルから注目し始めます。

  1. シーケンス (Sequence) >

  2. エージェントで実行 (AgentScope) >

  3. 変更セットと作業項目のコンパイル、テスト、および関連付けを試す (TryCatch [Try]) >

  4. シーケンス (Sequence) >

  5. ...

ワークフロー デザイナーで、Process 要素のビューが完全に折りたたまれた状態になっていることを確認します。 ワークフロー デザイナー ウィンドウの一番上で、[プロセス] をクリックし、[すべて折りたたみ] をクリックします。 ウィンドウは、現時点では、次のビューのようになります。

既定のテンプレートが完全に折りたたまれたトップレベル

必要な要素を探すには、Run on Agent 要素で次のいずれかの手順を実行します。

ワークフロー要素に移動する 2 つの方法

[Double-click to view] (ダブルクリックして表示) をダブルクリックすると、結果は次のビューのようになります。

分離での [エージェントで実行] アクティビティ

このビューでは、作業中の要素の内部に簡単に注意を集中できます。 ただし、広いコンテキストが見えなくなります。

代わりに Expand (展開) アイコンをクリックすると、結果は次のビューのようになります。

コンテキストでの [エージェントで実行] アクティビティ

このビューでは、広いコンテキストが見えるため、場合によっては役立ちます。 ただし、構造のもっと深くに移動すると、ビューの複雑さや規模に圧倒される可能性があります。.

作業に最も適した方法をどちらでも使用してください。 リストの一番上から始めて、必要な要素に到達するまで各要素を順番に操作することで、パターンを繰り返します。

XML エディターを使用してワークフロー要素を見つける

XML エディターなどのテキスト ベースのエディターを使用する場合は、次の側面を考慮する必要があります。

  • メリット: 特定のタスクをすばやく効率的に完了できる。 たとえば、特定の XAML をすばやく見つけて置き換えたり、グローバルな変更をすばやく行うことができます。

  • メリット: コードの操作に慣れている場合は、この方法の方が良いことがあります。

  • デメリット: ワークフローを中断するスキーマ エラーが生じるリスクがあります。

XML エディターを使用してワークフロー要素を見つけるには

  1. ソース管理エクスプローラーで、ワークフローが存在するフォルダーを開きます。

  2. ウィンドウの最上部の近くで、[ローカル パス] の横に表示されたリンクをクリックします。

    Windows エクスプローラーが開き、フォルダーの内容が表示されます。

    注意

    ソース管理エクスプローラーの上部にある [ローカル パス] ラベルの横に [マップされていません] リンクが表示された場合、リンクをクリックしてサーバー ディレクトリをローカル ワークスペースの適切なディレクトリにマップします。

  3. Windows エクスプローラーで、Shift キーを押しながら、ワークフローが存在する .xaml ファイルを右クリックします。 Shift キーを離し、[パスとしてコピー] をクリックします。

  4. Visual Studio 2010 で、[ファイル] メニューを開いて [開く] をクリックし、[ファイル] をクリックします。

  5. [ファイルを開く] ダイアログ ボックスで、[ファイル名] ボックスにカーソルを置いたまま、Ctrl キーを押しながら V キーを押してパスを貼り付けます。

  6. [開く] ボタンの横のアイコンをクリックし、[ファイルを開くアプリケーションの選択] をクリックします。

  7. [ファイルを開くアプリケーションの選択] ダイアログ ボックスで、[XML (Text) Editor] (XML (テキスト) エディター)をクリックします。

    ヒント

    常に XML (テキスト) エディターを使用して Windows ワークフロー ファイルなどの .xaml ファイルを編集する場合は、[規定値として設定] をクリックします。

    [OK] をクリックします。

    ワークフローの内容が XML (テキスト) エディター ウィンドウに表示されます。

  8. XML (テキスト) エディターを使用して要素を見つけ (たとえば、Ctrl キーを押しながら F キーを押します)、必要な変更を加えます。

    重要

    ワークフロー スキーマの規則に違反する変更がないようにしてください。 そうしないと、ワークフローでエラーが発生したり、正しく機能しないことがあります。

その他のリソース

詳細については、Microsoft Web サイトの以下のトピックを参照してください。

参照

概念

ワークスペースの作成とチーム プロジェクトの操作

その他の技術情報

カスタム ビルド プロセス テンプレートの作成と使用