为什么我的 MSBuild 自定义任务不起作用?

Why does my MSBuild custom task not work?

按照 this 教程,我正在尝试 运行 构建过程中的自定义任务。我有以下任务:

namespace MyTasks
    {
        public class HelloWorld : Task
        {
            public override bool Execute()
            {   
                Log.LogMessage(Microsoft.Build.Framework.MessageImportance.High, "Hello World.");
                return true;
            }
        }
    }

我已经通过以下方式将其包含在另一个项目中,包括另一条消息:

  <UsingTask AssemblyFile="C:\Path\To\MyTasks.dll" TaskName="MyTasks.HelloWorld"/>
  <Target Name="MyTarget">
    <Message Text="I want to run a custom task." Importance="High"/>
    <HelloWorld/>
  </Target>

但是当我构建这个项目时,我在构建输出中看不到这两条消息中的任何一条。我已经尝试了 <HelloWorld/><MyTasks.HelloWorld/>,并将任务名称属性设置为 HelloWorld。 在 Visual Studio 我设置了两个

Tools -> Options -> Projects and Solutions -> MSBuild project build output verbosity

Tools -> Options -> Projects and Solutions -> MSBuild project build log file verbosity

Normal

如何让它发挥作用?

问题是我忘记了 Target 元素上的 BeforeTargets 属性。这是更新后的目标元素:

  <Target Name="MyTarget" BeforeTargets="Build">
    <Message Text="I want to run a custom task." Importance="High"/>
    <HelloWorld/>
  </Target>