我已经在第一个.vcxproj
标记内的VisualC ++ 2010 <project>
文件中添加了以下代码:
<PropertyGroup>
<PilotStationDirectory>\..\..\PilotStation\PilotStationApp\$(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:\projects2\ConsoleApplication317\Debug\ConsoleApplication317.exe
1> It works
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
关于c++ - MSBuild AfterBuild步骤,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26760052/