Team Foundation Server 2017 Update 1

Last Update: 2017/9/1

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

发布日期:2017 年 3 月 7 日

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

下载:Team Foundation Server 2017 Update 1

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

TFS 2017 Update 1 中的新增功能


已知问题


新增功能

更多个性化体验

个性化的集合主页

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

<img src="media/tfsrc1_18-2.png" "Redesigned collection page" width="650" height="376" style="border:2px solid Silver; display: block; margin: auto;">

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

项目可以获取标识

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

版本控制改进

存储库管理权限更改

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

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

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

分支策略改进

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

<img src="media/tfsrc2_01.png" "Policies section" width="306" height="197" style="border:2px solid Silver; display: block; margin: auto;">

(图 2)策略部分

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

<img src="media/tfsrc2_02.png" "Complete dialog" width="421" height="412" style="border:2px solid Silver; display: block; margin: auto;">

(图 3)“完成”对话框

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

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

<img src="media/tfsrc1_31.png" "File exclusion support" width="823" height="103" style="border:2px solid Silver; display: block; margin: auto;">

(图 4)文件排除支持

导入储存库

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

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

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

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

<img src="media/tfsrc1_26-2.png" "Add .gitignore during repo creation" width="400" height="260" style="border:2px solid Silver; display: block; margin: auto;">

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

挑拣和还原

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

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

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

可配置的比较分支

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

查找文件或文件夹

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

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

<img src="media/tfsrc1_04-2.png" "Find a file or folder" width="400" height="184" style="border:2px solid Silver; display: block; margin: auto;">

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

确认删除存储库

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

存储库收藏夹

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

<img src="media/tfsrc1_05-2.png" "Repo favorites" width="171" height="171" style="border:2px solid Silver; display: block; margin: auto;">

(图 7)存储库收藏夹

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

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

<img src="media/tfsrc1_27-2.png" "Commit history" width="410" height="261" style="border:2px solid Silver; display: block; margin: auto;">

(图 8)提交历史记录

提交页改进

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

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

<img src="media/tfsrc1_22-2.png" "Commit details" width="700" height="177" style="border:2px solid Silver; display: block; margin: auto;">

(图 9)提交详细信息

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

<img src="media/tfsrc1_23-2.png" "Commit history" width="700" height="160" style="border:2px solid Silver; display: block; margin: auto;">

(图 10)提交历史记录

在分支中搜索提交

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

<img src="media/tfsrc1_24-2.png" "Commit search" width="700" height="113" style="border:2px solid Silver; display: block; margin: auto;">

(图 11)提交搜索

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

<img src="media/tfsrc1_25-2.png" "Commit search dialog" width="700" height="365" style="border:2px solid Silver; display: block; margin: auto;">

(图 12)提交搜索对话框

讨论控件工具栏

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

<img src="media/tfsrc2_03-2.png" "Discussion toolbar" width="700" height="157" style="border:2px solid Silver; display: block; margin: auto;">

(图 13)讨论工具栏

PR 注释改进

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

<img src="media/tfsrc2_04-2.png" "PR comment" width="590" height="469" style="border:2px solid Silver; display: block; margin: auto;">

(图 14)PR 注释改进

查看提交的 PR

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

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

<img src="media/tfsrc2_05-2.png" "PR in commits" width="700" height="223" style="border:2px solid Silver; display: block; margin: auto;">

(图 15)提交中的 PR

关注拉取请求

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

<img src="media/tfsrc1_28.png" "Follow a pull request" width="194" height="209" style="border:2px solid Silver; display: block; margin: auto;">

(图 16)关注拉取请求

重启拉取请求合并

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

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

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

<img src="media/tfsrc1_29-2.png" "Code review policy" width="400" height="114" style="border:2px solid Silver; display: block; margin: auto;">

(图 17)代码评审策略

拉取请求说明中的 Markdown

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

PR 讨论中的附件

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

<img src="media/tfsrc1_30-2.png" "Attachments in PR discussions" width="700" height="233" style="border:2px solid Silver; display: block; margin: auto;">

(图 18)PR 讨论中的附件

突出显示具有更新的 PR

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

<img src="media/tfsrc1_32-2.png" "PR updated files" width="700" height="212" style="border:2px solid Silver; display: block; margin: auto;">

(图 19)PR 更新文件

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

<img src="media/tfsrc1_33-2.png" "PR summary" width="700" height="212" style="border:2px solid Silver; display: block; margin: auto;">

(图 20)PR 摘要

PR 合并策略的分支策略

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

<img src="media/tfsrc1_34.png" "Branch policy" width="421" height="111" style="border:2px solid Silver; display: block; margin: auto;">

(图 21)分支策略

公开合并冲突信息

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

<img src="media/tfsrc1_35-2-2.png" "Merge conflicts" width="700" height="256" style="border:2px solid Silver; display: block; margin: auto;">

(图 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 的发布视图)以开始。

<img src="media/tfsrc2_12-2.png" "Release views in Package Management" width="500" height="264" style="border:2px solid Silver; display: block; margin: auto;">

(图 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)。

<img src="media/tfsrc2_11-2.png" "npm in Package Management" width="700" height="327" style="border:2px solid Silver; display: block; margin: auto;">

(图 24)包管理中的 npm

跨平台改进

Xcode 生成任务 xcpretty 格式设置

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

<img src="media/tfsrc1_19-2.png" "Xcode Build formatting" width="700" height="364" style="border:2px solid Silver; display: block; margin: auto;">

(图 25)Xcpretty 格式设置

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

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

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

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

<img src="media/tfsrc1_20-2.png" "Xcode automatic signing" width="675" height="180" style="border:2px solid Silver; display: block; margin: auto;">

(图 26)Xcode 自动签名

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

<img src="media/tfsrc1_21-2.png" "Xcode export options" width="675" height="212" style="border:2px solid Silver; display: block; margin: auto;">

(图 27)Xcode 导出选项

测试改进

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

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

<img src="media/tfsrc2_06-2.png" "Run tests" width="700" height="389" style="border:2px solid Silver; display: block; margin: auto;">

(图 28)运行测试

验证工作项的 bug

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

<img src="media/tfsrc1_01-2.png" "Verify bugs from work item" width="700" height="327" style="border:2px solid Silver; display: block; margin: auto;">

(图 29)验证工作项的 bug

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

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

从 Web 运行程序更新现有 bug

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

<img src="media/tfsrc1_07-2.png" "Test runner" width="700" height="282" style="border:2px solid Silver; display: block; margin: auto;">

(图 30)更新现有 bug

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

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

<img src="media/tfsrc1_06-2.png" "Test case description" width="700" height="309" style="border:2px solid Silver; display: block; margin: auto;">

(图 31)测试用例说明

测试中心贡献点

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

<img src="media/tfsrc1_08-2.png" "Contribution point" width="400" height="250" style="border:2px solid Silver; display: block; margin: auto;">

(图 32)贡献点

删除测试项目

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

<img src="media/tfsrc1_12-2.png" "Delete test artifacts" width="700" height="463" style="border:2px solid Silver; display: block; margin: auto;">

(图 33)删除测试项目

测试计划收藏夹

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

<img src="media/tfsrc1_16-2.png" "Test plans" width="300" height="236" style="border:2px solid Silver; display: block; margin: auto;">

(图 34)测试计划

<img src="media/tfsrc1_17-2.png" "Test favorites" width="600" height="216" style="border:2px solid Silver; display: block; margin: auto;">

(图 35)测试收藏夹

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

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

<img src="media/tfsrc1_36-2.png" "Test impact analysis" width="700" height="554" style="border:2px solid Silver; display: block; margin: auto;">

(图 36)测试影响分析

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

测试和反馈扩展的 Firefox 支持

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

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

Release Management 改进

发布中的变量组支持

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

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

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

<img src="media/tfsrc2_08-2.png" "Create variable group" width="700" height="358" style="border:2px solid Silver; display: block; margin: auto;">

(图 37)创建变量组

<img src="media/tfsrc2_09-2.png" "Edit variable group" width="700" height="434" style="border:2px solid Silver; display: block; margin: auto;">

(图 38)编辑变量组

发布中的多个计划

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

<img src="media/tfsrc1_09-2.png" "Release schedule" width="700" height="389" style="border:2px solid Silver; display: block; margin: auto;">

(图 39)发布计划

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

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

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

<img src="media/tfsrc1_13-2.png" "Link build artifacts" width="400" height="271" style="border:2px solid Silver; display: block; margin: auto;">

(图 40)链接生成项目

Azure 资源组改进

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

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

<img src="media/tfsrc1_10-2.png" "Azure resource groups" width="700" height="278" style="border:2px solid Silver; display: block; margin: auto;">

(图 41)Azure 资源组

Azure CLI 任务

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

<img src="media/tfsrc1_11-2.png" "Azure CLI task" width="700" height="135" style="border:2px solid Silver; display: block; margin: auto;">

(图 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)。

<img src="media/tfsrc1_14.png" "Notification settings" width="330" height="194" style="border:2px solid Silver; display: block; margin: auto;">

(图 43)通知设置

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

<img src="media/tfsrc1_15-2.png" "Manage personal subscriptions" width="800" height="382" style="border:2px solid Silver; display: block; margin: auto;">

(图 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)并单击“代码”中心,将看到“变更集”链接和“搁置集”链接,而不是“历史记录”链接。

<img src="media/tfsrc2_10.png" "Code dropdown menu" width="412" height="230" style="border:2px solid Silver; display: block; margin: auto;">

(图 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)。

<img src="media/adminconsole-2.png" "Code menu" width="700" height="471" style="border:2px solid Silver; display: block; margin: auto;">

(图 46)代码菜单