【发布时间】:2012-04-19 11:24:47
【问题描述】:
我一直在扩展我的 msbuild 项目文件和 tfs 2010。我想要实现的是在构建后自动为我的源代码生成文档。我在网上搜索并发现文件 Microsoft.TeamFoundation.Build.targets 为桌面或团队构建定义了许多可定制的目标。其中之一是我想使用的GenerateDocumentation-Target。我遇到的问题是,尽管我导入了这个文件,但 msbuild 并没有调用重载的目标。我的 vcxproj-File 的标题如下所示:
<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>
但除了AfterBuild-Target 之外,既不会调用GenerateDocumentation 也不会调用BeforeBuild 目标来进行本地构建,也不会调用构建服务器的构建。我错过了什么吗? DefaultTarget="Build" 正确吗?我尝试将其更改为DefaultTarget="DesktopBuild",但随后调用msbuild 导致出现各种错误(MSB4018)。在项目文件中,目标文件$(VCTargetsPath)\Microsoft.Cpp.targets 也被导入。删除此导入时,会调用 GenerateDocumentation 目标,但不会调用其他目标(包括我也需要的 ResourceCompile)。我可以同时使用它们吗?
提前谢谢...
【问题讨论】:
标签: visual-studio tfs msbuild tfsbuild targets