1

我坚持扩展我的 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之外,本地构建和构建服务器的构建都不会调用GenerateDocumentationnor目标。BeforeBuild我错过了什么吗?是DefaultTarget="Build"正确的吗?我试图将其更改为DefaultTarget="DesktopBuild"但随后调用msbuild导致各种错误(MSB4018)。在项目文件中,目标文件$(VCTargetsPath)\Microsoft.Cpp.targets也被导入。删除此导入时,GenerateDocumentation会调用目标,但不会调用其他目标(包括ResourceCompile我也需要的)。我可以以某种方式使用它们吗?

提前致谢...

4

1 回答 1

0

在构建任务结束时添加这个怎么样......

    <CallTarget Targets="GenerateDocumentation"></CallTarget>
  </Target>   
于 2012-04-30T11:35:43.047 回答