Добавьте задачу msbuild, которая запускается после создания проекта .NET Core в Visual Studio 2017 RC

Есть ли что-то вроде цели AfterBuild в msbuild с .NET Core в Visual Studio 2017 RC?

Я попытался добавить следующие файлы в файл .csproj, но он не был исключен во время сборки (вопреки VS2015, где он работает).

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

Еще одно интересное открытие: поскольку я думал, что цель AfterBuild могла быть удалена - запуск msbuild <project.csproj> /t:AfterBuild, похоже, не вызывает добавленную цель. Если я переименую цель в "Тестировать" вызов с помощью msbuild <project.csproj> /t:Test, она будет работать нормально.


Кроме того, есть ли какая-либо документация по версии msbuild (и, возможно, сценарии сборки .NET Core), поставляемая с Visual Studio 2017 RC?

Ответ 1

Альтернативой является использование атрибута AfterTargets в Target. Что-то вроде:

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

Я не уверен, почему "AfterBuild" больше не работает, но это представляется сознательным решением со стороны разработчиков MSBuild (h/t к Livven, указывая мне на этот вопрос github). "AfterBuild" было специальным именем, которое использовалось целью сборки. В текущей версии Microsoft.Common.CurrentVersion.targets все еще есть:

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