2012-04-19 38 views
1

我一直在扩展我的msbuild项目文件和tfs 2010。我想实现的是自动为我的源代码生成文档后建立。我搜索了网页,发现文件Microsoft.TeamFoundation.Build.targets为桌面或团队构建定义了很多可自定义的目标。其中之一是GenerateDocumentation - 我想要使用的目标。我遇到的问题是,尽管我导入了这个文件,重载的目标不会被msbuild调用。我vcxproj-文件的标题如下所示:msbuild与tfs 2010和importet无法正常工作Microsoft.TeamFoundation.Build.targets

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

在此之后我包括团队构建目标文件,声明

<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\TeamBuild\Microsoft.TeamFoundation.Build.targets"/>

在这个项目文件的最后我试图超出一些目标,如TeamFoundation目标文件中所建议的:

<Target Name="GenerateDocumentation"> 
    <Message Text="GenerateDocumentation invoked" Importance="high"/> 
</Target> 

<Target Name="BeforeBuild"> 
    <Message Text="BeforeBuild invoked" Importance="high" /> 
</Target> 

<Target Name="AfterBuild"> 
    <Message Text="AfterBuild invoked" Importance="high" /> 
</Target> 

但是excep t AfterBuild - 既不需要为本地构建调用GenerateDocumentation也不要调用BeforeBuild目标,也不要使用构建服务器构建构建。我错过了什么吗? DefaultTarget="Build"是否正确?我试图将其更改为DefaultTarget="DesktopBuild",但之后调用msbuild导致了各种错误(MSB4018)。在项目文件中也会导入目标文件$(VCTargetsPath)\Microsoft.Cpp.targets。删除此导入时,会调用GenerateDocumentation目标,但不会调用其他目标(包括我也需要的ResourceCompile)。我能以某种方式使用他们两个吗?

在此先感谢...

回答

0

什么有关添加这个在您的构建任务的结尾......

<CallTarget Targets="GenerateDocumentation"></CallTarget> 
    </Target> 
+0

唔...听起来前途。谢谢 – AquilaRapax 2012-06-12 10:46:26