VS2010 MSBuild Target работает только при перестроении

В настоящее время я пытаюсь создать библиотеку C ++, и мне хотелось бы, чтобы каждый раз, когда нажималась кнопка сборки, я получал все перемещаемые файлы, которые нужно переместить в определенный каталог.

Что у меня сейчас есть, так это

<Target Name="CopyToIncludeFiles">
<Message Text="Copying All '*.h' and '*.hpp' to the include directory" Importance="high">
</Message>
<Copy SourceFiles="@(ClInclude)" DestinationFolder="..\HelperLib\x86\include\">
</Copy>
</Target>

И я включаю цель в лайки DefaultTargets так

<Project ToolsVersion="4.0" DefaultTargets="Build;CopyToIncludeFiles;" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

Это все работает нормально, пока я использую пересборку, но это никогда не срабатывает, когда я просто нажимаю сборку.

Что мне нужно сделать, чтобы запустить этот прогон, если я нажму на сборку или перестройку?

1

Решение

Я думаю, что задачу, которую вы решаете, легче сделать с PreBuild Event в свойствах проекта, так как это просто команда командной строки.

Если вы все еще хотите msbuild — вы можете использовать BeforeTargets как это:

<Target Name="CopyToIncludeFiles" BeforeTargets="Rebuild;Build">
<Message Text="Copying All '*.h' and '*.hpp' to the include directory" Importance="high" />
<Copy SourceFiles="@(ClInclude)" DestinationFolder="..\HelperLib\x86\include\"  />
</Target>

Вы не должны менять проект DefaultTargets свойство, чтобы включить вашу задачу.

Также обратите внимание, что и событие PreBuild, и эта задача msbuild не побежит если ваш код проекта не требует перекомпиляции (т.е. файлы cpp / h не изменены).

2

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

Других решений пока нет …

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