1

我目前正在尝试构建一个 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">

只要我使用重建,这一切都可以正常工作,但是当我刚刚点击构建时它永远不会运行。

无论我点击构建还是重建,我都需要做什么才能运行?

4

1 回答 1

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 任务都不会运行。

于 2013-03-26T14:10:28.933 回答