2017-01-04 29 views
12

Есть ли что-то вроде объекта AfterBuild в msbuild с .NET Core в Visual Studio 2017 RC?Добавьте задачу 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 Основные сценарии сборка) поставляется с Visual Studio 2017 RC?

+1

Кажется, работать с чем-то вроде , спасибо. – Fionn

+0

@mikez вы можете опубликовать это как ответ для вопрошающего. –

ответ

21

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

<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 (ч/т до Livven на указывая мне на этот GitHub вопрос). «AfterBuild» было специальным именем, которое использовалось целью сборки. Текущая версия Microsoft.Common.CurrentVersion.targets до сих пор это:

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

Альтернативный способ просто спас меня. –

+4

Действительно, старые задачи 'BeforeBuild' и' AfterBuild' больше не работают для проектов .NET Core, которые, кажется, по дизайну. См. Https://github.com/dotnet/cli/issues/5844 и https://github.com/Microsoft/MSBuild/issues/1680 – Livven

+0

@ Livven Это объясняет это. –