2012-11-09 1 views
9

ちょっと好奇心旺盛です.xmlの.csprojが表示されるたびに、それはDefaultTargets="Build"で始まり、従って私は<Target Name="Build">が存在すると仮定します。しかし、私は決して.csprojファイルのこのデフォルトターゲットを見つけたことはありません。<target name = "Build">が.csprojファイルで見つからないのはなぜですか?

VSはコンパイルする前にこのターゲットを挿入しますか、またはmsbuildはデフォルトでそれをビルドしますか?内部的にはどうなりますか?

+0

rene

答えて

12

ファイルの末尾付近にこれが表示されます。 <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />は標準ターゲットをインポートし、 "ビルド"はこれらのうちの1つです。インポートでは、プロジェクトファイルで使用可能な他のデータに基づいて動的に「ビルド」ターゲットが生成されます。

1

一つ以上の<インポート...>その目標を持っている必要があり、他のファイル(複数可)をインポートし、プロジェクトファイル内のどこかに...

-2

だから、問題は何ありますか?それはあなたのVSバージョン、プロジェクトファイルのバージョン、プロジェクトの状況(バインドされたTFSかどうか)、プロジェクトの設定によって異なります。私は、あなたが何も教えてくれないので、これらのことに興味がないとお勧めします。論理設計とその実装方法が不思議に思うようにしてください。これらの構造を超えて多くのハードコードがあります。

乾杯

+0

でインポートされたビルドファイルを参照してください。私の提案を感謝しますが、私の質問に答えません。 –

+0

はいわかっています。あなたが言ったように、私の経験で私にあなたのためにそれを書いてもらうという提案でした。 ;) – Rikki

5

csprojは、典型的には、これを持っている:

<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> 

MSDNによればまた、そのターゲットが定義されているMicrosoft.Common.targetsをインポートしています。

関連する問題