web-dev-qa-db-ja.com

Visual Studio 2017 RCで.NET Coreプロジェクトをビルドした後に実行されるmsbuildタスクを追加します

Visual Studio 2017 RCの.NET Coreを使用したmsbuildにAfterBuild Targetのようなものはありますか?

次のスニペットを.csprojファイルに追加しようとしましたが、ビルド中に実行されません(動作するVS2015とは異なります)。

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

もう1つの興味深い発見:AfterBuildターゲットが削除された可能性があると思った-msbuild <project.csproj> /t:AfterBuildは、追加されたターゲットを呼び出していないようです。ターゲットの名前を「Test」に変更すると、msbuild <project.csproj> /t:Testそれはうまく動作します。


また、Visual Studio 2017 RCに同梱されているmsbuildバージョン(および.NET Coreビルドスクリプト)に関するドキュメントはありますか?

20
Fionn

別の方法は、ターゲットでAfterTargets属性を使用することです。何かのようなもの:

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

「AfterBuild」がこれ以上動作しない理由はわかりませんが、 これはMSBuildのメンテナーによる意識的な決定のようです (このgithubの問題を指摘してLivvenにh/t) 。 「AfterBuild」は、ビルドターゲットで使用される特別な名前です。 Microsoft.Common.CurrentVersion.targets の現在のバージョンにはまだあります:

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