我正在尝试构建一个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">
只要我使用重建,这一切都可以正常工作,但是当我刚刚点击构建时,它就永远不会运行。
无论是点击构建还是重建,我都需要做什么才能运行?
答案 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任务将无法运行。