Team Foundation Server 2017 Update 1

Last Update: 2017/7/25

若要查看最新更新,请访问中文版发行说明

发布日期:2017 年 3 月 7 日

我们非常高兴地宣布正式推出 Team Foundation Server 2017 Update 1。 此新版本包括我们最新的功能创新和改进。 有关要求信息,请参阅 Team Foundation Server 的要求和兼容性页。

下载:Team Foundation Server 2017 Update 1

若要了解有关其他相关下载的详细信息,请参阅下载页。

TFS 2017 Update 1 中的新增功能


已知问题


新增功能

更多个性化体验

个性化的集合主页

利用此版本,可超轻松地访问最重要的项目。 重新设计的集合页(图 1)提供个性化体验,可以显示用户关心的项目、收藏夹、工作和拉取请求。 这样可以更好地开始一天的工作。 用户可以转到某个位置并迅速找到所有需执行和关心的项目。 有关详细信息,请参阅帐户中心页

(图 1)重新设计的集合页

项目可以获取标识

现可在一处了解项目概况。 利用新的项目页,可轻松查看和编辑项目说明、查看或添加成员,并检查最新活动。 新项目更易上手,还能利用 TFS 的所有内置 DevOps 功能。

版本控制改进

存储库管理权限更改

对于 Git 存储库,我们已将“管理”权限划分为若干更具体的权限。 以便更灵活地决定谁可以执行哪些操作。 例如,可以允许你帐户中的任何人创建新存储库,但禁止他们删除存储库或向存储库添加新用户。 新的权限如下:

  • 管理权限:添加/删除用户和权限。
  • 创建:创建新的存储库。
  • 删除:删除存储库。
  • 重命名:重命名存储库。
  • 编辑策略:配置分支策略。
  • 删除其他用户的锁定:删除其他用户设置的分支锁定。

这些权限可应用于项目中的所有存储库或单个存储库。

分支策略改进

在“策略”部分(图 2),所需策略和可选策略现在分为了几个部分。 这样可以确切地说明为完成 PR 需要哪些策略。 必需部分还总结了必需审阅者,且仅当所有必需审阅者批准后才能被标记为通过。

(图 2)策略部分

如果需要绕过策略(并具有所需权限),“完成”对话框(图 3)将展示全新的体验。 不符合要求的任何策略都会显示在警告消息中,并将显示新的显式选项来替代策略。 选中替代选项将启用“替代和完成”操作,此操作将完成 PR,替代任何失败的策略。

(图 3)“完成”对话框

支持在所需审阅者策略中进行文件排除

为特定文件路径指定所需审阅者时,现可使用“!”排除路径 为想要排除的路径添加前缀。 例如,可以使用此前缀从通常所需的签核中排除某个文档文件夹(图 4)。

(图 4)文件排除支持

导入储存库

客户现可从 GitHub、BitBucket、GitLab 或其他位置导入 Git 存储库。 可导入新的或现有的空存储库。 有关详细信息,请参阅 Import a Git repo(导入 Git 存储库)。

在创建存储库的过程中添加 gitignore

创建新的 Git 存储库时,现可添加 .gitignore 文件并与存储库关联。 执行提交操作时,gitignore 文件指定 Git 应忽略的文件。

可利用对话框从多个可用 .gitignore 模板中选择一个模板(图 5)。

(图 5)在创建存储库的过程中添加 .gitignore

挑拣和还原

我们添加了“挑拣”和“还原”这两项新功能,让用户更轻松地从 Web 门户移植或取消更改。

使用挑拣命令将拉取请求中的更改移植到多个分支。 典型用例:需要修补某个 bug,同时又需要在主线上修复此 bug。 创建拉取请求(其中包含修补程序分支的修复程序)后,可以轻松地为主分支挑拣相同的修复程序。 有关详细信息,请参阅 Copy changes with cherry-pick(利用挑拣复制更改)。

可以在已完成的 PR 上还原更改。 找到引入错误更改的 PR,单击“还原”,按步骤创建取消不必要更改的 PR。 有关详细信息,请参阅利用 Git 撤消更改

可配置的比较分支

现可将比较分支设置为默认分支以外的内容。 每个用户都将记住此设置。 从“分支”页创建的拉取请求和新分支以设置为比较分支的分支为基础。 有关详细信息,请参阅管理分支

查找文件或文件夹

可以利用 Team Services 项目中的__代码__中心在存储库中快速搜索文件或文件夹。 结果将列出当前文件夹中的项,然后是存储库中的文件和文件夹。

对于任何 Git 存储库,请转到路径控制框(图 6)并开始键入,以启动对正在查找的文件或文件夹的导航搜索体验。

(图 6)查找文件或文件夹

确认删除存储库

为防止意外删除存储库,现在必须键入想要删除的存储库的名称,以确认操作。

存储库收藏夹

现可收藏最常用的存储库。 在存储库选取器(图 7)中,会看到“所有存储库”选项卡和“收藏夹”选项卡。 单击星标,将存储库添加到收藏夹列表。

(图 7)存储库收藏夹

在提交历史记录中搜索文件或文件夹

类似于文件选项卡,用户现可搜索存储库中的文件或文件夹,并查看该文件或文件夹的提交历史记录。 对于任何 Git 存储库,请转到“历史记录”选项卡(图 8)上的路径控制框并开始键入,以启动对正在查找的文件或文件夹的历史记录搜索体验。

(图 8)提交历史记录

提交页改进

我们致力于让用户体验新式的高性能“提交详细信息”页和“提交历史记录”页。 能够以鸟瞰视图形式查找和处理与提交相关的重要信息。

以下是提交详细信息页示例(图 9):

(图 9)提交详细信息

以下是提交历史记录页(图 10):

(图 10)提交历史记录

在分支中搜索提交

现在可以通过单击提交详细信息页上的“在分支中搜索”按钮,在指定分支或标记中搜索提交(图 11)。

(图 11)提交搜索

可在窗口中选择标记和分支来进行查看,即使这些分支和标记不包含特定的提交(图 12)。

(图 12)提交搜索对话框

讨论控件工具栏

向拉取请求添加注释时,Markdown 是得力的工具,但它很难记住语法。 为了简化此操作,我们在讨论控件中添加了工具栏(图 13)。 这将插入适当的 Markdown 语法以添加常用格式。 利用新的工具栏控件,可添加标题、粗体、斜体、链接、代码和列表,还可通过工具栏输入 @ 和 # 提及等功能。 键盘快捷键提供有(Ctrl+B)粗体、斜体(Crrl+I)和创建链接(Ctrl+K)。

(图 13)讨论工具栏

PR 注释改进

为帮助用户更好识别 PR 中的新注释,我们在现有讨论线程中针对新答复进行了一些额外补充。 文件视图中的注释也将突出显示包含新注释的线程(图 14)。

(图 14)PR 注释改进

查看提交的 PR

现可在“提交详细信息”页上查看提交的所有关联拉取请求。 从下图(图 15)中,可以看到:

  • 在关联拉取请求下拉列表中,此提交有两个关联拉取请求。
  • 拉取请求 #2 将此提交传递到母版。
  • 拉取请求 #1 则将此提交传递到分支 4。

(图 15)提交中的 PR

关注拉取请求

现在可以关注拉取请求,通过电子邮件提醒知悉任何更改。 上下文菜单中提供“关注”选项(图 16)。

(图 16)关注拉取请求

重启拉取请求合并

针对已更新的目标分支,已添加另一个选项重新尝试合并拉取请求。 想要验证目标分支的最近更改没有产生冲突或中断 PR 生成时,可以使用“重启合并”选项。

拉取请求被拒绝时阻止完成

如果 PR 被一个或多个审阅者拒绝,设定了代码评审策略的分支会显示无法完成 PR。 许多用户期待这种行为,因此我们更改了默认行为。 对于需要原始行为的团队,“分支策略设置”页中设有新选项(图 17)。

(图 17)代码评审策略

拉取请求说明中的 Markdown

利用 Markdown 让拉取请求说明更生动。 拉取请求说明现已提供用户熟悉和喜爱的与拉取请求注释中相同的 Markdown 支持。

PR 讨论中的附件

现在可以向拉取请求注释添加附件(图 18)。 通过拖放或浏览添加附件。 对于图像,只需从剪贴板粘贴即可添加附件。 添加附件会自动更新注释,以包括对新附件的 Markdown 引用。

(图 18)PR 讨论中的附件

突出显示具有更新的 PR

现在查看拉取请求更新比以往更简单。 在 PR 列表视图(图 19)中,用于显示更改汇总的新的更新列,会显示上次查看 PR 以来有更改的 PR。

(图 19)PR 更新文件

查看有更改的 PR 时,将在概述中看到类似的摘要消息。 新的推送和注释线程会以蓝色突出显示(图 20)。 单击“查看代码更新”链接会导航到“文件”视图,其中显示了上次查看拉取请求以来新更改的差异。 此功能让用户可以轻松跟进 PR,了解作者为响应反馈做出的更改。

(图 20)PR 摘要

PR 合并策略的分支策略

我们添加了新的分支策略(图 21),让用户可以为每个分支定义拉取请求的合并策略。 以前,当 PR 完成时,需要选择合并或挤压。 如果启用,此策略将替代你的首选项,强制执行策略设定的要求。

(图 21)分支策略

公开合并冲突信息

如果拉取请求中存在发生冲突的任何文件,现在可以在概述中看到冲突的详细信息(图 22)。 其中会列出每个冲突文件,以及源和目标分支之间冲突类型的简短摘要。

(图 22)合并冲突

Markdown 预览按钮

在提交、推送或拉取请求中查看 Markdown 文件的差异时,现可轻松切换以查看生成的呈现视图。

工作项跟踪改进

改进了范围内标识字段的搜索体验

通过此版本,我们更新了范围内标识字段的标识选取器行为,这些字段配置为仅允许分配到特定用户组。 在更新后的体验中,选取器的 MRU 列表和搜索结果将仅返回所配置组的成员,而非显示集合中所有有效用户的结果。

生成改进

回退生成定义

可将生成定义回退到以前的版本。 可以在通过转到“历史记录”选项卡编辑生成定义时执行此操作。

在生成中禁用源的同步和签出

可以选择禁用对 GIT 自动进行源同步和签出。 这使得能够在任务或脚本中处理源操作,而不必依赖代理的内置行为。 设置了所有标准的源相关变量,如 Source.Version、Source.Branch 和 Build.SourcesDirectory。

Git 浅表克隆和 git-lf

生成代理现支持 Git 浅表克隆和 git-lf。 有关详细信息,请参阅生成定义存储库页

生成和发布定义的任务版本管理

让用户可以控制生成或发布中运行的任务的主版本。 此更改将可以减少因代理和任务版本自动更新而引起的意外错误。 现可在定义的“生成”选项卡或发布定义的“环境”选项卡上指定任务的主版本。

发布次要版本时(例如 1.2 到 1.3),会在生成中自动获取更改。 但如果发布新的主版本(例如 2.0),则生成始终锁定为版本 1.3,除非编辑定义并手动更改为新的主版本。 生成定义中的标志会提醒出现新的主版本。

包管理需要付款

若要继续使用包管理,需具有 Visual Studio Enterprise 订阅或有在应用商店购买的包管理许可证。 可深入了解授权包管理

打包改进

包管理中的发布视图

我们已向包管理添加了一个名为“发布视图”的新功能(图 23)。 发布视图表示已提升到发布视图中的源中包版本的子集。 通过创建发布视图并与包的使用者共享,可以控制他们所依赖的版本。 在需要频繁发布更新的包版本,但又不想宣布或支持每个已发布版本的持续集成方案中,这会特别有用。

查找 Web Access 快速入门或 learn about release views for package CI/CD(了解包 CI/CD 的发布视图)以开始。

(图 23)发布视图

包管理中的 npm

包管理源现支持用于 Node.js 和 JavaScript 开发的 npm 包。 此外,npm 源支持 npmjs.com 作为“带缓存的上游源”。 通过启用此选项,源将以透明方式从 npmjs.com 代理和缓存包(请参阅 Use packages from npmjs.com(使用 npmjs.com 中的包)),这意味着只需一次从 npmjs.com 获取特定 package@version,此后 TFS 服务器将直接处理对该包的请求。 如果从 npmjs.com 删除包,仍能从 TFS 获取此包的缓存版本。

若要开始,请查找“连接源”对话框中的新 npm 选项(图 24)。

(图 24)包管理中的 npm

跨平台改进

Xcode 生成任务 xcpretty 格式设置

现可使用 xcpretty 设置 xcode 生成输出的格式(图 25)。 还可以使用 xcodebuild 将 JUnit 测试结果发布到 Team Services。 以前,需使用 xctool 作为生成工具发布测试结果。 现在,若要启用 xcpretty,在 Xcode 任务的“高级”部分选中“使用 xcpretty”并取消选中“使用 xctool”。

(图 25)Xcpretty 格式设置

发布 Jenkins 测试和代码覆盖率结果

“Jenkins 队列作业”生成和发布任务现可从 Jenkins 作业或管道检索测试和代码覆盖率结果。 这需要在 Jenkins 服务器上安装 Jenkins 5.2.0 或更高版本的 TFS 插件,并配置后期生成操作“收集 TFS/Team Services 的结果”。 从 Jenkins 检索结果后,才能通过“发布测试结果”或“发布代码覆盖率”生成任务发布结果。

Xcode 8 在 Xcode 生成任务中对包进行签名和导出

Xcode 任务现支持通过 Xcode 8 自动签名生成项目(图 26)。 可以在生成服务器上手动安装证书和预配配置文件,也可以指定“文件内容”选项通过任务进行安装。

(图 26)Xcode 自动签名

从存档 (.xcarchive) 导出应用包 (IPA) 时,Xcode 8 要求指定导出选项 plist(图 27)。 如果使用 Xcode 8 或 Xcode 7,Xcode 任务现可自动标识导出方法。 通过 Xcode 任务可以指定导出方法或指定自定义 plist 文件。 如果使用低于 Xcode 7 的 Xcode 版本,任务将回退到使用旧工具 (xcrun) 创建应用包。

(图 27)Xcode 导出选项

测试改进

运行使用 Visual Studio 2017 生成的测试

利用 CI/CD 管道中的“部署测试代理”和“运行功能测试”任务(图 28),现可安装适用于 Visual Studio 2017 的测试代理并运行使用 Visual Studio 2017 生成的测试。

(图 28)运行测试

验证工作项的 bug

现在可通过重新运行发现 bug 的测试来验证 bug(图 29)。 可从 bug 工作项窗体上下文菜单调用“验证”选项在 Web 运行程序中启动相关测试用例。 使用 Web 运行程序执行验证,并直接在 Web 运行程序中更新 bug 工作项。

(图 29)验证工作项的 bug

测试步骤操作的 REST 客户端帮助程序

现可使用添加到 REST 客户端的帮助程序类,在测试用例工作项中创建、修改并删除测试步骤和测试步骤附件(请参阅 RestApi 示例)。

从 Web 运行程序更新现有 bug

除了从 Web 运行程序创建新 bug,现在还可以更新现有 bug(图 30)。 收集所有诊断数据后,重现步骤和现有会话中的可跟踪性链接将自动添加到现有 bug。

(图 30)更新现有 bug

Web 运行程序中的测试用例说明

测试用例说明字段经常用于捕获所需的先决条件,然后才启动测试用例。 借助此更新,现在可以通过使用“显示说明”选项(图 31)在 Web 运行程序中查看测试用例说明信息。

(图 31)测试用例说明

测试中心贡献点

在“测试计划”中心增添了新的贡献点(“ms.vss-test-web.test-plan-pivot-tabs”)(图 32),让开发人员可将扩展作为数据透视表选项卡写入,该选项卡显示在“测试”和“图表”选项卡的旁边。

(图 32)贡献点

删除测试项目

在此版本之前,删除选项仅限用于工作项。 借助此更新,现可通过使用工作项窗体上下文菜单中的“永久删除”(图 33)选项,同时从“测试”中心和“工作”中心永久删除测试项目(测试计划、测试套件、测试用例、共享参数和共享步骤)。

(图 33)删除测试项目

测试计划收藏夹

现可收藏最常用的测试计划。 在“测试计划”选取器中,可以看到“所有”测试计划选项卡和“收藏夹”选项卡(图 34)。 单击星标,将测试计划添加到收藏夹列表。 可从测试计划选取器或新帐户主页的“收藏夹”选项卡上访问收藏的测试计划。 还可通过搜索标题字段筛选测试计划(图 35)。

(图 34)测试计划

(图 35)测试收藏夹

托管自动测试的测试影响分析

现可通过 VSTest 任务的“2.* 预览”版中的复选框进行托管自动测试的测试影响分析(图 36)。

(图 36)测试影响分析

如果启用,将仅运行验证给定代码更改需要的相关托管自动测试集。 测试影响分析需要最新版本的 Visual Studio,并且目前在 CI 中针对托管自动测试支持该分析。

测试和反馈扩展的 Firefox 支持

我们非常荣幸地宣布适用于 Firefox 的测试和反馈扩展已正式发布。 从应用商店站点可以下载 Firefox 加载项。

注意:对 Microsoft Edge 浏览器的支持还正在开发中;请继续关注后续更新。

Release Management 改进

发布中的变量组支持

变量组用于对变量及其值进行分组,使它们在多个发布定义之间可用。 还可管理变量组的安全性,并确定谁有权从发布定义中查看、编辑和使用变量组的变量。

打开“生成和发布”中心的“库”选项卡,然后在工具栏中选择“+变量组”(图 37)。 现在,可仅在发布定义中使用变量组。 查找有关变量组的详细信息,请参阅 Release definitions in Microsoft Release Management(Microsoft Release Management 中的发布定义)。

创建(图 37)、然后编辑(图 38)变量组,如下所示:

(图 37)创建变量组

(图 38)编辑变量组

发布中的多个计划

想要在一天中计划多次创建发布? 现可在发布定义中配置多个计划触发器(图 39)。

(图 39)发布计划

生成和发布中的内联服务连接

借助此功能,可以在生成/发布定义中创建服务连接,而无需导航到“服务”选项卡。 将对以声明方式定义的所有扩展(例如 Docker、Jenkins、VMWare 和 SCVMM)自动启用此功能。

在此之前,发布定义仅可从当前项目链接项目源。 现还可从另一项目链接生成项目(图 40)。 链接项目时,项目下拉列表会列出帐户中的所有项目。

(图 40)链接生成项目

Azure 资源组改进

在此版本之前,Azure 资源组任务无法验证 ARM 模板语法,或者是在没有实际部署资源的情况下接受它。 此增强功能允许使用称为“仅验证”的新部署模式,可在创建实际 Azure 资源之前找出模板创作的问题。

Azure 资源组任务的另一个增强功能是允许增量部署或完整部署(图 41)。 以前,任务使用增量模式部署 ARM 模板。 然而,这不会修改未在模板中指定的资源组中已存在的资源。 完整模式会删除不在模板中的资源。 默认为增量模式。

(图 41)Azure 资源组

Azure CLI 任务

新的 Azure CLI 任务(图 42)支持在跨平台代理(如 Windows、Linux 和 Mac)上运行 Azure CLI 命令。 该任务支持经典订阅和 ARM 订阅。 它支持两种脚本提供模式,一种是作为链接项目,另一种是作为内联脚本。

(图 42)Azure CLI 任务

在 TFS 2017 Update 1 中,代码搜索服务包括 Elasticsearch 版本 2.4.1。 如果在运行 TFS 2017 的服务器上配置代码搜索服务,将在 TFS 升级过程中更新代码搜索服务。 如果在远程服务器上配置代码搜索服务,则会将安装程序随附的“搜索服务包”的内容复制到远程计算机,并按照自述文件中的说明手动升级搜索服务。

代码见解改进

SonarQube MSBuild 任务

由 SonarSource 提供的扩展现推出 SonarQube MSBuild 任务。 有关详细信息,请阅读 SonarSource have announced their own SonarQube Team Services / TFS integration(SonarSource 已推出自己的 SonarQube Team Services/TFS 集成)。

管理改进

新的通知设置体验

通知可帮助你和团队随时了解 Team Services 项目中的活动。 借助此更新,现在能更轻松地管理你和团队收到的通知。

现可在配置文件菜单中拥有自己的帐户级体验,用于管理通知设置(图 43)。

(图 43)通知设置

此视图用于管理所创建的个人订阅(图 44)。 它还显示团队管理员在帐户中为所有项目创建的订阅。

(图 44)管理个人订阅

详细了解管理个人通知设置

addProjectReports 现位于 TfsConfig 中

现在可以使用 addProjectReports 命令向团队项目添加报表。 这就是先前的 Power Tool 命令,现在是 TfsConfig.exe 命令的一部分。 有关详细信息,请参阅 Upload reports to a team project(向团队项目上传报表)。

弃用团队聊天室

借助与 TFS 和 Team Services(如 SlackMicrosoft Teams)良好集成的众多优秀解决方案,我们决定从 TFS 和 Team Services 弃用团队聊天室功能。 如果正在使用 Team Services,会看到新的黄色横幅上宣布此计划。 今年晚些时候,我们会计划完全关闭团队聊天室功能。

你可以使用多种替代方法。 通知中心和聊天都使用团队聊天室。 TFS 和 Team Services 已与许多其他协作产品集成,包括 Microsoft TeamsSlackHipChatCampfireFlowdock。 还可以使用 Zapier 创建自己的集成,或非常精细地控制显示的通知。

深入了解 deprecation of Team Rooms in Team Services(弃用 Team Services 中的团队聊天室)。

Markdown 不再支持文件链接

在 Update 1 中,欢迎页、团队仪表板上的 Markdown 小组件和看板上的“完成的定义”不再支持其 Markdown 中的文件链接。 可将文件链接作为文本包括在 Markdown 中作为解决方法。 有关详细信息,请参阅 Markdown guidance(Markdown 指南)。

发布过程模板编辑器

我们发布了 Visual Studio 2017 的过程模板编辑器扩展。 此扩展提供了查看和更新过程模板的简便方法,还提供了更新全局列表和工作项类型,以及查看工作项字段属性的相关工具。 此扩展适用于 TFS 2017 和 TFS 2017 Update 1 服务器。


已知问题

从 TFS 2013 或更早版本升级到 TFS 2017 更新 1 版本 15.112.26301.0 时,生成不起作用

  • 问题:

    请注意,仅当升级到 2017 年 3 月 7 日发布的 TFS 2017 更新 1 版本 15.112.26301.0 时才会发生此问题。 如果升级到 3 月 9 日发布的版本 15.112.26307.0,不会发生此问题。

    从 TFS 2013(RTM 或任何更新)或更早版本升级后,生成将显示错误“不存在名称为 TaskReferenceId 的计数器”。

  • 解决方法:

    在升级后的集合数据库上运行以下脚本:

    INSERT  tbl_Counter (PartitionId, DataspaceId, CounterName, CounterValue)
    SELECT  DISTINCT
              dpm.PartitionId,
              ds.DataspaceId,
              N'TaskReferenceId',
              1
      FROM    tbl_DatabasePartitionMap dpm
      INNER LOOP JOIN Task.tbl_Hub h
      ON      h.PartitionId = dpm.PartitionId
      INNER LOOP JOIN tbl_Dataspace ds
      ON      ds.PartitionId = dpm.PartitionId
              AND ds.DataspaceCategory = h.DataspaceCategory
              AND ds.DataspaceIdentifier <> '00000000-0000-0000-0000-000000000000'
      WHERE   dpm.PartitionId > 0
              AND dpm.HostType = 4
              AND NOT EXISTS (
                  SELECT  *
                  FROM    tbl_Counter c
                  WHERE   c.PartitionId = dpm.PartitionId
                          AND c.DataspaceId = ds.DataspaceId
                          AND c.CounterName = N'TaskReferenceId'
              ) 
    

客户应更新到 Git LFS 1.3.1 版或更高版本

  • 问题:

    不再支持 1.3.1 之前的 Git LFS 版本。

  • 解决方法:

    如果使用 Git LFS,必须更新到 Git LFS 版本 1.3.1 或更高版本。 LFS 客户端的早期版本与此版 TFS 中的身份验证更改不兼容。

工作项窗体无法正确呈现

  • 问题:

    如果在工作项窗体中使用旧的自定义控件(如旧的多值控件),工作项窗体可能无法呈现。

  • 解决方法:

    需要更新到控件的最新版本。 可在此处找到有关 TFS 2017 Update 1 的最新多值控件。

工作项窗体在 Web 中无法正确呈现

工作项窗体不会隐藏只读字段

  • 问题:

    如果使用旧的工作项窗体,且该窗体的 HideReadonlyEmptyFields 属性已在布局中设置为 true,则窗体将不能隐藏只读字段和空字段。

  • 解决方法:

    目前没有解决方法。 这将在 TFS 2017 Update 2 中得到修复。

工作项窗体在查看时变为已更新

  • 问题:

    在选择使用新工作项窗体时,仅 TFS 2017 Update 1 上的 IE 11 出现此问题。 如果将配置文件设置为法语、韩语、俄语、土耳其语、日语或中文,并且将工作项分配给任何标识,则在查看工作项时,可看到“工作项”窗体显示为已更新。 如果保存此工作项,则“分配到”字段将设置为未分配。

  • 解决方法:

    使用除 IE11 外的其他浏览器。 如果使用 IE11,请在工作项工具栏中单击“撤消/刷新”,还原正确的“分配到”值。

未能缓存上游 NPM 包

  • 问题:

    如果 TFS 服务器由代理运行,则上游 NPM 包的缓存将失败。

  • 解决方法:

    如果 TFS 服务器由公司代理运行,请对 TFS 服务器 web.config 进行如下更改(即 %ProgramFiles%\Microsoft Team Foundation Server 15.0\Application Tier\Web Services\web.config)。

    将此配置块:

      <!-- ASP.NET Proxy Usage for HttpWebRequests 
            "usesystemdefault" 
               false - stops the server using the default proxy configuration or proxy
                     auto-detection. 
            "bypassonlocal"
               true - this tells all requests to a local address to ignore configured proxies.
        -->
      <defaultProxy>
        <proxy usesystemdefault="False" bypassonlocal="True" />
      </defaultProxy>
    

    替换为以下内容:

      <defaultProxy useDefaultCredentials="true" />
    

代码下拉菜单显示错误的“版本控制”页面

  • #### 问题: 如果导航到 Git 存储库的管理员页面(如下图所示)(图 45)并单击“代码”中心,将看到“变更集”链接和“搁置集”链接,而不是“历史记录”链接。

(图 45)代码下拉菜单

  • #### 解决方法: 导航退出 Git 存储库管理员页面,即可看到正确的链接。

扩展未自动更新

  • 问题:

    如果将以前版本的 TFS 升级到 TFS 2017,并在连接模式下运行 TFS 2017,那么扩展将不会按正常情况自动更新。

  • 解决方法:

    目前没有解决方法。 该问题已解决,自动更新行为将通过 TFS 2017 Update 2 实现。 如果由于某种原因等不到 Update 2,请通过支持渠道与我们联系,我们会提前共享该修复程序。

如果未正确设置公共 URL,将无法获取扩展或扩展无法正常运行

  • 问题:

    从 Visual Studio Marketplace 获取扩展将失败。

    已获取的扩展很可能无法按预期运行。

  • 解决方法:

    已在 TFS 2017 Update 2 中对此进行修复,建议升级。 如果需要此功能在 Update 1 中运行,可在 TFS 服务器管理员控制台中设置“公共 URL”,以便可从公司环境中的另一个系统访问该 URL(图 46)。

(图 46)代码菜单