Existe-t-il quelque chose comme la cible AfterBuild dans msbuild avec .NET Core dans Visual Studio 2017 RC?
J'ai essayé d'ajouter les éléments suivants coupés dans le fichier .csproj, mais il n'est pas exécuté lors d'une génération (contrairement à VS2015 où cela fonctionne).
<Target Name="AfterBuild">
<Message Importance="High" Text="This is a test" />
</Target>
Une autre découverte intéressante: comme je pensais que la cible AfterBuild aurait pu être supprimée - en exécutant msbuild <project.csproj> /t:AfterBuild
ne semble pas appeler la cible ajoutée. Si je renomme la cible en "Test", appelez-la avec msbuild <project.csproj> /t:Test
ça marche très bien.
De plus, existe-t-il de la documentation sur la version de msbuild (et éventuellement les scripts de build .NET Core) livrés avec Visual Studio 2017 RC?
Une alternative consiste à utiliser l'attribut AfterTargets sur la cible. Quelque chose comme:
<Target Name="TestTarget" AfterTargets="Build">
<Message Importance="High" Text="This is a test" />
</Target>
Je ne sais pas pourquoi "AfterBuild" ne fonctionnerait plus, mais cela semble être une décision consciente des responsables de MSBuild (h/t à Livven pour me signaler ce problème de github) . "AfterBuild" était un nom spécial utilisé par la cible Build. La version actuelle de Microsoft.Common.CurrentVersion.targets
l'a toujours:
<PropertyGroup>
<BuildDependsOn>
BeforeBuild;
CoreBuild;
AfterBuild
</BuildDependsOn>
</PropertyGroup>
<Target
Name="Build"
Condition=" '$(_InvalidConfigurationWarning)' != 'true' "
DependsOnTargets="$(BuildDependsOn)"
Returns="$(TargetPath)" />
<!--