0

連続ビルド プロセスを実装しようとしています。ドロップ フォルダーのシーケンスで XAML を見ると、カスタム テンプレートを指定したい

つまり、すべてのファイルを 1 つのフォルダーにドロップしたくないので、ルート フォルダー内に Folder1、Folder2 のようなフォルダー構造を作成する必要があります。

ファイル拡張子に基づいて、ファイルを特定のフォルダーにドロップする必要があります

これを達成する方法の任意のポイント、

4

2 に答える 2

2

TFS ビルド テンプレートの変更に満足している場合は、Torbjörn の回答が間違いなく最適です。ビルド テンプレートをカスタマイズすると、出力を完全に制御できます。ただし、特に WF とチーム ビルドの内部に慣れていない場合は、やり過ぎになる可能性があります。別の方法は、ビルドの一部として実行される msbuild を作成することです。

これを行うには、「DropTidy.proj」というファイルを作成し、次のようになるようにファイルを編集します。

<Project DefaultTargets="CopySQLReleaseFiles" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">

  <Target Name="CopySQLReleaseFiles">

    <ItemGroup>
      <SqlBuildOutput Include="$(OutDir)\*.sql" />
    </ItemGroup>

    <Copy SourceFiles="@(SqlBuildOutput)" DestinationFolder="$(OutDir)\SQL" />

  </Target>

</Project>

上記の例では、拡張子が「sql」のすべてのファイルを「SQL」というフォルダにコピーします。$(OutDir) は、ビルド エージェントのビルド ワークスペースの "Binaries" フォルダーに関連するチーム ビルドで使用される作業フォルダーです。

ファイルを TFS にチェックインし、チーム ビルド定義の [ビルドするアイテム] リストに追加します。ビルド内の他のソリューションの後に実行されるように、リストの最後の「ソリューション」であることを確認してください。また、proj ファイルをチェックインしたフォルダーがビルド ワークスペースの一部であることを確認してください。

ビルドを実行すると、ドロップした場所に SQL という名前の新しいフォルダーが表示されます。

于 2013-01-25T13:21:05.983 に答える
0

デフォルトのビルドプロセステンプレート(またはの派生物)を使用している場合、DropFolderにコピーするためのアクションはのFinallyブロック内にありTry Compile, Test and Associate Changesets and Work Itemsます。その単一のCopy to Drop Locationアクションをカスタムシーケンスに置き換える必要があります。はFindMatchingFiles、検索基準に基づいてファイルのセットを選択するために使用できます。

単一のアイテムをコピーしようとすると、1つの問題が発生します。TFSビルドアクティビティには、そのためのアクションはありません。のみCopyDirectory。を設定することも、そのようなタスクをサポートするためのアクションを取得する場所からInvokeProcess追加することもできます。Community TFS Build ExtensionsRobocopyPowershell

基本的なDefaultTemplateを使用している場合は、そのコピーに変更を加えて、ビルドに使用することを強くお勧めします。

于 2013-01-25T08:29:33.987 に答える