添加在 Visual Studio 2017 RC 中构建 .NET Core 项目后运行的 msbuild 任务

Add a msbuild task that runs after building a .NET Core project in Visual Studio 2017 RC

在 Visual Studio 2017 RC 中是否有类似 .NET Core 的 msbuild 中的 AfterBuild Target?

我试图将以下片段添加到 .csproj 文件中,但它在构建过程中没有执行(与 VS2015 相反,它确实有效)。

<Target Name="AfterBuild">
  <Message Importance="High" Text="This is a test" />
</Target>

另一个有趣的发现:我认为 AfterBuild 目标可能已被删除 - 运行 msbuild <project.csproj> /t:AfterBuild 似乎没有调用添加的目标。如果我将目标重命名为 "Test" 并使用 msbuild <project.csproj> /t:Test 调用它,它就可以正常工作。


此外,是否有任何关于 Visual Studio 2017 RC 附带的 msbuild 版本(可能还有 .NET Core 构建脚本)的文档?

另一种方法是在目标上使用 AfterTargets 属性。类似于:

<Target Name="TestTarget" AfterTargets="Build">
  <Message Importance="High" Text="This is a test" />
</Target>

我不确定为什么 "AfterBuild" 不再有效,但 this appears to be a conscious decision by the maintainers of MSBuild (h/t to Livven on pointing me to this github issue). "AfterBuild" was a special name that was used by the Build target. The current version of Microsoft.Common.CurrentVersion.targets 仍然有效:

  <PropertyGroup>
    <BuildDependsOn>
      BeforeBuild;
      CoreBuild;
      AfterBuild
    </BuildDependsOn>
  </PropertyGroup>
  <Target
      Name="Build"
      Condition=" '$(_InvalidConfigurationWarning)' != 'true' "
      DependsOnTargets="$(BuildDependsOn)"
      Returns="$(TargetPath)" />
  <!--