Fio*_*onn 22 c# msbuild csproj visual-studio-2017
在Visual Studio 2017 RC中是否有像msbuild中的AfterBuild Target和.NET Core?
我尝试将以下剪切添加到.csproj文件中,但在构建期间不会执行此操作(与VS2015相反,它可以正常工作).
<Target Name="AfterBuild">
<Message Importance="High" Text="This is a test" />
</Target>
Run Code Online (Sandbox Code Playgroud)
另一个有趣的发现:我认为AfterBuild目标可能已被删除 - 运行msbuild <project.csproj> /t:AfterBuild似乎并未调用添加的目标.如果我将目标重命名为"测试"一个调用它就msbuild <project.csproj> /t:Test可以正常工作.
另外,是否有关于Visual Studio 2017 RC附带的msbuild版本(以及可能的.NET Core构建脚本)的任何文档?
Mik*_*ray 35
另一种方法是在Target上使用AfterTargets属性.就像是:
<Target Name="TestTarget" AfterTargets="Build">
<Message Importance="High" Text="This is a test" />
</Target>
Run Code Online (Sandbox Code Playgroud)
我不确定为什么"AfterBuild"不再起作用,但这似乎是MSBuild的维护者有意识地决定的(h/t给Livven指的是这个github问题)."AfterBuild"是Build目标使用的特殊名称.目前的版本Microsoft.Common.CurrentVersion.targets还有:
<PropertyGroup>
<BuildDependsOn>
BeforeBuild;
CoreBuild;
AfterBuild
</BuildDependsOn>
</PropertyGroup>
<Target
Name="Build"
Condition=" '$(_InvalidConfigurationWarning)' != 'true' "
DependsOnTargets="$(BuildDependsOn)"
Returns="$(TargetPath)" />
<!--
Run Code Online (Sandbox Code Playgroud)