2

最近、チーム ビルド プロジェクト ファイルを次のように変更しました。

<SolutionToBuild Include="$(SolutionRoot)/OurSolution.sln">

<SolutionToBuild Include="$(SolutionRoot)/**/*.csproj">

ソリューション ファイルに含まれていない多くのプロジェクトがあり、プロジェクトを追加するだけでは実行できないため、これが必要でした。それらすべてを一度に構築できるようにしたいと考えています。そこで、すべてのプロジェクトを再帰的にビルドする方法を見つけました。

これは正常に機能し、ビルドはエラーなしで実行できます。唯一の問題は、ドロップ フォルダーにコピーされたバイナリがないことです。実際、どこにも見つかりません!ソリューションからビルドすると、バイナリはビルド エージェントの Binaries フォルダーにコピーされます。しかし、個々のプロジェクトからビルドする場合は何もありません。

私の質問は、彼らはどこにいるのですか? なぜチーム ビルドは、すべてが正常にビルドされたと報告しますが、コピーするものは何もありません。それらは、プロジェクト ディレクトリの下の通常の bin/Release フォルダーにもありません。

誰かが私を理解するのを手伝ってもらえますか? プロジェクトファイルには存在しないソリューションファイルに含まれる情報と関係があると思いますが、わかりません。

4

2 に答える 2

4

SolutionToBuild項目が空で、何もビルドされていないと思います。で確認できます

<Message Text="SolutionToBuild: $(SolutionToBuild)" Importance="high"/>

次に、そのステートメントのログを調べます。

いずれにせよ、アプローチを修正する必要があるかもしれません。BuildAll.proj などの MSBuild ファイルを自分で作成することをお勧めします。そのファイルで、MSBuild タスクを使用してすべてのプロジェクトをビルドします。次に、そのファイルを SolutionToBuild に設定します。これにより、プロジェクトのビルド時に柔軟性が向上します。それらのプロジェクトまたはそれらすべてのビルドの前後にステップを追加できます。

サイード・イブラヒム・ハシミ

My Book: Microsoft Build Engine の内部 : MSBuild と Team Foundation Build の使用

于 2009-05-22T05:01:59.360 に答える
0

TFSBuild ログを確認しましたか。TFS 2008 を使用している場合、ログには、TFS 2005 にはない多くの詳細な情報が含まれています。

もう 1 つの考えは、FileMon を起動して、TFSBuild サービスによって作成されたファイルを監視することです。

于 2009-05-20T23:24:49.360 に答える