MSBuild不';不显示输入目标消息

MSBuild不';不显示输入目标消息,msbuild,Msbuild,我有以下虚拟构建脚本文件: 常见目标 <?xml version="1.0" encoding="utf-8"?> <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0"> <Target Name="TargetA"> <Message Text="This is TargetA"/> &

我有以下虚拟构建脚本文件:

常见目标

<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">   

    <Target Name="TargetA">
        <Message Text="This is TargetA"/>
    </Target>
    <Target Name="TargetB">
        <Message Text="This is TargetB"/>
    </Target>

</Project>

EntryPoint.proj

<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">

    <Import Project="Common.targets"/>

    <Target Name="EntryPointTarget" DependsOnTargets="TargetA">
        <!--But why this message is not shown during build?-->
        <Message Text="This is Entry Point Target"/>
    </Target>
</Project>

为什么在构建期间不显示EntryPointTarget消息


如果未在命令行上指定目标,且未指定DefaultTarget,则msbuild将执行它看到的第一个目标,在本例中为TargetA。如果您切换TargetA和TargetB,您将看到TargetB首先被执行。如果删除导入并使EntryPointTarget不依赖于任何其他目标,则将执行EntryPointTarget。这些显然不是正确的修复方法,因此:

  • 显式指定目标调用msbuild EntryPoint.proj/t:EntryPointTarget
  • 通过将
    DefaultTargets=EntryPointTarget
    属性添加到
    Project
    标记,使其决定执行什么,然后您可以调用
    msbuild EntryPoint.proj
    ,它将执行EntryPoint