MSBuild AfterBuild Step

Я добавил следующий код в VisualC ++ 2010 .vcxproj файл только внутри первого <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 Project build output / log verbosity» значение «Normal». Я ничего не вижу в журнале и файлы не копируются.

Есть ли что-то еще, что я должен сделать, чтобы сделать эту работу?

0

Решение

Проект может иметь только одну цель 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 ==========
2

Другие решения


По вопросам рекламы [email protected]