2009-05-20 6 views
2

最近、私はから我々のチームビルドプロジェクトファイルを変更した:ビルドは成功しましたが、バイナリは見つかりません。どうして?

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

にこれは、我々はソリューションファイルに含まれていない多くのプロジェクトを持っているので、必要があった、と私たちの目的のために

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

プロジェクトを追加するだけでは実現できません。私たちは、それらをすべて一度に構築できるようにしたいと考えています。そこで、すべてのプロジェクトを再帰的に構築する方法を見つけました。

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

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

誰かが私の理解を助けることができますか?私はおそらく、プロジェクトファイルには存在しないソリューションファイルに含まれている情報と関係があると感じていますが、わかりません。

答えて

4

私はSolutionToBuildアイテムは空で何も構築されていないと思います。あなたは確認することができます

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

次に、そのステートメントのログを見てください。

どのような場合でもアプローチを修正したい場合があります。自分でMSBuildファイル(BuildAll.proj)を作成する方がよいでしょう。そのファイルでは、MSBuild taskを使用してすべてのプロジェクトをビルドします。次に、そのファイルをSolutionToBuildに設定します。これは、プロジェクトが構築されているときに、より柔軟な柔軟性を提供します。これらのプロジェクトまたはそのすべてのビルドの前後にステップを追加できます。

サイード・イブラヒムHashimi

のMy Book:アドバイスInside the Microsoft Build Engine : Using MSBuild and Team Foundation Build

+0

感謝。それは、実際には何も建設されていないということでした。 偶然、私は昨日職場であなたの本を読んで始めました!彼らは会社の図書館に新しいコピーを持っていました。これまでのところ、私が疑問に思っていたすべてのことを私に伝えていますが、参考になるリソースはありませんでした。 – JimDaniel

+0

それはかなり面白いです、私はあなたが本をどう思っているか教えてください。 –

0

TFSBuildログを調べましたか。 TFS 2008をお持ちの場合、ログにはTFS 2005にはなかったたくさんの細かい詳細があります。

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

関連する問題