【问题标题】:Continuous deployment of DocFx documentation using on-premises TFS使用本地 TFS 持续部署 DocFx 文档
【发布时间】:2018-08-31 16:28:22
【问题描述】:

我正在努力使用本地 TFS 为 DocFX 项目设置持续部署过程。

该过程在here 中进行了描述,但是示例演练适用于 VSTS,并且我有本地 TFS(2013 版)。基本思想是在每次签入时构建和部署文档网站。该进程使用的 DocFx Build Tasks 扩展似乎确实支持本地 TFS ......我只是看不出如何让它工作!

我有一个包含单个 C# 项目的 VS 解决方案,该项目具有对 docfx.console 版本 2.38.1(最新)的 Nuget 引用。当我在本地 PC 上构建 VS 时,_sites 文件夹会正确填充 HTML。但是,在构建服务器上构建时,构建失败并显示“警告 MSB4078:MSBuild 不支持项目文件“DocFx.csproj”,无法构建。”

然后我发现了DocFx Build Tasks 扩展,看起来它可以解决我的问题。

我已经下载了 .VSIX,但不知道在哪里以及如何安装它。

如果我直接在构建服务器(或我的本地 PC)上运行它,则会出现错误“此扩展无法安装在任何当前安装的产品上。”出现。这是来自安装日志:

31/08/2018 14:31:54 - Supported Products : 
31/08/2018 14:31:54 - Microsoft.VisualStudio.Services
31/08/2018 14:31:54 - Version : 
31/08/2018 14:31:54 - 
31/08/2018 14:31:54 - References : 
31/08/2018 14:31:54 - Signature Details...
31/08/2018 14:31:54 - Extension is not signed.
31/08/2018 14:31:54 - 
31/08/2018 14:31:54 - Searching for applicable products...
31/08/2018 14:31:54 - Found installed product - Microsoft Visual Studio 2012 Shell (Integrated)
31/08/2018 14:31:54 - Found installed product - Global Location
31/08/2018 14:31:54 - Found installed product - ssms
31/08/2018 14:31:54 - Found installed product - Visual Studio Community 2017
31/08/2018 14:31:54 - Found installed product - Visual Studio Build Tools 2017 (2)
31/08/2018 14:31:54 - VSIXInstaller.NoApplicableSKUsException: This extension is not installable on any currently installed products.

我在 TFS 2013 门户中似乎也没有上传扩展的选项(尽管后来的版本似乎有这个)。

我该怎么办?

【问题讨论】:

  • 你在构建服务器上安装了哪个版本的VS?和你本地电脑的版本一样吗?您可能会使用不受支持的 MSbuild 版本。
  • 在构建服务器上有 Visual Studio Community 2017 和 Visual Studio Build Tools 2017。在我的电脑上有 Visual Studio Professional 2017。

标签: tfsbuild docfx


【解决方案1】:

基于错误消息“'warning MSB4078: The project file "DocFx.csproj" is not supported by MSBuild and cannot be built.'”似乎您使用的 MSBuild 版本不正确来构建项目。参考类似话题:Build succeeded with projects Ctrl + Shift + B that MSBuild can't build

对于 TFS 2013 + VS 2017 组合,您可能需要将 ToolPath 更改为完整的 MSBuild 路径:"C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin"。参考本帖:TFS 2013 and Visual Studio 2017 Syntax

此外,您还可以尝试在构建定义中指定MSBuild arguments。如:/tv:15.0 /p:VisualStudioVersion=15.0 用 VS2017 构建。

TFS 2013 不支持 DocFx Build Tasks 扩展。要使用该扩展,您需要迁移到 vNext 构建(TFS 2015 和更高版本)。要安装扩展,请参阅Install extensions for Team Foundation Server (TFS)

建议您迁移到现代版本的 TFS(vNext 构建系统)。见Why You Should Switch to Build VNext

【讨论】:

  • 好的,非常感谢,我会在星期一试试这个。一件事 - 如果我升级了 TFS,DocFx Build Tasks 扩展应该安装在构建服务器上还是 TFS 服务器上(即维护存储库的位置)?
  • @Laurence 您只需按照本文中的步骤在您的 TFS 服务器上安装扩展程序即可:Install extensions for Team Foundation Server (TFS),总之您可以通过此链接在目录导航到扩展程序管理页面http://server:8080/tfs/_gallery/manage --> 上传扩展(*.VSIX 文件) --> 右键单击​​并选择安装...。扩展安装到特定集合后,您可以创建构建定义并从 Utility 中添加Create DocFx Documentation 任务跨度>
  • 我测试了答案中的建议:因为我已经在构建服务器上安装了 Visual Studio 2017 的构建工具,所以我发现正在使用的 MSBUILD 版本是 15.7.180(最新版本):请参阅here 获取 Powershell 脚本以获取 MSBUILD 版本。此外,TFS 2013 不支持安装所描述的扩展。所以....看来唯一的选择是升级到 TFS 2015 或更高版本。
猜你喜欢
  • 2020-03-20
  • 1970-01-01
  • 2019-04-07
  • 2012-10-31
  • 2016-06-16
  • 1970-01-01
  • 2013-05-09
  • 1970-01-01
  • 2014-04-08
相关资源
最近更新 更多