我正在努力使用本地TFS为DocFX项目建立一个连续的部署过程。
here中描述了该过程,但是示例演练是针对VSTS的,并且我具有本地TFS(2013版)。基本思想是在每次签入时构建和部署文档网站。该过程使用的DocFx Build Tasks扩展名确实支持本地TFS ...我只是看不到如何使其工作!
我有一个包含单个C#项目的VS解决方案,该项目的Nuget引用了docfx.console版本2.38.1(最新)。当我在本地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门户中似乎也看不到任何选项来上传扩展(尽管更高版本似乎具有此功能)。
我该怎么办?
答案 0 :(得分: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