我用谷歌搜索了很多试图找到解决方案,但似乎我错过了一些东西。
大多数文章告诉我应该修改构建文件 ( TfsBuild.proj
)。但我无法在任何地方找到该文件。谷歌搜索更多告诉我它已被 TFS2010 中的新构建模型取代?
SHFB的官方文档只是说:
修改你的构建文件。此示例使用每日构建来生成文档:
它没有提到什么文件以及如何。
有人可以对我如何配置我们的 TFS 构建服务器以也使用 Sandcastle Helpfile Builder 生成文档有所帮助吗?
我用谷歌搜索了很多试图找到解决方案,但似乎我错过了一些东西。
大多数文章告诉我应该修改构建文件 ( TfsBuild.proj
)。但我无法在任何地方找到该文件。谷歌搜索更多告诉我它已被 TFS2010 中的新构建模型取代?
SHFB的官方文档只是说:
修改你的构建文件。此示例使用每日构建来生成文档:
它没有提到什么文件以及如何。
有人可以对我如何配置我们的 TFS 构建服务器以也使用 Sandcastle Helpfile Builder 生成文档有所帮助吗?
最简单的方法是在构建配置中包含 SHFB 项目文件。SHFB 项目文件与 Visual Studio 中的任何项目文件一样工作。
你是对的。Team Build 2010 基于 Workflow Foundation,为了实现这一点,您需要创建自定义构建过程模板。
即使核心项目已被弃用,您也可以在此处找到所需的内容:http: //tfs2010extendedbuild.codeplex.com/
可以在此处找到有关如何自定义构建过程模板的信息: http ://rabcg.codeplex.com/
如果您喜欢书籍,这太棒了: http ://www.amazon.com/Inside-Microsoft-Build-Engine-Foundation/dp/0735645248/ref=ntt_at_ep_dpt_1
起初,我希望你在谈论 TFS2010,否则这个答案超出了范围。
我们已经定制了我们的构建过程模板,并按以下顺序对 MSBuild 进行了额外调用:
参数如下所示:
为了让所有功能正常运行,我们添加了另一个名为 的参数,我们在构建定义中提供了.shfbproj 文件 ($/.../ .shfbproj)SandcastleProject
的源代码控制路径。就在这个序列爆发之前,我们使用 activity 将此路径转换为本地路径,它填充一个以本地条目命名的变量:ConvertWorkspaceItem
localSandcastleProject
我最近写了一篇关于它的博客文章:http ://www.22bugs.co/post/sandcastle-help-file-builder-tfs-build/ 。以下是所需的步骤:
从 [ https://github.com/EWSoftware/SHFB][shfb]获取最新版本并将其安装在您的构建服务器上。安装完成后可能需要重新启动。
通过添加以下内容来编辑您的 **.shfbproj* 文件:
<!-- Put this code under inside <Project><PropertyGroup>...</PropertyGroup></Project> -->
<OutDir Condition=" '$(OutDir)' == ''">.</OutDir>
<OutputPath>$(OutDir)\Help</OutputPath>
这将指示 TFS 将 SHFB 的输出复制到构建的放置文件夹。
如果在每次成功构建后您希望将输出自动部署到另一个位置(除了放置文件夹),您可以定义以下构建后任务:
if NOT "$(DeployDocsTo)" == "" (
powershell "\"$(DeployDocsTo)\" -split \";\" | foreach { Copy-Item \"$(OutputPath)\" \"$_\" -Force -Recurse }"
)
现在您可以定义 MSBuild 参数$(DeployDocsTo)
来指示 TFS 在哪里部署您的文档。例如将其设置为
/p:DeployDocsTo="\\app-server\c$\docs"
祝你好运。