Team Foundation Server 2017 Update 1 发行说明
开发者社区 | 系统要求和兼容性 | 许可条款 | TFS DevOps 博客 | SHA-1 哈希 | 最新 Visual Studio 2019 发行说明
注意
这不是 Team Foundation Server 的最新版。 要下载最新版本,请访问 Team Foundation Server 2018 Update 3 的最新发行说明。 可以更改此页面的语言,具体方法是单击页脚中的地球图标,然后选择所需语言。
本文介绍 Team Foundation Server 2017 Update 1 的相关信息。 单击此按钮下载。
要详细了解 Team Foundation Server 2017,请参阅 Team Foundation Server 要求和兼容性页面。
请参阅 TFS 安装页以获取详细信息。
发布日期:2017 年 3 月 7 日
Team Foundation Server 2017 Update 1 新增功能摘要
- 更多个性化体验
- 版本控制改进
- 工作项跟踪改进
- 生成改进
- 包管理需要付款
- 打包改进
- 跨平台改进
- 测试改进
- Release Management 改进
- 代码搜索更新
- 代码见解改进
- 管理改进
- 弃用团队聊天室
- Markdown 不再支持文件链接
- 发布进程模板编辑器
Team Foundation Server 2017 Update 1 新增功能详细信息
更多个性化体验
个性化的集合主页
使用此版本,可轻松地访问最重要的项目。 重新设计的集合页提供个性化体验,可以显示用户关心的项目、收藏夹、工作和拉取请求。 用户可以转到某个位置并迅速找到所有需执行和关心的项目。 有关详细信息,请参阅帐户中心页。
项目可以获取标识
现可在一处了解项目概况。 利用新的项目页,可轻松查看和编辑项目说明、查看或添加成员,并检查最新活动。 新项目更易上手,还能利用 TFS 的所有内置 DevOps 功能。
版本控制改进
存储库管理权限更改
对于 Git 存储库,我们已将“管理”权限划分为若干更具体的权限。 以便更灵活地决定谁可以执行哪些操作。 例如,可以允许你帐户中的任何人创建新存储库,但禁止他们删除存储库或向存储库添加新用户。 新的权限如下:
- 管理权限:添加/删除用户和权限。
- 创建:创建新的存储库。
- 删除:删除存储库。
- 重命名:重命名存储库。
- 编辑策略:配置分支策略。
- 删除其他用户的锁定:删除其他用户设置的分支锁定。
这些权限可应用于项目中的所有存储库或单个存储库。
分支策略改进
在“策略”部分(图 2),所需策略和可选策略现在分为了几个部分。 这样可以确切地说明为完成 PR 需要哪些策略。 必需部分还总结了必需审阅者,且仅当所有必需审阅者批准后才能被标记为通过。
![策略部分](media/tfsrc2_01.png?view=azure-devops)
如果需要绕过策略(并具有所需权限),“完成”对话框(图 3)将展示全新的体验。 不符合要求的任何策略都会显示在警告消息中,并将显示新的显式选项来替代策略。 选中替代选项会启用“替代和完成”操作,此操作完成拉取请求,替代任何失败的策略。
![完成对话框](media/tfsrc2_02.png?view=azure-devops)
支持在所需审阅者策略中进行文件排除
为特定文件路径指定所需审阅者时,现可通过为要排除的路径加上“!”前缀来”排除路径。 例如,可以使用此前缀从通常所需的签核中排除某个文档文件夹(图 4)。
![文件排除支持](media/tfsrc1_31.png?view=azure-devops)
导入储存库
客户现可从 GitHub、BitBucket、GitLab 或其他位置导入 Git 存储库。 可导入新的或现有的空存储库。 有关详细信息,请参阅 Import a Git repo(导入 Git 存储库)。
在创建存储库的过程中添加 gitignore
创建新的 Git 存储库时,现可添加 .gitignore 文件并与存储库关联。 执行提交操作时,gitignore 文件指定 Git 应忽略的文件。
可利用对话框从多个可用 .gitignore 模板中选择一个模板(图 5)。
![在创建存储库的过程中添加 gitignore](media/tfsrc1_26-2.png?view=azure-devops)
挑拣和还原
我们添加了“挑拣”和“还原”这两项新功能,让用户更轻松地从 Web 门户移植或取消更改。
使用挑拣命令将拉取请求中的更改移植到多个分支。 典型用例:需要修补某个 bug,同时又需要在主线上修复此 bug。 创建拉取请求(其中包含修补程序分支的修复程序)后,可以轻松地为主分支挑拣相同的修复程序。 有关详细信息,请参阅 Copy changes with cherry-pick(利用挑拣复制更改)。
可以在已完成的 PR 上还原更改。 找到引入错误更改的 PR,单击“还原”,按步骤创建取消不必要更改的 PR。 有关详细信息,请参阅利用 Git 撤消更改。
可配置的比较分支
现可将比较分支设置为默认分支以外的内容。 此设置是基于每个用户保存的。 从“分支”页创建的拉取请求和新分支是以设置为比较分支的分支为基础的。 有关详细信息,请参阅管理分支。
查找文件或文件夹
可以利用 Team Services 项目中的代码中心在存储库中快速搜索文件或文件夹。 结果将列出当前文件夹中的项,然后是存储库中的文件和文件夹。
对于任何 Git 存储库,请转到路径控制框(图 6)并开始键入,以启动对正在查找的文件或文件夹的导航搜索体验。
![查找文件或文件夹](media/tfsrc1_04-2.png?view=azure-devops)
确认删除存储库
为防止意外删除存储库,现在必须键入想要删除的存储库的名称,以确认操作。
存储库收藏夹
现可收藏最常用的存储库。 在存储库选取器(图 7)中,会看到“所有存储库”选项卡和“收藏夹”选项卡。 单击星标,将存储库添加到收藏夹列表。
![存储库收藏夹](media/tfsrc1_05-2.png?view=azure-devops)
在提交历史记录中搜索文件或文件夹
类似于文件选项卡,用户现可搜索存储库中的文件或文件夹,并查看该文件或文件夹的提交历史记录。 对于任何 Git 存储库,请转到“历史记录”选项卡(图 8)上的路径控制框并开始键入,以启动对正在查找的文件或文件夹的历史记录搜索体验。
![提交历史记录](media/tfsrc1_27-2.png?view=azure-devops)
提交页改进
我们致力于让用户体验新式的高性能“提交详细信息”页和“提交历史记录”页。 可使用鸟瞰视图查找和处理与提交相关的重要信息。
在分支中搜索提交
现在可以通过单击提交详细信息页上的“在分支中搜索”按钮,在指定分支或标记中搜索提交(图 11)。
![提交搜索](media/tfsrc1_24-2.png?view=azure-devops)
可在窗口中选择标记和分支来进行查看,即使这些分支和标记不包含特定的提交(图 12)。
![“提交搜索”对话框](media/tfsrc1_25-2.png?view=azure-devops)
讨论控件工具栏
向拉取请求添加注释时,Markdown 是得力的工具,但它很难记住语法。 为了简化此操作,我们在讨论控件中添加了工具栏(图 13)。 这将插入适当的 Markdown 语法以添加常用格式。 利用新的工具栏控件,可添加标题、粗体、斜体、链接、代码和列表,还可通过工具栏输入 @ 和 # 提及等功能。 键盘快捷键提供有(Ctrl+B)粗体、斜体(Crrl+I)和创建链接(Ctrl+K)。
![讨论工具栏](media/tfsrc2_03-2.png?view=azure-devops)
PR 注释改进
为了帮助识别拉取请求中的新注释,我们在现有讨论线程中针对新答复进行了一些额外补充。 文件视图中的注释还会突出显示包含新注释的线程(图 14)。
![PR 注释](media/tfsrc2_04-2.png?view=azure-devops)
查看提交的 PR
现可在“提交详细信息”页上查看提交的所有关联拉取请求。 例如:
- 在关联拉取请求下拉列表中,此提交有两个关联拉取请求。
- 拉取请求 #2 将此提交提交提交到 main。
- 拉取请求 #1 则将同一提交传递到分支 4。
关注拉取请求
现在可以关注拉取请求,通过电子邮件提醒知悉任何更改。 上下文菜单中提供“关注”选项(图 16)。
![关注拉取请求](media/tfsrc1_28.png?view=azure-devops)
重启拉取请求合并
针对已更新的目标分支,已添加另一个选项重新尝试合并拉取请求。 如果要验证目标分支的最近更改没有产生冲突或中断拉取请求生成,可以使用“重启合并”选项。
拉取请求被拒绝时阻止完成
如果拉取请求被一个或多个审阅者拒绝,设定了代码评审策略的分支会显示无法完成拉取请求。 许多用户期待这种行为,因此我们更改了默认行为。 对于需要原始行为的团队,“分支策略设置”页中设有新选项(图 17)。
![代码评审策略](media/tfsrc1_29-2.png?view=azure-devops)
拉取请求说明中的 Markdown
利用 Markdown 让拉取请求说明更生动。 拉取请求说明现已提供用户熟悉和喜爱的与拉取请求注释中相同的 Markdown 支持。
PR 讨论中的附件
现在可以向拉取请求注释添加附件(图 18)。 通过拖放或浏览添加附件。 对于图像,只需从剪贴板粘贴即可添加附件。 添加附件会自动更新注释,以包括对新附件的 Markdown 引用。
![PR 讨论中的附件](media/tfsrc1_30-2.png?view=azure-devops)
突出显示具有更新的 PR
现在查看拉取请求更新比以往更简单。 在 PR 列表视图中,自上次看到更改以来具有更改的 PR 会显示为显示更改汇总的新更新列。
查看有更改的拉取请求时,可在概述中看到类似的摘要消息。 新的推送和注释线程会以蓝色突出显示(图 20)。 单击“查看代码更新”链接会导航到“文件”视图,其中显示了上次查看拉取请求以来新更改的差异。 此功能让用户可以轻松跟进 PR,了解作者为响应反馈做出的更改。
![PR 摘要](media/tfsrc1_33-2.png?view=azure-devops)
PR 合并策略的分支策略
我们添加了新的分支策略(图 21),可以为每个分支定义拉取请求合并策略。 以前,当 PR 完成时,需要选择合并或挤压。 如果启用,此策略将替代你的首选项,强制执行策略设定的要求。
![分支策略](media/tfsrc1_34.png?view=azure-devops)
公开合并冲突信息
如果拉取请求中存在任何有冲突的文件,现可在概述中看到冲突详细信息(图 22)。 其中会列出每个冲突文件,以及源分支和目标分支之间冲突类型的简短摘要。
![合并冲突](media/tfsrc1_35-2-2.png?view=azure-devops)
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 的发布视图)以开始。
![包管理中的发布视图](media/tfsrc2_12-2.png?view=azure-devops)
包管理中的 npm
包管理源现支持用于 Node.js 和 JavaScript 开发的 npm 包。 此外,npm 源支持将 npmjs.com 作为“带有缓存的上流源”。通过启用此选项,源将以透明方式从 npmjs.com 代理和缓存包(请参阅 使用 npmjs.com 中的包),这意味着只需一次从 npmjs.com 获取特定 package@version,此后 TFS 服务器会直接处理对该包的请求。 如果从 npmjs.com 删除包,依然可从 TFS 获取此包的缓存版本。
若要开始,请查找“连接源”对话框中的新 npm 选项(图 24)。
![包管理中的 npm](media/tfsrc2_11-2.png?view=azure-devops)
跨平台改进
Xcode 生成任务 xcpretty 格式设置
你现在可以使用 xcpretty 设置 xcode 生成输出的格式(图 25)。 还可以使用 xcodebuild 将 JUnit 测试结果发布到 Team Services。 以前,需使用 xctool 作为生成工具发布测试结果。 现在,若要启用 xcpretty,在 Xcode 任务的“高级”部分选中“使用 xcpretty”并取消选中“使用 xctool”。
![Xcode 生成格式](media/tfsrc1_19-2.png?view=azure-devops)
发布 Jenkins 测试和代码覆盖率结果
“Jenkins 队列作业”生成和发布任务现可从 Jenkins 作业或管道检索测试和代码覆盖率结果。 这需要在 Jenkins 服务器上安装 Jenkins 5.2.0 或更高版本的 TFS 插件,并配置后期生成操作“收集 TFS/Team Services 的结果”。 从 Jenkins 检索结果后,才能通过“发布测试结果”或“发布代码覆盖率”生成任务发布结果。
Xcode 8 在 Xcode 生成任务中对包进行签名和导出
Xcode 任务现支持通过 Xcode 8 自动签名生成项目(图 26)。 可以在生成服务器上手动安装证书和预配配置文件,也可以指定“文件内容”选项通过任务进行安装。
![Xcode 自动签名](media/tfsrc1_20-2.png?view=azure-devops)
从存档 (.xcarchive) 导出应用包 (IPA) 时,Xcode 8 要求指定导出选项 plist(图 27)。 如果使用 Xcode 8 或 Xcode 7,Xcode 任务现可自动标识导出方法。 通过 Xcode 任务可以指定导出方法或指定自定义 plist 文件。 如果使用低于 Xcode 7 的 Xcode 版本,任务将回退到使用旧工具 (xcrun) 创建应用包。
![Xcode 导出选项](media/tfsrc1_21-2.png?view=azure-devops)
测试改进
运行使用 Visual Studio 2017 生成的测试
利用 CI/CD 管道中的“部署测试代理”和“运行功能测试”任务(图 28),现可安装适用于 Visual Studio 2017 的测试代理并运行使用 Visual Studio 2017 生成的测试。
![运行测试](media/tfsrc2_06-2.png?view=azure-devops)
验证工作项的 bug
现在可通过重新运行识别 bug 的测试来验证 bug(图 29)。 可从 bug 工作项窗体上下文菜单调用“验证”选项在 Web 运行程序中启动相关测试用例。 使用 Web 运行程序执行验证,并直接在 Web 运行程序中更新 bug 工作项。
![验证工作项的 bug](media/tfsrc1_01-2.png?view=azure-devops)
测试步骤操作的 REST 客户端帮助程序
现可使用添加到 REST 客户端的帮助程序类,在测试用例工作项中创建、修改并删除测试步骤和测试步骤附件(请参阅 RestApi 示例)。
从 Web 运行程序更新现有 bug
除了从 Web 运行程序创建新 bug,现在还可以更新现有 bug。 收集所有诊断数据后,重现步骤和现有会话中的可跟踪性链接将自动添加到现有 bug。
Web 运行程序中的测试用例说明
测试用例说明字段经常用于捕获所需的先决条件,然后才启动测试用例。 通过此更新,现在可以使用“显示说明”选项查看 Web 运行程序 中的测试用例说明 信息。
测试中心贡献点
在“测试计划”中心增添了新的贡献点(“ms.vss-test-web.test-plan-pivot-tabs”)(图 32),让开发人员可将扩展作为数据透视表选项卡写入,该选项卡显示在“测试”和“图表”选项卡的旁边。
![贡献点](media/tfsrc1_08-2.png?view=azure-devops)
删除测试项目
在此版本之前,删除选项仅限用于工作项。 借助此更新,你现在可以通过使用工作项窗体上下文菜单中的“永久删除”(图 33)选项,同时从“测试”中心和“工作”中心永久删除测试项目(测试计划、测试套件、测试用例、共享参数和共享步骤)。
![删除测试项目](media/tfsrc1_12-2.png?view=azure-devops)
测试计划收藏夹
现可收藏最常用的测试计划。 在“测试计划”选取器中,可以看到“所有”测试计划选项卡和“收藏夹”选项卡(图 34)。 单击星标,将测试计划添加到收藏夹列表。 可从测试计划选取器或新帐户主页的“收藏夹”选项卡上访问收藏的测试计划。 还可通过搜索标题字段筛选测试计划(图 35)。
![测试计划](media/tfsrc1_16-2.png?view=azure-devops)
![测试收藏夹](media/tfsrc1_17-2.png?view=azure-devops)
托管自动测试的测试影响分析
现可通过 VSTest 任务的“版本 2.* (预览)”版中的复选框进行托管自动测试的测试影响分析(图 36)。
![测试影响分析](media/tfsrc1_36-2.png?view=azure-devops)
如果启用,将仅运行验证给定代码更改需要的相关托管自动测试集。 测试影响分析需要最新版本的 Visual Studio,并且目前在 CI 中针对托管自动测试支持该分析。
测试和反馈扩展的 Firefox 支持
我们很高兴宣布 Firefox 的测试与反馈扩展正式发布。 从市场站点可以下载 Firefox 加载项。
注意:对 Microsoft Edge 浏览器的支持还正在开发中;请继续关注后续更新。
Release Management 改进
发布中的变量组支持
变量组用于对变量及其值进行分组,使它们在多个发布定义之间可用。 还可管理变量组的安全性,并确定谁有权从发布定义中查看、编辑和使用变量组的变量。
打开“生成和发布”中心的“库”选项卡,然后在工具栏中选择“+变量组”(图 37)。 当前仅在发布定义中使用变量组。 查找有关变量组的详细信息,请参阅 Release definitions in Microsoft Release Management(Microsoft Release Management 中的发布定义)。
创建(图 37)、然后编辑(图 38)变量组,如下所示:
![创建变量组](media/tfsrc2_08-2.png?view=azure-devops)
![编辑变量组](media/tfsrc2_09-2.png?view=azure-devops)
发布中的多个计划
想要在一天中计划多次创建发布? 现可在发布定义中配置多个计划触发器(图 39)。
![发行计划](media/tfsrc1_09-2.png?view=azure-devops)
生成和发布中的内联服务连接
借助此功能,可以在生成/发布定义中创建服务连接,而无需导航到“服务”选项卡。对以声明方式定义的所有扩展(例如 Docker、Jenkins、VMWare 和 SCVMM)自动启用此功能。
从另一个团队项目链接生成项目
在此之前,发布定义仅可从当前项目链接项目源。 现还可从另一项目链接生成项目(图 40)。 链接项目时,项目下拉列表会列出帐户中的所有项目。
![链接生成项目](media/tfsrc1_13-2.png?view=azure-devops)
Azure 资源组改进
在此版本之前,Azure 资源组任务无法验证 ARM 模板语法,或者是在没有实际部署资源的情况下接受它。 此增强功能允许使用称为“仅验证”的新部署模式,可在创建实际 Azure 资源之前找出模板创作的问题。
Azure 资源组任务的另一个增强功能是允许增量部署或完整部署(图 41)。 以前,任务使用增量模式部署 ARM 模板。 然而,这不会修改未在模板中指定的资源组中已存在的资源。 完整模式会删除不在模板中的资源。 默认为增量模式。
![Azure 资源组](media/tfsrc1_10-2.png?view=azure-devops)
Azure CLI 任务
新的 Azure CLI 任务(图 42)支持在跨平台代理(如 Windows、Linux 和 Mac)上运行 Azure CLI 命令。 该任务支持经典订阅和 ARM 订阅。 它支持两种脚本提供模式,一种是作为链接项目,另一种是作为内联脚本。
![Azure CLI 任务](media/tfsrc1_11-2.png?view=azure-devops)
代码搜索更新
在 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 项目中的活动。 借助此更新,现在可更轻松地管理你和团队收到的通知。
现在,在配置文件菜单中拥有自己的帐户级体验,用于管理通知设置。
此视图允许管理你创建的个人订阅。 它还显示团队管理员在帐户中为所有项目创建的订阅。
详细了解管理个人通知设置。
addProjectReports 现位于 TfsConfig 中
现在可以使用 addProjectReports 命令向团队项目添加报表。 这就是先前的 Power Tool 命令,现在是 TfsConfig.exe 命令的一部分。 有关详细信息,请参阅 Upload reports to a team project(向团队项目上传报表)。
弃用团队聊天室
借助与 TFS 和 Team Services(如 Slack 和 Microsoft Teams)良好集成的众多优秀解决方案,我们决定从 TFS 和 Team Services 弃用团队聊天室功能。 如果正在使用 Team Services,会看到新的黄色横幅上宣布此计划。 今年晚些时候,我们会计划完全关闭团队聊天室功能。
你可以使用多种替代方法。 通知中心和聊天都使用团队聊天室。 TFS 和 Team Services 已与许多其他协作产品集成,包括 Microsoft Teams 和 Slack。 还可以使用 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 中无法正确呈现
问题:
如果已安装了适用于 Visual Studio 客户端而非 Web 客户端的自定义控件(如多值控件),则 Web 中的工作项窗体将无法呈现。
解决方法:
可以添加不包含缺失控件元素的 Web 布局。 获得面向 Visual Studio 和 Web 的不同布局。 若要详细了解布局,请参阅所有 FORM XML 元素引用 (TFS 2015)。
工作项窗体不会隐藏只读字段
问题:
如果使用旧的工作项窗体,且该窗体的 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)并单击“代码”中心,可看到“变更集”链接和“搁置集”链接,而不是“历史记录”链接。
解决方法:
导航退出 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)。
![代码菜单](media/adminconsole-2.png?view=azure-devops)
请参阅客户报告的有关 Team Foundation Server 2017 的问题。
反馈和建议
我们期待你的宝贵意见和建议! 可以通过开发者社区门户报告并跟踪问题,并能在 Stack Overflow 上了解相关建议。