MSBuild AfterBuild Step

MSBuild AfterBuild Step

本文关键字:Step AfterBuild MSBuild      更新时间:2023-10-16

我已将以下代码添加到VisualC++2010 .vcxproj文件中的第一个<project>标记中:

<PropertyGroup>
  <PilotStationDirectory>....PilotStationPilotStationApp$(Configuration)</PilotStationDirectory>
</PropertyGroup>
<ItemGroup>
  <MySourceFiles Include="$(TargetName).dll;$(TargetName).lib;$(TargetName).pdb" />
</ItemGroup>
<Target Name="AfterBuild">
  <MakeDir Directories="$(PilotStationDirectory)" />
  <Copy SourceFiles="@(MySourceFiles)" DestinationFolder="$(PilotStationDirectory)" />
  <Message Text="###I AM HERE###" />
</Target>

我已将"MSBuild项目生成输出/日志详细信息"设置为"正常"。我在日志中没有看到任何内容,也没有复制任何文件。

为了让这件事成功,我还需要做些什么吗?

一个项目只能有一个AfterBuild目标。放置是至关重要的,请确保它出现在任何<Import>指令之后,这样您就可以确保它是最后一个指令,并且默认指令被覆盖。提高<Message>的优先级,这样你就可以随时看到它。

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   ...
   <Import Project="$(VCTargetsPath)Microsoft.Cpp.props" />
   ...
   <Target Name="AfterBuild">
     <Message Importance="High" Text="It works"/>
   </Target>
</Project>

输出:

1>------ Build started: Project: ConsoleApplication317, Configuration: Debug Win32 ------
1>  ConsoleApplication317.vcxproj -> C:projects2ConsoleApplication317DebugConsoleApplication317.exe
1>  It works
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========