为什么在任何.csproj文件中找不到<target name =“Build”>?</target>

时间:2012-11-09 21:43:35

标签: c# visual-studio msbuild

好奇 - 每当我看到.csproj的xml时,它都以DefaultTargets="Build"开头,因此我认为应该存在<Target Name="Build">;但是,我从未在任何.csproj文件中找到此默认目标。

VS是否在编译之前注入此目标,或者默认情况下msbuild是否构建了它。内部会发生什么?

3 个答案:

答案 0 :(得分:12)

在文件底部附近你会看到这个; <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />导入标准目标,“Build”就是其中之一。导入基于项目文件中可用的其他数据以动态方式生成“构建”目标。

答案 1 :(得分:5)

csproj通常有这个:

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

根据MSDN也导入了定义目标的Microsoft.Common.targets。

答案 2 :(得分:1)

有一个或多个&lt;导入...&gt;在项目文件中的某个地方导入应该具有该目标的其他文件...