VS2010 MSBuild Target仅在重建时运行

时间:2013-03-26 07:58:03

标签: c++ visual-studio-2010 msbuild

我正在尝试构建一个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 个答案:

答案 0 :(得分:2)

我认为您在项目属性中使用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属性以包含您的任务。

另请注意,如果您的项目代码不需要重新编译(即没有更改cpp / h文件),PreBuild事件和此msbuild任务将无法运行