添加在 Visual Studio 2017 RC 中构建 .NET Core 项目后运行的 msbuild 任务
Add a msbuild task that runs after building a .NET Core project in Visual Studio 2017 RC
在 Visual Studio 2017 RC 中是否有类似 .NET Core 的 msbuild 中的 AfterBuild Target?
我试图将以下片段添加到 .csproj 文件中,但它在构建过程中没有执行(与 VS2015 相反,它确实有效)。
<Target Name="AfterBuild">
<Message Importance="High" Text="This is a test" />
</Target>
另一个有趣的发现:我认为 AfterBuild 目标可能已被删除 - 运行 msbuild <project.csproj> /t:AfterBuild
似乎没有调用添加的目标。如果我将目标重命名为 "Test" 并使用 msbuild <project.csproj> /t:Test
调用它,它就可以正常工作。
此外,是否有任何关于 Visual Studio 2017 RC 附带的 msbuild 版本(可能还有 .NET Core 构建脚本)的文档?
另一种方法是在目标上使用 AfterTargets 属性。类似于:
<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 (h/t to Livven on pointing me to this github issue). "AfterBuild" was a special name that was used by the Build target. The current version of Microsoft.Common.CurrentVersion.targets
仍然有效:
<PropertyGroup>
<BuildDependsOn>
BeforeBuild;
CoreBuild;
AfterBuild
</BuildDependsOn>
</PropertyGroup>
<Target
Name="Build"
Condition=" '$(_InvalidConfigurationWarning)' != 'true' "
DependsOnTargets="$(BuildDependsOn)"
Returns="$(TargetPath)" />
<!--
在 Visual Studio 2017 RC 中是否有类似 .NET Core 的 msbuild 中的 AfterBuild Target?
我试图将以下片段添加到 .csproj 文件中,但它在构建过程中没有执行(与 VS2015 相反,它确实有效)。
<Target Name="AfterBuild">
<Message Importance="High" Text="This is a test" />
</Target>
另一个有趣的发现:我认为 AfterBuild 目标可能已被删除 - 运行 msbuild <project.csproj> /t:AfterBuild
似乎没有调用添加的目标。如果我将目标重命名为 "Test" 并使用 msbuild <project.csproj> /t:Test
调用它,它就可以正常工作。
此外,是否有任何关于 Visual Studio 2017 RC 附带的 msbuild 版本(可能还有 .NET Core 构建脚本)的文档?
另一种方法是在目标上使用 AfterTargets 属性。类似于:
<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 (h/t to Livven on pointing me to this github issue). "AfterBuild" was a special name that was used by the Build target. The current version of Microsoft.Common.CurrentVersion.targets
仍然有效:
<PropertyGroup>
<BuildDependsOn>
BeforeBuild;
CoreBuild;
AfterBuild
</BuildDependsOn>
</PropertyGroup>
<Target
Name="Build"
Condition=" '$(_InvalidConfigurationWarning)' != 'true' "
DependsOnTargets="$(BuildDependsOn)"
Returns="$(TargetPath)" />
<!--