Team Foundation Server 2017 Update 1 发行说明Team Foundation Server 2017 Update 1 Release Notes

上次更新日期 2018/1/31

若要查看最新更新,请访问中文版发行说明To see the latest updates, please visit the English Release Notes.

发布日期:2017 年 3 月 7 日Release Date: March 7, 2017

我们非常高兴地宣布正式推出 Team Foundation Server 2017 Update 1。We are happy to announce the release of Team Foundation Server 2017 Update 1. 此新版本包括我们最新的功能创新和改进。This new release includes our most recent feature innovations and improvements. 有关要求信息,请参阅 Team Foundation Server 的要求和兼容性页。You can find requirement information on the Team Foundation Server Requirements and Compatibility page.

下载:Team Foundation Server 2017 Update 1Download: Team Foundation Server 2017 Update 1

若要了解有关其他相关下载的详细信息,请参阅下载页。To learn more about other related downloads, see the Downloads page.

TFS 2017 Update 1 中的新增功能What's New in TFS 2017 Update 1


已知问题Known Issues


新增功能What's New

更多个性化体验 More personal experiences

个性化的集合主页Personalized collection home page

利用此版本,可超轻松地访问最重要的项目。With this release, it's super easy for you to access artifacts that are most important to you. 重新设计的集合页(图 1)提供个性化体验,可以显示用户关心的项目、收藏夹、工作和拉取请求。The redesigned collection page (Figure 1) has a personalized experience that shows the Projects, Favorites, Work, and Pull Requests you care about. 这样可以更好地开始一天的工作。This makes for a great way to start your day. 用户可以转到某个位置并迅速找到所有需执行和关心的项目。You can go to one place and quickly find everything you need and care about. 有关详细信息,请参阅帐户中心页See Account hub pages for more information.

Redesigned collection page

(图 1)重新设计的集合页面
Redesigned collection page
(Figure 1) Redesigned collection page

项目可以获取标识Your project gets an identity

现可在一处了解项目概况。There is now one place to get an overview of your project. 利用新的项目页,可轻松查看和编辑项目说明、查看或添加成员,并检查最新活动。The new project page makes it easy to view and edit the project description, view or add members, and check on the latest activity. 新项目更易上手,还能利用 TFS 的所有内置 DevOps 功能。It is even easier to get started with a new project, and leverage all the built-in DevOps functionality of TFS.

版本控制改进 Version Control Improvements

存储库管理权限更改 Repo admin permission changes

对于 Git 存储库,我们已将“管理”权限划分为若干更具体的权限。For Git repos, we’ve divided the Administer permission into several more granular permissions. 以便更灵活地决定谁可以执行哪些操作。This gives you more flexibility to decide who can perform what actions. 例如,可以允许你帐户中的任何人创建新存储库,但禁止他们删除存储库或向存储库添加新用户。For instance, you may allow anyone in your account to create new repositories, but disallow them from deleting repos or adding new users to a repo. 新的权限如下:The new permissions are:

  • 管理权限:添加/删除用户和权限。Manage permissions: Add/remove users and permissions.
  • 创建:创建新的存储库。Create: Create a new repo.
  • 删除:删除存储库。Delete: Delete a repo.
  • 重命名:重命名存储库。Rename: Rename a repo.
  • 编辑策略:配置分支策略。Edit policies: Configure branch policies.
  • 删除其他用户的锁定:删除其他用户设置的分支锁定。Remove others’ locks: Remove branch locks set by another user.

这些权限可应用于项目中的所有存储库或单个存储库。These permissions can be applied to all repositories in a project, or to individual repositories.

分支策略改进 Branch policy improvements

在“策略”部分(图 2),所需策略和可选策略现在分为了几个部分。In the Policies section (Figure 2), the required and optional policies are now grouped into sections. 这样可以确切地说明为完成 PR 需要哪些策略。This clarifies exactly which policies are required in order to complete a PR. 必需部分还总结了必需审阅者,且仅当所有必需审阅者批准后才能被标记为通过。Required reviewers are also summarized in the required section, and will only be marked as passing when all required reviewers have approved.

Policies section

(图 2)策略部分
Policies section
(Figure 2) Policies section

如果需要绕过策略(并具有所需权限),“完成”对话框(图 3)将展示全新的体验。If you need to bypass policies (and have the required permissions), a new experience will be shown in the Complete dialog (Figure 3). 不符合要求的任何策略都会显示在警告消息中,并将显示新的显式选项来替代策略。Any policies that are not met will be shown in a warning message, and a new explicit option to opt-in to override policies will be presented. 选中替代选项将启用“替代和完成”操作,此操作将完成 PR,替代任何失败的策略。Checking the override option will enable the Override & Complete action, which will complete the PR, overriding any failing policies.

Complete dialog

图 3)完成对话
Complete dialog
(Figure 3) Complete dialog

支持在所需审阅者策略中进行文件排除Support file exclusions in the required reviewer policy

为特定文件路径指定所需审阅者时,现可使用“!”排除路径When specifying required reviewers for specific file paths, you can now exclude paths by using a “!” 为想要排除的路径添加前缀。prefix to the path you want to exclude. 例如,可以使用此前缀从通常所需的签核中排除某个文档文件夹(图 4)。For example, you can use this to exclude a docs folder from your normally required signoff (Figure 4).

File exclusion support

(图 4)文件排除支持
File exclusion support
(Figure 4) File exclusion support

导入储存库Import repository

客户现可从 GitHub、BitBucket、GitLab 或其他位置导入 Git 存储库。You can now import a Git repository from GitHub, BitBucket, GitLab, or other locations. 可导入新的或现有的空存储库。Import into either a new, or existing empty repository. 有关详细信息,请参阅 Import a Git repo(导入 Git 存储库)。For more information, see Import a Git repo.

在创建存储库的过程中添加 gitignoreAdd .gitignore during repo creation

创建新的 Git 存储库时,现可添加 .gitignore 文件并与存储库关联。While creating a new Git repository, you can now add and associate a .gitignore file with your repository. 执行提交操作时,gitignore 文件指定 Git 应忽略的文件。A .gitignore file specifies files that Git should ignore while performing a commit.

可利用对话框从多个可用 .gitignore 模板中选择一个模板(图 5)。The dialog allows you to select one of the many available .gitignore templates (Figure 5).

Add .gitignore during repo creation

(图 5)在创建存储库的过程中添加 gitignore
Add .gitignore during repo creation
(Figure 5) Add .gitignore during repo creation

挑拣和还原Cherry-pick and revert

我们添加了“挑拣”和“还原”这两项新功能,让用户更轻松地从 Web 门户移植或取消更改。We’ve added two new features that make it easier to port or back out changes from the web portal: Cherry-pick and Revert.

使用挑拣命令将拉取请求中的更改移植到多个分支。Use the cherry-pick command to port changes in a pull request to multiple branches. 典型用例:需要修补某个 bug,同时又需要在主线上修复此 bug。A typical use case is when a bug needs to be hotfixed, but should also be fixed in the mainline. 创建拉取请求(其中包含修补程序分支的修复程序)后,可以轻松地为主分支挑拣相同的修复程序。Once you’ve created your pull request that contains the fix to the hotfix branch, you can easily cherry-pick the same fix into the master branch. 有关详细信息,请参阅 Copy changes with cherry-pick(利用挑拣复制更改)。See Copy changes with cherry-pick for more information.

可以在已完成的 PR 上还原更改。You can revert changes on completed PRs. 找到引入错误更改的 PR,单击“还原”,按步骤创建取消不必要更改的 PR。Find the PR that introduced the bad change, click Revert, and follow the steps to create a PR that backs out the unwanted changes. 有关详细信息,请参阅利用 Git 撤消更改For more information, see Undo Changes with Git.

可配置的比较分支Configurable compare branch

现可将比较分支设置为默认分支以外的内容。You can now set your compare branch to something other than the default branch. 每个用户都将记住此设置。This setting will be remembered on a per-user basis. 从“分支”页创建的拉取请求和新分支以设置为比较分支的分支为基础。Pull requests and new branches created from the Branches page will be based off the branch you set as the compare branch. 有关详细信息,请参阅管理分支See Manage your branches for more information.

查找文件或文件夹Find a file or folder

可以利用 Team Services 项目中的__代码__中心在存储库中快速搜索文件或文件夹。You can quickly search for a file or folder in a repository using the Code hub in your Team Services project. 结果将列出当前文件夹中的项,然后是存储库中的文件和文件夹。The result lists items from your current folder followed by files and folders across the repository.

对于任何 Git 存储库,请转到路径控制框(图 6)并开始键入,以启动对正在查找的文件或文件夹的导航搜索体验。For any Git repository, go to the path control box (Figure 6), and start typing to initiate a navigation search experience for the file, or folder you are looking for.

Find a file or folder

(图 6)查找文件或文件夹
Find a file or folder
(Figure 6) Find a file or folder

确认删除存储库Confirmation for deleting repos

为防止意外删除存储库,现在必须键入想要删除的存储库的名称,以确认操作。To prevent accidental repository deletions, you now have to type the name of the repository that you wish to delete to confirm the action.

存储库收藏夹Repo favorites

现可收藏最常用的存储库。You can now favorite the repos you work with most frequently. 在存储库选取器(图 7)中,会看到“所有存储库”选项卡和“收藏夹”选项卡。In the repo picker (Figure 7), you will see tabs for All repositories and your Favorites. 单击星标,将存储库添加到收藏夹列表。Click the star to add a repository to your list of Favorites.

Repo favorites

(图 7)存储库收藏夹
Repo favorites
(Figure 7) Repo favorites

在提交历史记录中搜索文件或文件夹Search for a file or folder in commit history

类似于文件选项卡,用户现可搜索存储库中的文件或文件夹,并查看该文件或文件夹的提交历史记录。Similar to the files tab, you can now search for a file or folder in a repository and see the history of commits for that file or folder. 对于任何 Git 存储库,请转到“历史记录”选项卡(图 8)上的路径控制框并开始键入,以启动对正在查找的文件或文件夹的历史记录搜索体验。For any Git repository, go to the path control box on the History tab (Figure 8), and start typing to initiate a history search experience for the file, or folder you are looking for.

Commit history

(图 8)提交历史记录
Commit history
(Figure 8) Commit history

提交页改进Commit page improvements

我们致力于让用户体验新式的高性能“提交详细信息”页和“提交历史记录”页。We made your experience of the commit details page and commit history page up-to-date and highly performant. 能够以鸟瞰视图形式查找和处理与提交相关的重要信息。You can now find, and act on, important information related to the commit at a bird’s-eye view.

以下是提交详细信息页示例(图 9):Here is an example of the commit details page (Figure 9):

Commit details

(图 9)提交详细信息
Commit details
(Figure 9) Commit details

以下是提交历史记录页(图 10):Here is the commit history page (Figure 10):

Commit history

(图 10)提交历史记录
Commit history
(Figure 10) Commit history

在分支中搜索提交Search for commits in branches

现在可以通过单击提交详细信息页上的“在分支中搜索”按钮,在指定分支或标记中搜索提交(图 11)。You can now search for a commit in a specified branch or a tag by clicking on the Search in branches button on the commit details page (Figure 11).

Commit search

(图 11)提交搜索
Commit search
(Figure 11) Commit search

可在窗口中选择标记和分支来进行查看,即使这些分支和标记不包含特定的提交(图 12)。You can select tags and branches in the window to view, even if these branches and tags do not contain the particular commit (Figure 12).

Commit search dialog

(图 12)提交对话
Commit search dialog
(Figure 12) Commit search dialog

讨论控件工具栏 Discussion control toolbar

向拉取请求添加注释时,Markdown 是得力的工具,但它很难记住语法。Markdown is a powerful tool when adding comments to pull requests, but it can be hard to remember the syntax. 为了简化此操作,我们在讨论控件中添加了工具栏(图 13)。To make this easier, we’ve added a toolbar to the discussion control (Figure 13). 这将插入适当的 Markdown 语法以添加常用格式。This will insert the appropriate Markdown syntax to add common formatting. 利用新的工具栏控件,可添加标题、粗体、斜体、链接、代码和列表,还可通过工具栏输入 @ 和 # 提及等功能。Headings, boldface, italics, links, code, and lists can all be added using the new toolbar controls, and features like @ and # mentions can be entered using the toolbar as well. 键盘快捷键提供有(Ctrl+B)粗体、斜体(Crrl+I)和创建链接(Ctrl+K)。Keyboard shortcuts are available for boldface (CTRL + B), italics (CTRL + I), and creating links (CTRL + K).

Discussion toolbar

(图 13)讨论工具栏
Discussion toolbar
(Figure 13) Discussion toolbar

PR 注释改进 PR comment improvements

为帮助用户更好识别 PR 中的新注释,我们在现有讨论线程中针对新答复进行了一些额外补充。To help you better identify the new comments in their PR, we’ve added some additional decoration to the new replies in existing discussion threads. 文件视图中的注释也将突出显示包含新注释的线程(图 14)。Comments in the files view will also highlight threads that have new comments (Figure 14).

PR comment

(图 14)PR 注释改进
PR comment
(Figure 14) PR comment improvements

查看提交的 PR View PRs for a commit

现可在“提交详细信息”页上查看提交的所有关联拉取请求。You can now view all associated pull requests for a commit on the Commit details page. 从下图(图 15)中,可以看到:From the image below (Figure 15), you can see that:

  • 在关联拉取请求下拉列表中,此提交有两个关联拉取请求。In the associated pull request drop-down, there are two pull requests associated with this commit.
  • 拉取请求 #2 将此提交传递到母版。Pull request #2 brought this commit to master.
  • 拉取请求 #1 则将此提交传递到分支 4。The same commit was brought into branch 4 via pull request #1.

PR in commits

(图 15)提交中的 PR
PR in commits
(Figure 15) PR in commits

关注拉取请求Follow a pull request

现在可以关注拉取请求,通过电子邮件提醒知悉任何更改。You can now follow a pull request to stay notified of any changes via email alerts. 上下文菜单中提供“关注”选项(图 16)。The option to Follow is available in the context menu (Figure 16).

Follow a pull request

(图 16)关注拉取请求
Follow a pull request
(Figure 16) Follow a pull request

重启拉取请求合并Restart pull request merge

针对已更新的目标分支,已添加另一个选项重新尝试合并拉取请求。Another option has been added to re-attempt the merge for a pull request where the target branch has been updated. 想要验证目标分支的最近更改没有产生冲突或中断 PR 生成时,可以使用“重启合并”选项。This Restart merge option is useful when you want to verify that recent changes to the target branch haven’t created conflicts or broken your PR build.

拉取请求被拒绝时阻止完成Completion blocked on rejected pull requests

如果 PR 被一个或多个审阅者拒绝,设定了代码评审策略的分支会显示无法完成 PR。Branches that have the code review policy set will show that the PR is unable to be completed if it is rejected by one or more reviewers. 许多用户期待这种行为,因此我们更改了默认行为。Many of you expected this behavior, so we’ve changed the default behavior. 对于需要原始行为的团队,“分支策略设置”页中设有新选项(图 17)。For teams that want the original behavior, there is a new option in the branch policy setting page (Figure 17).

Code review policy

(图 17)代码评审策略
Code review policy
(Figure 17) Code review policy

拉取请求说明中的 MarkdownMarkdown in pull request description

利用 Markdown 让拉取请求说明更生动。Spice up your pull request description with Markdown. 拉取请求说明现已提供用户熟悉和喜爱的与拉取请求注释中相同的 Markdown 支持。The same Markdown support you know and love in pull request comments is now available in the pull request description.

PR 讨论中的附件Attachments in PR discussions

现在可以向拉取请求注释添加附件(图 18)。You can now add attachments to your pull request comments (Figure 18). 通过拖放或浏览添加附件。Attachments can be added by drag-and-drop or by browsing. 对于图像,只需从剪贴板粘贴即可添加附件。For images, attachments can be added by simply pasting from the clipboard. 添加附件会自动更新注释,以包括对新附件的 Markdown 引用。Adding an attachment automatically updates the comment to include a Markdown reference to the new attachment.

Attachments in PR discussions

(图 18)PR 讨论中的附件
Attachments in PR discussions
(Figure 18) Attachments in PR discussions

突出显示具有更新的 PRHighlight the PRs that have updates

现在查看拉取请求更新比以往更简单。It’s now easier than ever to see the updates to your pull requests. 在 PR 列表视图(图 19)中,用于显示更改汇总的新的更新列,会显示上次查看 PR 以来有更改的 PR。In the PR list view (Figure 19), PRs with changes since you've last seen them, are shown with a new updates column that shows a roll-up of the changes.

PR updated files

(图 19)PR 更新文件
PR updated files
(Figure 19) PR updated files

查看有更改的 PR 时,将在概述中看到类似的摘要消息。When you view a PR that has changes, you’ll see a similar summary message in the overview. 新的推送和注释线程会以蓝色突出显示(图 20)。New pushes and comment threads are highlighted in blue (Figure 20). 单击“查看代码更新”链接会导航到“文件”视图,其中显示了上次查看拉取请求以来新更改的差异。Clicking the View code updates link will navigate to the Files view, where a diff of the new changes since you last viewed the pull request is shown. 此功能让用户可以轻松跟进 PR,了解作者为响应反馈做出的更改。This feature makes it easy to follow up on a PR where the author made changes in response to feedback.

PR summary

(图 20)PR 摘要
PR summary
(Figure 20) PR summary

PR 合并策略的分支策略Branch policy for PR merge strategy

我们添加了新的分支策略(图 21),让用户可以为每个分支定义拉取请求的合并策略。We’ve added a new branch policy (Figure 21) that lets you define a strategy for merging pull requests for each branch. 以前,当 PR 完成时,需要选择合并或挤压。Previously, you chose the decision to either merge or squash at the time a PR was completed. 如果启用,此策略将替代你的首选项,强制执行策略设定的要求。If enabled, this policy will override your preferences, enforcing the requirement set by the policy.

Branch policy

(图 21)分支策略
Branch policy
(Figure 21) Branch policy

公开合并冲突信息Expose merge conflict information

如果拉取请求中存在发生冲突的任何文件,现在可以在概述中看到冲突的详细信息(图 22)。If there are any files with conflicts in a pull request, the details about those conflicts will now be visible in the overview (Figure 22). 其中会列出每个冲突文件,以及源和目标分支之间冲突类型的简短摘要。Each conflicting file will be listed, along with a short summary of the type of conflict between the source and target branches.

Merge conflicts

(图 22)合并冲突
Merge conflicts
(Figure 22) Merge conflicts

Markdown 预览按钮Markdown preview button

在提交、推送或拉取请求中查看 Markdown 文件的差异时,现可轻松切换以查看生成的呈现视图。When viewing a diff of a markdown file in a commit, push, or pull request, you can now easily toggle to see the resulting rendered view.

工作项跟踪改进 Work Item Tracking Improvements

改进了范围内标识字段的搜索体验Improved search experience for scoped identity fields

通过此版本,我们更新了范围内标识字段的标识选取器行为,这些字段配置为仅允许分配到特定用户组。With this release, we updated the identity picker behavior for scoped identity fields, i.e. identity fields that are configured to only allow assignment to a specific group of users. 在更新后的体验中,选取器的 MRU 列表和搜索结果将仅返回所配置组的成员,而非显示集合中所有有效用户的结果。In the updated experience, the picker’s MRU list and search results will only return members of the configured group, rather than show results for all valid users for the collection.

生成改进 Build Improvements

回退生成定义Rollback build definitions

可将生成定义回退到以前的版本。You can roll a build definition back to a previous version. 可以在通过转到“历史记录”选项卡编辑生成定义时执行此操作。You can do this when editing a build definition by going to the History tab.

在生成中禁用源的同步和签出Disable the sync and checkout of sources in a build

可以选择禁用对 GIT 自动进行源同步和签出。You can optionally disable the automatic source sync and checkout for Git. 这使得能够在任务或脚本中处理源操作,而不必依赖代理的内置行为。This will enable you to handle the source operations in a task or script, instead of relying on the agent’s built-in behavior. 设置了所有标准的源相关变量,如 Source.Version、Source.Branch 和 Build.SourcesDirectory。All standard source-related variables like Source.Version, Source.Branch, and Build.SourcesDirectory are set.

Git 浅表克隆和 git-lfGit shallow clone and git-lfs

生成代理现支持 Git 浅表克隆和 git-lf。The build agent now supports Git shallow clone and git-lfs. 有关详细信息,请参阅生成定义存储库页For more details, see the Build definition repository page.

生成和发布定义的任务版本管理Task versioning for Build and Release definitions

让用户可以控制生成或发布中运行的任务的主版本。We’ve given you control over the major version of a task that you run in your build or release. 此更改将可以减少因代理和任务版本自动更新而引起的意外错误。This change will result in fewer unpredictable errors that were caused by automatic updates to the agent and task version. 现可在定义的“生成”选项卡或发布定义的“环境”选项卡上指定任务的主版本。You now specify the major version of the task on the Build tab of your definition, or on the Environments tab of your release definition.

发布次要版本时(例如 1.2 到 1.3),会在生成中自动获取更改。When a minor version is released (for example, 1.2 to 1.3), you get that change automatically in your build. 但如果发布新的主版本(例如 2.0),则生成始终锁定为版本 1.3,除非编辑定义并手动更改为新的主版本。But if a new major version is released (for example 2.0), then your build stays locked to version 1.3 until you edit the definition and manually change to the new major version. 生成定义中的标志会提醒出现新的主版本。A flag in the build definition alerts you to new major versions.

包管理需要付款 Payment required for Package Management

若要继续使用包管理,需具有 Visual Studio Enterprise 订阅或有在应用商店购买的包管理许可证。To continue using Package Management, you will either need a Visual Studio Enterprise subscription or a Package Management license purchased in the Marketplace. 可深入了解授权包管理You can read more about licensing Package Management.

打包改进 Package Improvements

包管理中的发布视图Release views in Package Management

我们已向包管理添加了一个名为“发布视图”的新功能(图 23)。We've added a new feature to Package Management called release views (Figure 23). 发布视图表示已提升到发布视图中的源中包版本的子集。Release views represent a subset of package-versions in your feed that you've promoted into that release view. 通过创建发布视图并与包的使用者共享,可以控制他们所依赖的版本。Creating a release view and sharing it with your package's consumers enables you to control which versions they take a dependency on. 在需要频繁发布更新的包版本,但又不想宣布或支持每个已发布版本的持续集成方案中,这会特别有用。This is particularly useful in continuous integration scenarios where you're frequently publishing updated package versions, but may not want to announce or support each published version.

查找 Web Access 快速入门或 learn about release views for package CI/CD(了解包 CI/CD 的发布视图)以开始。Look for the quick start in Web Access or learn about release views for package CI/CD to get started.

Release views in Package Management

(图 23)发布视图
Release views in Package Management
(Figure 23) Release views

包管理中的 npmnpm in Package Management

包管理源现支持用于 Node.js 和 JavaScript 开发的 npm 包。Package Management feeds now support npm packages for Node.js and JavaScript development. 此外,npm 源支持 npmjs.com 作为“带缓存的上游源”。In addition, npm feeds support npmjs.com as an "upstream source with caching." 通过启用此选项,源将以透明方式从 npmjs.com 代理和缓存包(请参阅 Use packages from npmjs.com(使用 npmjs.com 中的包)),这意味着只需一次从 npmjs.com 获取特定 package@version,此后 TFS 服务器将直接处理对该包的请求。By enabling this option, your feed will transparently proxy and cache packages from npmjs.com (see Use packages from npmjs.com), which means that you'll only need to get a particular package@version from npmjs.com once; future requests for that package will be served directly from your TFS server. 如果从 npmjs.com 删除包,仍能从 TFS 获取此包的缓存版本。If a package is removed from npmjs.com, you'll still be able to get the cached version from TFS.

若要开始,请查找“连接源”对话框中的新 npm 选项(图 24)。To get started, look for the new npm option in the Connect to feed dialog (Figure 24).

npm in Package Management

(图 24)包管理中的 npm
npm in Package Management
(Figure 24) npm in Package Management

跨平台改进 Cross Platform Improvements

Xcode 生成任务 xcpretty 格式设置Xcode Build task xcpretty formatting

现可使用 xcpretty 设置 xcode 生成输出的格式(图 25)。You can now format your xcode build output with xcpretty (Figure 25). 还可以使用 xcodebuild 将 JUnit 测试结果发布到 Team Services。You can also publish JUnit test results to Team Services with xcodebuild. 以前,需使用 xctool 作为生成工具发布测试结果。Previously, xctool had to be used as the build tool to publish test results. 现在,若要启用 xcpretty,在 Xcode 任务的“高级”部分选中“使用 xcpretty”并取消选中“使用 xctool”。Now, to enable xcpretty, check Use xcpretty and uncheck Use xctool in the Advanced section of the Xcode task.

Xcode Build formatting

(图 25)Xcpretty 格式设置
Xcode Build formatting
(Figure 25) Xcpretty formatting

发布 Jenkins 测试和代码覆盖率结果Publish Jenkins test and code coverage results

“Jenkins 队列作业”生成和发布任务现可从 Jenkins 作业或管道检索测试和代码覆盖率结果。The Jenkins Queue Job build and release task can now retrieve test and code coverage results from a Jenkins job or pipeline. 这需要在 Jenkins 服务器上安装 Jenkins 5.2.0 或更高版本的 TFS 插件,并配置后期生成操作“收集 TFS/Team Services 的结果”。This requires installation of the TFS Plugin for Jenkins 5.2.0 or later on your Jenkins server and configuring the post-build action Collect Results for TFS/Team Services. 从 Jenkins 检索结果后,才能通过“发布测试结果”或“发布代码覆盖率”生成任务发布结果。After results are retrieved from Jenkins, they can be published with the Publish Test Results or Publish Code Coverage build tasks.

Xcode 8 在 Xcode 生成任务中对包进行签名和导出Xcode 8 signing and exporting packages in the Xcode Build Task

Xcode 任务现支持通过 Xcode 8 自动签名生成项目(图 26)。The Xcode task now supports building your projects using Xcode 8 automatic signing (Figure 26). 可以在生成服务器上手动安装证书和预配配置文件,也可以指定“文件内容”选项通过任务进行安装。You can install the certs and provisioning profiles on the build server manually, or have the task install them by specifying the File Contents options.

Xcode automatic signing

(图 26)Xcode 自动签名
Xcode automatic signing
(Figure 26) Xcode automatic signing

从存档 (.xcarchive) 导出应用包 (IPA) 时,Xcode 8 要求指定导出选项 plist(图 27)。Xcode 8 requires specifying an export options plist (Figure 27) when exporting an app package (IPA) from an archive (.xcarchive). 如果使用 Xcode 8 或 Xcode 7,Xcode 任务现可自动标识导出方法。The Xcode task now automatically identifies the export method if you are using Xcode 8 or Xcode 7. 通过 Xcode 任务可以指定导出方法或指定自定义 plist 文件。You can specify the export method or specify a custom plist file from the Xcode task. 如果使用低于 Xcode 7 的 Xcode 版本,任务将回退到使用旧工具 (xcrun) 创建应用包。If you are using an Xcode version older than Xcode 7, the task falls back to using the old tool (xcrun) for creating the app package.

Xcode export options

(图 27)Xcode 导出选项
Xcode export options
(Figure 27) Xcode export options

测试改进 Test Improvements

运行使用 Visual Studio 2017 生成的测试 Run tests built using Visual Studio 2017

利用 CI/CD 管道中的“部署测试代理”和“运行功能测试”任务(图 28),现可安装适用于 Visual Studio 2017 的测试代理并运行使用 Visual Studio 2017 生成的测试。Using the Deploy Test Agent and Run Functional Tests tasks in CI/CD pipeline (Figure 28), you can now install Test Agents for Visual Studio 2017 and run tests that were built using Visual Studio 2017.

Run tests

(图 28)运行测试
Run tests
(Figure 28) Run tests

验证工作项的 bugVerify bugs from work item

现在可通过重新运行发现 bug 的测试来验证 bug(图 29)。You can now verify a bug by re-running the tests which identified the bug (Figure 29). 可从 bug 工作项窗体上下文菜单调用“验证”选项在 Web 运行程序中启动相关测试用例。You can invoke the Verify option from the bug work item form context menu to launch the relevant test case in the web runner. 使用 Web 运行程序执行验证,并直接在 Web 运行程序中更新 bug 工作项。Perform your validation using the web runner, and update the bug work item directly within the web runner.

Verify bugs from work item

(图 29)验证工作项的 bug
Verify bugs from work item
(Figure 29) Verify bugs from work item

测试步骤操作的 REST 客户端帮助程序REST client helpers for Test Step operations

现可使用添加到 REST 客户端的帮助程序类,在测试用例工作项中创建、修改并删除测试步骤和测试步骤附件(请参阅 RestApi 示例)。You will now be able to create, modify, and delete test steps and test step attachments in Test Case work items using the helper classes we have added to the REST client (see the RestApi-Sample).

从 Web 运行程序更新现有 bugUpdate existing bugs from Web Runner

除了从 Web 运行程序创建新 bug,现在还可以更新现有 bug(图 30)。In addition to creating new bugs from the Web runner, now you can also update an existing bug (Figure 30). 收集所有诊断数据后,重现步骤和现有会话中的可跟踪性链接将自动添加到现有 bug。All the diagnostic data collected, repro steps, and links for traceability from the current session are automatically added to the existing bug.

Test runner

(图 30)更新现有 bug
Test runner
(Figure 30) Update existing bug

Web 运行程序中的测试用例说明Test case description in Web Runner

测试用例说明字段经常用于捕获所需的先决条件,然后才启动测试用例。The test case description field was often used for capturing the prerequisites required before the test case execution can start. 借助此更新,现在可以通过使用“显示说明”选项(图 31)在 Web 运行程序中查看测试用例说明信息。With this update, you are now be able to view the test case description information in the Web runner by using the Show description option (Figure 31).

Test case description

(图 31)测试用例说明
Test case description
(Figure 31) Test case description

测试中心贡献点Test hub contribution point

在“测试计划”中心增添了新的贡献点(“ms.vss-test-web.test-plan-pivot-tabs”)(图 32),让开发人员可将扩展作为数据透视表选项卡写入,该选项卡显示在“测试”和“图表”选项卡的旁边。We have added a new contribution point (“ms.vss-test-web.test-plan-pivot-tabs”) (Figure 32) within the Test plan hub to allow developers to write extensions as a pivot tab that appears next to the Tests and Charts tab.

Contribution point

(图 32)贡献点
Contribution point
(Figure 32) Contribution point

删除测试项目Delete test artifacts

在此版本之前,删除选项仅限用于工作项。Prior to this release, your delete option was limited to work items. 借助此更新,现可通过使用工作项窗体上下文菜单中的“永久删除”(图 33)选项,同时从“测试”中心和“工作”中心永久删除测试项目(测试计划、测试套件、测试用例、共享参数和共享步骤)。With this update, you now have the ability to permanently delete test artifacts—test plans, test suites, test cases, shared parameters, and shared steps—both from the Test hub and the Work hub, by using the Permanently delete (Figure 33) option in the work item form context menu.

Delete test artifacts

(图 33)删除测试项目
Delete test artifacts
(Figure 33) Delete test artifacts

测试计划收藏夹Favorites for Test Plans

现可收藏最常用的测试计划。You can now favorite the Test Plans you work with most frequently. 在“测试计划”选取器中,可以看到“所有”测试计划选项卡和“收藏夹”选项卡(图 34)。In the Test Plans picker, you will see tabs for All your Test Plans and Favorites (Figure 34). 单击星标,将测试计划添加到收藏夹列表。Click the star icon to add a Test Plan to your list of favorites. 可从测试计划选取器或新帐户主页的“收藏夹”选项卡上访问收藏的测试计划。The favorited Test Plans are accessible in the Test Plans picker and from the Favorites tab in the new account home page. 还可通过搜索标题字段筛选测试计划(图 35)。You can also filter Test Plans by searching on the title field (Figure 35).

Test plans

(图 34)测试计划
Test plans
(Figure 34) Test plans

Test favorites

(图 35)测试收藏夹
Test favorites
(Figure 35) Test favorites

托管自动测试的测试影响分析Test Impact Analysis for managed automated tests

现可通过 VSTest 任务的“版本 2.* (预览)”版中的复选框进行托管自动测试的测试影响分析(图 36)。Test Impact Analysis for managed automated tests is now available via a checkbox in the Version 2.* (preview) version of the VSTest task (Figure 36).

Test impact analysis

(图 36)测试影响分析
Test impact analysis
(Figure 36) Test impact analysis

如果启用,将仅运行验证给定代码更改需要的相关托管自动测试集。If enabled, only the relevant set of managed automated tests needed to validate a given code change, will run. 测试影响分析需要最新版本的 Visual Studio,并且目前在 CI 中针对托管自动测试支持该分析。Test Impact Analysis requires the latest version of Visual Studio, and is presently supported in CI for managed automated tests.

测试和反馈扩展的 Firefox 支持Firefox support for Test & Feedback extension

我们非常荣幸地宣布适用于 Firefox 的测试和反馈扩展已正式发布。We are happy to announce the General Availability of the Test & Feedback extension for Firefox. 应用商店站点可以下载 Firefox 加载项。You can download the Firefox add-on from our marketplace site.

注意:对 Microsoft Edge 浏览器的支持还正在开发中;请继续关注后续更新。Note: Support for the Edge browser is also in the works; stay tuned for more updates.

Release Management 改进 Release Management Improvements

发布中的变量组支持 Variable groups support in Release

变量组用于对变量及其值进行分组,使它们在多个发布定义之间可用。Variable groups are used to group your variables and their values to make them available across multiple release definitions. 还可管理变量组的安全性,并确定谁有权从发布定义中查看、编辑和使用变量组的变量。You can also manage security for variable groups and chose who can view, edit, and consume the variables from the variable groups in your release definitions.

打开“生成和发布”中心的“库”选项卡,然后在工具栏中选择“+变量组”(图 37)。Open the Library tab in the Build & Release hub and choose + Variable group in the toolbar (Figure 37). 现在,可仅在发布定义中使用变量组。Currently, variable groups can be consumed only in release definitions. 查找有关变量组的详细信息,请参阅 Release definitions in Microsoft Release Management(Microsoft Release Management 中的发布定义)。Find more information about variable groups, Release definitions in Microsoft Release Management.

创建(图 37)、然后编辑(图 38)变量组,如下所示:Create (Figure 37), then edit (Figure 38) a variable group, as shown below:

Create variable group

(图 37)创建变量组
Create variable group
(Figure 37) Create variable group

Edit variable group

(图 38)编辑变量组
Edit variable group
(Figure 38) Edit variable group

发布中的多个计划Multiple schedules in releases

想要在一天中计划多次创建发布?Want to schedule your releases to be created more than once a day? 现可在发布定义中配置多个计划触发器(图 39)。You can now configure multiple scheduled triggers in a release definition (Figure 39).

Release schedule

(图 39)发布计划
Release schedule
(Figure 39) Release schedule

生成和发布中的内联服务连接Inline service connections in Build and Release

借助此功能,可以在生成/发布定义中创建服务连接,而无需导航到“服务”选项卡。将对以声明方式定义的所有扩展(例如 Docker、Jenkins、VMWare 和 SCVMM)自动启用此功能。With this feature, you can create service connections right in the build/release definition without navigating to the Services tab. This will be auto-enabled for all extensions which are defined declaratively, such as Docker, Jenkins, VMWare, and SCVMM.

在此之前,发布定义仅可从当前项目链接项目源。Until now, release definitions could only link artifact sources from the current project. 现还可从另一项目链接生成项目(图 40)。Now, you can link build artifacts (Figure 40) from another project as well. 链接项目时,项目下拉列表会列出帐户中的所有项目。While linking an artifact, the project drop down will list all the projects in the account.

Link build artifacts

(图 40)链接生成项目
Link build artifacts
(Figure 40) Link build artifacts

Azure 资源组改进Azure resource group improvements

在此版本之前,Azure 资源组任务无法验证 ARM 模板语法,或者是在没有实际部署资源的情况下接受它。Prior to this release, the Azure resource group task could not validate the ARM template syntax, or it would be accepted without actually deploying the resources. 此增强功能允许使用称为“仅验证”的新部署模式,可在创建实际 Azure 资源之前找出模板创作的问题。This enhancement allows a new deployment mode called Validation Only, where you can find problems with the template authoring before creating actual Azure resources.

Azure 资源组任务的另一个增强功能是允许增量部署或完整部署(图 41)。Another enhancement to the Azure resource group task is to allow either incremental, or complete deployments (Figure 41). 以前,任务使用增量模式部署 ARM 模板。Previously, the task deployed the ARM templates using the Incremental mode. 然而,这不会修改未在模板中指定的资源组中已存在的资源。However, it did not modify resources that existed in the resource group not specified in the template. 完整模式会删除不在模板中的资源。Complete mode deletes resources that are not in your template. 默认为增量模式。The default is incremental mode.

Azure resource groups

(图 41)Azure 资源组
Azure resource groups
(Figure 41) Azure resource groups

Azure CLI 任务Azure CLI task

新的 Azure CLI 任务(图 42)支持在跨平台代理(如 Windows、Linux 和 Mac)上运行 Azure CLI 命令。The new Azure CLI task (Figure 42) supports running Azure CLI commands on cross platform agents like Windows, Linux, and Mac. 该任务支持经典订阅和 ARM 订阅。The task supports both Classic and ARM subscriptions. 它支持两种脚本提供模式,一种是作为链接项目,另一种是作为内联脚本。It supports two modes of providing the script, one as a linked artifact and another as an inline script.

Azure CLI task

(图 42)Azure CLI 任务
Azure CLI task
(Figure 42) Azure CLI task

代码搜索更新 Code Search Update

在 TFS 2017 Update 1 中,代码搜索服务包括 Elasticsearch 版本 2.4.1。In TFS 2017 Update 1, the Code Search service includes Elasticsearch version 2.4.1. 如果在运行 TFS 2017 的服务器上配置代码搜索服务,将在 TFS 升级过程中更新代码搜索服务。If the Code Search service is configured on a server running TFS 2017, the Code Search service will be updated as part of the TFS upgrade. 如果在远程服务器上配置代码搜索服务,则会将安装程序随附的“搜索服务包”的内容复制到远程计算机,并按照自述文件中的说明手动升级搜索服务。If the Code Search service is configured on a remote server, then copy the content of the Search Service Package provided with the installer to the remote machine and follow the instructions in the readme file to upgrade the search service manually.

代码见解改进 Code Insights Improvements

SonarQube MSBuild 任务SonarQube MSBuild tasks

由 SonarSource 提供的扩展现推出 SonarQube MSBuild 任务。SonarQube MSBuild tasks are now available from an extension provided by SonarSource. 有关详细信息,请阅读 SonarSource have announced their own SonarQube Team Services / TFS integration(SonarSource 已推出自己的 SonarQube Team Services/TFS 集成)。For more details, please read SonarSource have announced their own SonarQube Team Services / TFS integration.

管理改进 Administration Improvements

新的通知设置体验New notification settings experience

通知可帮助你和团队随时了解 Team Services 项目中的活动。Notifications help you and your teams stay informed about activity in your Team Services projects. 借助此更新,现在能更轻松地管理你和团队收到的通知。With this update, it’s now easier to manage what notifications you and your teams receive.

现可在配置文件菜单中拥有自己的帐户级体验,用于管理通知设置(图 43)。You now have your own account-level experience in the profile menu for managing your notifications setting (Figure 43).

Notification settings

(图 43)通知设置
Notification settings
(Figure 43) Notification settings

此视图用于管理所创建的个人订阅(图 44)。This view lets you manage personal subscriptions you create (Figure 44). 它还显示团队管理员在帐户中为所有项目创建的订阅。It also shows subscriptions created by team administrators for all projects in the account.

Manage personal subscriptions

(图 44)管理个人订阅
Manage personal subscriptions
(Figure 44) Manage personal subscriptions

详细了解管理个人通知设置Learn more about managing personal notification settings.

addProjectReports 现位于 TfsConfig 中addProjectReports is now in TfsConfig

现在可以使用 addProjectReports 命令向团队项目添加报表。You can now use the command addProjectReports to add reports to your team projects. 这就是先前的 Power Tool 命令,现在是 TfsConfig.exe 命令的一部分。This was a previous Power Tool command and is now part of the TfsConfig.exe command. 有关详细信息,请参阅 Upload reports to a team project(向团队项目上传报表)。For more information, see Upload reports to a team project.

弃用团队聊天室 Team Room Deprecation

借助与 TFS 和 Team Services(如 SlackMicrosoft Teams)良好集成的众多优秀解决方案,我们决定从 TFS 和 Team Services 弃用团队聊天室功能。With so many good solutions available that integrate well with TFS and Team Services, such as Slack and Microsoft Teams, we made a decision to deprecate our Team Room feature from both TFS and Team Services. 如果正在使用 Team Services,会看到新的黄色横幅上宣布此计划。If you are working in Team Services, you will see a new yellow banner appear that communicates our plan. 今年晚些时候,我们会计划完全关闭团队聊天室功能。Later this year, we plan to turn off the Team Room feature completely.

你可以使用多种替代方法。There are several alternatives you can use. 通知中心和聊天都使用团队聊天室。The Team room is used both for a notification hub as well as for chat. TFS 和 Team Services 已与许多其他协作产品集成,包括 Microsoft TeamsSlackHipChatCampfireFlowdockTFS and Team Services already integrate with many other collaboration products including Microsoft Teams, Slack, HipChat, Campfire, and Flowdock. 还可以使用 Zapier 创建自己的集成,或非常精细地控制显示的通知。You can also use Zapier to create your own integrations, or get very granular control over the notifications that show up.

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

Markdown 不再支持文件链接 Markdown no longer supports file links

在 Update 1 中,欢迎页、团队仪表板上的 Markdown 小组件和看板上的“完成的定义”不再支持其 Markdown 中的文件链接。With Update 1, welcome pages, the markdown widget on team dashboards, and the Definition of Done on the Kanban boards will no longer support file links in their Markdown. 可将文件链接作为文本包括在 Markdown 中作为解决方法。As a workaround, you can include your file link as text in the Markdown. 有关详细信息,请参阅 Markdown guidance(Markdown 指南)。For more information, see Markdown guidance.

发布过程模板编辑器 Announcing the Process Template Editor

我们发布了 Visual Studio 2017 的过程模板编辑器扩展。We have released the Process Template Editor extension for Visual Studio 2017. 此扩展提供了查看和更新过程模板的简便方法,还提供了更新全局列表和工作项类型,以及查看工作项字段属性的相关工具。This extension provides a convenient method for viewing and updating process templates, as well as tools for updating global lists and work item types, and viewing the attributes of work item fields. 此扩展适用于 TFS 2017 和 TFS 2017 Update 1 服务器。This works against TFS 2017 and TFS 2017 Update 1 servers.


已知问题 Known Issues

从 TFS 2013 或更早版本升级到 TFS 2017 更新 1 版本 15.112.26301.0 时,生成不起作用Build doesn't work when upgrading to TFS 2017 Update 1 build 15.112.26301.0 from TFS 2013 or earlier

  • 问题:Issue:

    请注意,仅当升级到 2017 年 3 月 7 日发布的 TFS 2017 更新 1 版本 15.112.26301.0 时才会发生此问题。Note that this issue only occurs if you upgraded to TFS 2017 Update 1 build 15.112.26301.0, released on 7 March, 2017. 如果升级到 3 月 9 日发布的版本 15.112.26307.0,不会发生此问题。If you upgraded to build 15.112.26307.0, released on 9 March, you will not encounter this.

    从 TFS 2013(RTM 或任何更新)或更早版本升级后,生成将显示错误“不存在名称为 TaskReferenceId 的计数器”。After upgrading from TFS 2013 (RTM or any update) or earlier, Build shows an error of "counter with name TaskReferenceId does not exist".

  • 解决方法:Workaround:

    在升级后的集合数据库上运行以下脚本:Run the following script on your upgraded collection databases:

    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 版或更高版本Customers should update to Git LFS version 1.3.1 or higher

  • 问题:Issue:

    不再支持 1.3.1 之前的 Git LFS 版本。Git LFS versions before 1.3.1 are no longer supported.

  • 解决方法:Workaround:

    如果使用 Git LFS,必须更新到 Git LFS 版本 1.3.1 或更高版本。If you are using Git LFS, you must update to Git LFS version 1.3.1 or higher. LFS 客户端的早期版本与此版 TFS 中的身份验证更改不兼容。Older versions of the LFS client are not compatible with authentication changes in this version of TFS.

工作项窗体无法正确呈现Work item forms do not render correctly

  • 问题:Issue:

    如果在工作项窗体中使用旧的自定义控件(如旧的多值控件),工作项窗体可能无法呈现。If you use a legacy custom control in your work item forms, such as the legacy multi-value control, your work item forms may fail to render.

  • 解决方法:Workaround:

    需要更新到控件的最新版本。You will need to update to the latest version of your control. 可在此处找到有关 TFS 2017 Update 1 的最新多值控件。You can find the latest multi-value control for TFS 2017 Update 1 here.

工作项窗体在 Web 中无法正确呈现Work item forms do not render correctly in the web

工作项窗体不会隐藏只读字段Work item forms do not hide read only fields

  • 问题:Issue:

    如果使用旧的工作项窗体,且该窗体的 HideReadonlyEmptyFields 属性已在布局中设置为 true,则窗体将不能隐藏只读字段和空字段。If you use old workitem form with HideReadonlyEmptyFields property set to true in the layout, your form will fail to hide read only and empty fields.

  • 解决方法:Workaround:

    目前没有解决方法。There is no workaround at this time. 这将在 TFS 2017 Update 2 中得到修复。This will be fixed in TFS 2017 Update 2.

工作项窗体在查看时变为已更新Work item forms become dirty on viewing

  • 问题:Issue:

    在选择使用新工作项窗体时,仅 TFS 2017 Update 1 上的 IE 11 出现此问题。This issue is specific to IE 11 on TFS 2017 Update 1 when opting into the new work item form. 如果将配置文件设置为法语、韩语、俄语、土耳其语、日语或中文,并且将工作项分配给任何标识,则在查看工作项时,可看到“工作项”窗体显示为已更新。If you have your profile set to French, Korean, Russian, Turkish, Japanese, or Chinese, and the work item is assigned to any identity, you will see the work item form as dirty when viewing the work item. 如果保存此工作项,则“分配到”字段将设置为未分配。If you save the work item, the Assigned To field will be set to unassigned.

  • 解决方法:Workaround:

    使用除 IE11 外的其他浏览器。Use another browser besides IE11. 如果使用 IE11,请在工作项工具栏中单击“撤消/刷新”,还原正确的“分配到”值。If you are using IE11, click undo/refresh from the work item toolbar to restore the correct Assigned To value.

未能缓存上游 NPM 包Caching of upstream NPM packages fail

  • 问题:Issue:

    如果 TFS 服务器由代理运行,则上游 NPM 包的缓存将失败。If your TFS server is behind a proxy, the caching of upstream NPM packages will fail.

  • 解决方法:Workaround:

    如果 TFS 服务器由公司代理运行,请对 TFS 服务器 web.config 进行如下更改(即 %ProgramFiles%\Microsoft Team Foundation Server 15.0\Application Tier\Web Services\web.config)。If your TFS server is behind a corporate proxy, make the following changes to your TFS server web.config (i.e. %ProgramFiles%\Microsoft Team Foundation Server 15.0\Application Tier\Web Services\web.config).

    将此配置块:Replace this configuration block:

      <!-- 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>
    

    替换为以下内容:With this:

      <defaultProxy useDefaultCredentials="true" />
    

代码下拉菜单显示错误的“版本控制”页面Code dropdown menu shows incorrect Version Control pages

  • 问题:Issue:

    如果导航到 Git 存储库的管理员页面(如下图所示)(图 45)并单击“代码”中心,将看到“变更集”链接和“搁置集”链接,而不是“历史记录”链接。If you navigate to the admin page on a git repository, as shown in the image below (Figure 45), and click on the Code hub, they will see the Changesets and Shelvesets links, instead of the History link.

    Code dropdown menu

    (图 45)代码下拉菜单
    Code dropdown menu
    (Figure 45) Code dropdown menu

  • 解决方法:Workaround:

    导航退出 Git 存储库管理员页面,即可看到正确的链接。Navigate out of the git repository admin page and you will see the correct links.

扩展未自动更新Extensions are not being auto-updated

  • 问题:Issue:

    如果将以前版本的 TFS 升级到 TFS 2017,并在连接模式下运行 TFS 2017,那么扩展将不会按正常情况自动更新。If you upgrade a prior version of TFS to reach TFS 2017 and are running TFS 2017 in connected mode then your extensions will not be auto-updated as they should be.

  • 解决方法:Workaround:

    目前没有解决方法。There is no workaround at this time. 该问题已解决,自动更新行为将通过 TFS 2017 Update 2 实现。We have fixed the issue and the auto update behavior will reach you through TFS 2017 Update 2. 如果由于某种原因等不到 Update 2,请通过支持渠道与我们联系,我们会提前共享该修复程序。If for any reason you cannot wait for Update 2 then reach us through the Support channel and we shall share the fix earlier.

如果未正确设置公共 URL,将无法获取扩展或扩展无法正常运行Extensions cannot not be acquired or will not function correctly if Public URL is not set correctly

  • 问题:Issue:

    从 Visual Studio Marketplace 获取扩展将失败。Extension acquisition from Visual Studio Marketplace will fail.

    已获取的扩展很可能无法按预期运行。Already acquired extensions are likely to not function as expected.

  • 解决方法:Workaround:

    已在 TFS 2017 Update 2 中对此进行修复,建议升级。This is fixed in TFS 2017 Update 2 and we recommend upgrading. 如果需要此功能在 Update 1 中运行,可在 TFS 服务器管理员控制台中设置“公共 URL”,以便可从公司环境中的另一个系统访问该 URL(图 46)。If you need this to work on Update 1, set the ‘Public URL’ in the TFS Server Administrator Console such that the URL is reachable from another system within your corporate environment (Figure 46).

Code menu

(图 46)代码菜单
Code menu
(Figure 46) Code menu