1

TFS CI ビルドの出力をデフォルト以外のディレクトリの場所に送信するのに問題があります。大規模な .net プロジェクトに統合された 2 つのデータベース プロジェクトがあります。すべてがローカル PC で期待どおりにビルドされ、実行されます。ファイルは、データベース プロジェクトの sql/Debug または Release フォルダーの下の期待する場所に配置されます。私たちの TFS ビルド サーバーでは、プロジェクトはすべてを適切にビルドおよび生成しますが、すべてのデータベース プロジェクト出力ファイル (.SQL、.schema など) を TFS 出力ディレクトリのルートにダンプします。それを引き起こすと思われるプロジェクトがいくつかあるため、かなり面倒です。

現時点では、データベース プロジェクトのみに関心があります。これらのファイルが出力されるプロジェクトのデプロイまたはビルド定義 (または私が考えていなかった他の場所) のいずれかで指定する方法はありますか?

ありがとう

4

1 に答える 1

0

これを行う簡単な方法は、コンパイル プロセスの最後に実行される 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 という名前の新しいフォルダーが表示されます。

于 2012-04-16T17:32:08.643 に答える