Visual Studio 2017 版本 15.0 版本資訊 Visual Studio 2017 version 15.0 Release Notes

上次更新日期 2018/1/31

開發人員社群 | 系統需求 | 相容性 | 可散發的程式碼 | 授權條款 | 部落格 | 發行節奏Developer Community | System Requirements | Compatibility | Distributable Code | License Terms | Blogs | Release Rhythm


注意事項

若要查看 Visual Studio 2017 最新版本的資訊,請瀏覽目前的版本資訊頁面。To see information on the latest version of Visual Studio 2017, please visit the current Release Notes page.

注意事項

您可前往頁面底端的頁尾,切換語言設定。You can switch your language setting by going to the footer at the bottom of the page. 按一下 圖示並選取希望使用的語言。Click on the icon and select your desired language.


意見反應Feedback

請提供您的意見!We’d love to hear from you! 若有任何問題,請透過安裝程式或 Visual Studio IDE 本身右上角的回報問題選項來通知我們。For issues, let us know via the Report a Problem option in the upper right-hand corner of either the installer or the Visual Studio IDE itself. Feedback Icon 圖示位在右上角。The Feedback Icon icon is located in the upper right-hand corner. 您可以在 Visual Studio 開發人員社群 (英文) 追蹤您的問題,也可以在那裡詢問問題和尋找解答。You can track your issues in the Visual Studio Developer Community, where you can ask questions and find answers. 您也可以透過 UserVoice (英文) 提供產品建議,或透過即時聊天支援取得免費的安裝協助。You can also make a product suggestion through UserVoice or get free installation help through our Live Chat support.


發行日期:2018 年 1 月 9 日 - Visual Studio 2017 15.0 版 (26228.21)Release Date: January 9, 2018 - Visual Studio 2017 version 15.0 (26228.21)

已修正的問題Issues Fixed

.NET Core 的 Microsoft 資訊安全諮詢 Microsoft Security Advisories for .NET Core

  • CVE-2018-0786 X509 憑證驗證中的安全性功能略過:Microsoft 發佈此資訊安全諮詢旨在提供 .NET Core 1.0、1.1 及 2.0 公用版本之弱點的相關資訊。CVE-2018-0786 Security Feature Bypass in X509 Certificate Validation Microsoft is releasing this security advisory to provide information about a vulnerability in the public versions of .NET Core 1.0 and 1.1, and 2.0. 此諮詢也提供了指導,讓開發人員了解如何才能正確地更新應用程式。This advisory also provides guidance on what developers can do to update their applications correctly. 此資訊安全諮詢亦適用 .Net Native for UWP。This security advisory is also applicable to .NET native for UWP.

    Microsoft 發現公用版本的 .NET Core 有一項安全性弱點,攻擊者可以提供標示為無法作特定用途的憑證,但有一個元件會為此用途使用該憑證。Microsoft is aware of a security vulnerability in the public versions of .NET Core where an attacker could present a certificate that is marked invalid for a specific use, but a component uses it for that purpose. 而這項動作會忽略增強金鑰使用方法標記。This action disregards the Enhanced Key Usage tagging.

    此安全性更新確保該 .NET Core 元件會完整驗證憑證,進而解決此弱點。The security update addresses the vulnerability by ensuring that .NET Core components completely validate certificates. 建議系統管理員將 .NET Core 執行階段的版本更新到 1.0.9、1.1.6 及 2.0.5。System administrators are advised to update their .NET Core runtimes to versions 1.0.9, 1.1.6 and 2.0.5. 建議開發人員將 .NET Core SDK 的版本更新到 2.1.4 或 1.1.7。Developers are advised to update their .NET Core SDK to version 2.1.4 or 1.1.7.

  • CVE-2018-0764 剖析 XML 文件時發生服務阻斷:Microsoft 發佈此資訊安全諮詢旨在提供 .NET Core 1.0、1.1 及 2.0 公用版本之弱點的相關資訊。CVE-2018-0764 Denial of Service when parsing XML documents Microsoft is releasing this security advisory to provide information about a vulnerability in the public versions of .NET Core 1.0 and 1.1, and 2.0. 此諮詢也提供了指導,讓開發人員了解如何才能正確地更新應用程式。This advisory also provides guidance on what developers can do to update their applications correctly.

    XML 文件的不當處理使 Microsoft 注意到所有公開版本的 .NET Core 中都有阻斷服務的弱點。Microsoft is aware of a Denial of Service vulnerability in all public versions of .NET core due to improper processing of XML documents. 成功惡意探索此弱點的攻擊者可能會使 .NET 應用程式發生服務阻斷。An attacker who successfully exploited this vulnerability could cause a denial of service against a .NET application. 遠端未經驗證的攻擊者可以藉由向 .NET Core 應用程式發出特製要求,來惡意探索此弱點。A remote unauthenticated attacker could exploit this vulnerability by issuing specially crafted requests to a .NET Core application.

    此更新修正了 .NET Core 處理 XML 文件的方式,進而解決此弱點。The update addresses the vulnerability by correcting how .NET core handles XML document processing. 建議系統管理員將 .NET Core 執行階段的版本更新到 1.0.9、1.1.6 及 2.0.5。System administrators are advised to update their .NET Core runtimes to versions 1.0.9, 1.1.6 and 2.0.5. 建議開發人員將 .NET Core SDK 的版本更新到 2.1.4 或 1.1.7。Developers are advised to update their .NET Core SDK to version 2.1.4 or 1.1.7.


發行日期:2017 年 12 月 6 日 - Visual Studio 2017 15.0 版 (26228.18)Release Date: December 6, 2017 - Visual Studio 2017 version 15.0 (26228.18)

已修正的問題Issues Fixed

ASP.NET Core 資訊安全諮詢 ASP.NET Core Security Advisories

Microsoft 已發行 ASP.NET Core 的資訊安全諮詢。Microsoft has released security advisories for ASP.NET Core. 您可在 ASP.NET Core 存放庫的對應公告中找到詳細資料。Details can be found in corresponding announcements in the ASP.NET Core repo. 請注意下列資訊:Please note the following information:

  • CVE-2017-8700 略過 CORS 會使資訊洩漏:這是 ASP.NET Core 1.0 與 1.1 的資訊安全漏洞,在其中可略過跨原始資源共用 (CORS),而導致資訊洩漏。CVE-2017-8700 CORS bypass can enable Information Disclosure: There is a security vulnerability in ASP.NET Core 1.0 and 1.1 where Cross-Origin Resource Sharing (CORS) can be bypassed, leading to information disclosure.

以 ASP.NET Core 1.0 及 ASP.NET Core 1.1 建立的新專案,現已可使用包含上述安全性更新的套件版本。New projects created with ASP.NET Core 1.0 and ASP.NET Core 1.1 will now use package versions that include the above security update. 若為現有的專案,使用者可以使用 [管理 NuGet 套件] 對話方塊將其套件更新為較新版本。For existing projects, users can update their packages to newer versions using the Manage NuGet Packages dialog.


發行日期:2017 年 11 月 14 日 - Visual Studio 2017 15.0 版 (26228.17)Release Date: November 14, 2017 - Visual Studio 2017 version 15.0 (26228.17)

已修正的問題Issues Fixed

.NET Core 與 ASP.NET Core 的資訊安全諮詢 .NET Core and ASP.NET Core Security Advisories

Microsoft 已發行 .NET Core 與 ASP.NET Core 的資訊安全諮詢。Microsoft has released security advisories for .NET Core and ASP.NET Core. 您可以在 .NET CoreASP.NET Core 存放庫的對應公告中找到詳細資料。Details can be found in corresponding announcements in the .NET Core and ASP.NET Core repos. 請注意下列資訊:Please note the following information:

  • CVE-2017-8585 格式錯誤的憑證會導致服務阻斷:這是 .NET Core 1.0、1.1 與 2.0 的資訊安全漏洞,格式錯誤的憑證或其他 ASN.1 的格式化資料在 Linux 及 macOS 上會因為無限迴圈引發服務阻斷。CVE-2017-8585 Malformed Certificate can cause Denial of Service: There is a security vulnerability in .NET Core 1.0, 1.1 and 2.0 where a malformed certificate or other ASN.1 formatted data could lead to a denial of service via an infinite loop on Linux and macOS. 建議系統管理員將 .NET Core 執行階段的版本更新到 1.0.8、1.1.5 及 2.0.1。System administrators are advised to update their .NET Core runtimes to versions 1.0.8, 1.1.5 and 2.0.1. 建議開發人員將 .NET Core SDK 的版本更新到 2.0.3 或 1.1.5。Developers are advised to update their .NET Core SDK to version 2.0.3 or 1.1.5.

  • CVE-2017-8700 略過 CORS 會使資訊洩漏:這是 ASP.NET Core 1.0 與 1.1 的資訊安全漏洞,在其中可略過跨原始資源共用 (CORS),而導致資訊洩漏。CVE-2017-8700 CORS bypass can enable Information Disclosure: There is a security vulnerability in ASP.NET Core 1.0 and 1.1 where Cross-Origin Resource Sharing (CORS) can be bypassed, leading to information disclosure.

  • CVE-2017-11879 Open Redirect 會導致權限提高:這是 ASP.NET Core 2.0 的資訊安全漏洞,當 Open Redirect 存在時,會導致權限提高。CVE-2017-11879 Open Redirect can cause Elevation Of Privilege: There is a security vulnerability in ASP.NET Core 2.0 where an Open Redirect exists, leading to Elevation Of Privilege.

  • CVE-2017-11770 阻斷服務弱點:這是 ASP.NET Core 1.0、1.1 及 2.0 的資訊安全漏洞,當應用程式透過 Windows Http.Sys 裝載時,格式錯誤的要求可能會導致服務阻斷。CVE-2017-11770 Denial Of Service Vulnerability: There is a security vulnerability in ASP.NET Core 1.0, 1.1 and 2.0 when the application is hosted through Windows Http.Sys where a malformed request can lead to a Denial Of Service.

以 ASP.NET Core 1.0 及 ASP.NET Core 1.1 建立的專案現在會使用包含上述安全性更新的套件版本。New projects created with ASP.NET Core 1.0 and ASP.NET Core 1.1 will now use package versions that include the above security updates. 若為現有的專案,使用者可以使用 [管理 NuGet 套件] 對話方塊將其套件更新為較新版本。For existing projects, users can update their packages to newer versions using the Manage NuGet Packages dialog.


發行日期:2017 年 9 月 18 日 - Visual Studio 2017 版本 15.0 (26228.16)Release Date: September 18, 2017 - Visual Studio 2017 version 15.0 (26228.16)

已修正的問題Issues Fixed


發行日期:2017 年 5 月 23 日 - Visual Studio 2017 15.0 版 (26228.13)Release Date: May 23, 2017 - Visual Studio 2017 version 15.0 (26228.13)

已修正的問題Issues Fixed

  • 離線安裝情節已不再需要網際網路存取。Offline install scenarios no longer require internet access.

發行日期︰2017 年 3 月 31 日 - Visual Studio 2017 版本 15.0 (26228.12)Release Date: March 31, 2017 - Visual Studio 2017 version 15.0 (26228.12)

更新摘要Summary of Updates

  • 適用於 Visual Studio 2017 的 Xamarin.VS 延伸模組現在支援 Xcode 8.3、iOS 10.3、watchOS 3.2 及 tvOS 10.2 工具與 API。We now support Xcode 8.3, iOS 10.3, watchOS 3.2, and tvOS 10.2 tools and APIs in the Xamarin.VS Extension for Visual Studio 2017.

發行日期︰2017 年 3 月 28 日 - Visual Studio 2017 版本 15.0 (26228.10)Release Date: March 28, 2017 - Visual Studio 2017 version 15.0 (26228.10)

已修正的問題Issues Fixed

這些是組建 26228.10 中已解決的客戶回報問題:These are the customer-reported issues addressed in build 26228.10:


發行日期︰2017 年 3 月 14 日 - Visual Studio 2017 版本 15.0 (26228.09)Release Date: March 14, 2017 - Visual Studio 2017 version 15.0 (26228.09)

已修正的問題Issues Fixed

這些是 26228.09 組建中已解決的客戶回報問題:These are the customer-reported issues addressed in build 26228.09:


發行日期︰2017 年 3 月 7 日 - Visual Studio 2017 版本 15.0 (26228.04)Release Date: March 7, 2017 - Visual Studio 2017 version 15.0 (26228.04)

更新摘要Summary of Updates

開發:快速巡覽、撰寫並修正您的程式碼Develop: Navigate, write, and fix your code fast

  • 全新安裝體驗具有降低的最小使用量可提升安裝速度及自訂程度,另提供離線安裝的支援。New Installation Experience has a reduced minimum footprint for faster and more customizable installations, as well as support for offline installs.
  • Visual Studio IDE 提供 Visual Studio 2017 中的廣泛增強功能,可以在您的應用程式與內部部署或雲端中的任一服務之間啟用連線,這些增強功能包括縮短啟動和解決方案載入時間、改進登入及身分識別、改進程式碼瀏覽、開啟資料夾檢視及已連線的服務。Visual Studio IDE provides a broad range of enhancements in Visual Studio 2017, including reduction in startup and solution load times, sign in and identity improvements, improved code navigation, open folder view, and connected services enable connections between your app and any service on-premises or in the cloud.
  • 2015 與 2017 之間的 Visual C++ 沒有重大變更。There are no breaking changes for Visual C++ between 2015 and 2017. 編輯器有較佳的 C++14 一致性層級、CMake 支援、組建輸送量及產能。Better C++14 conformance level, CMake support, build throughput, and productivity in the editor.
  • C# 和 Visual Basic 可擴充對新 C# 7.0 與 Visual Basic 15 語言功能的支援,並引進新的重構功能,讓您一個動作即可組織原始程式碼。C# and Visual Basic extend support for new C# 7.0 and Visual Basic 15 language features, and introduces new refactorings that allow you to organize source code with one action.
  • F# 4.1 語言功能的 F# 支援、F# 編譯器和 FSharp.Core 的改進,以及根據 Roslyn Workspaces 的新編輯器。F# support for F# 4.1 language features, improvements to the F# compiler and FSharp.Core, and a new editor based on Roslyn Workspaces.
  • JavaScript 和 TypeScript 的 TypeScript 2.1 適用於 Visual Studio 中的所有 TypeScript 專案。JavaScript and TypeScript has TypeScript 2.1 available for all TypeScript projects in Visual Studio. 新的 JavaScript 語言服務已正式提供,並預設為啟用狀態。A new JavaScript language service is available and enabled by default.

偵錯:輕鬆偵錯、剖析和診斷Debug: Debug, profile, and diagnose with ease

  • 偵錯和診斷檢修例外狀況協助程式,以及使用 [Run to Click](執行至點選處) 進行更快速的程式碼瀏覽。Debugging and Diagnostics overhaul of the Exception Helper and faster code navigation with Run to Click. 另外在 [診斷工具] 視窗中提供了應用程式事件的新摘要,以及 CPU Tool 的數項改善。Plus, a new summary of your application events in the Diagnostic Tools window and several improvements to the CPU Tool.

測試:使用全方位測試工具撰寫高品質的程式碼Test: Write high-quality code with comprehensive testing tools

  • 即時單元測試現在可以在編輯器上即時以視覺化方式呈現單元測試結果和程式碼涵蓋範圍。Live Unit Testing can now visualize unit testing results and code coverage live in the editor.
  • 測試工具使用 [測試總管] 來建立自動化與測試案例工作項目的關聯。Testing Tools associate automation with test case work items using the Test Explorer.

共同作業:使用版本控制、變得敏捷、有效率地共同作業Collaborate: Use version control, be agile, and collaborate efficiently

  • Team Explorer 中的新 Git 功能和更新的連線體驗可讓 Visual Studio 2017 中的 Git 用途更廣,您可以輕鬆地找到要連線的專案和存放庫。New Git features in Team Explorer and updated connect experience to do more with Git in Visual Studio 2017 and easily find the projects and repos to which you want to connect.
  • 增強的 Visual Studio 意見反應工作流程具有更具協作性的「回報問題」功能。Enhanced Visual Studio Feedback Workflow has more collaborative Report-A-Problem. 搜尋、遵循並投票,以取得針對所有意見反應的最新更新。Search, follow, and vote to get latest updates on all feedback.

延伸:建置您自己的延伸模組,自訂成您的喜好Extend: Customize to your liking by building your own extensions

  • Visual Studio 延伸模組:建置您自己的延伸模組,將 Visual Studio 自訂成您的喜好。Visual Studio Extensions: Customize Visual Studio to your liking by building your own extensions.
  • 專案與項目範本的探索能力:Visual Studio 取用專案及項目範本的方式有了重大變更,可提升範本探索的效能。Discoverability of Project and Item Templates: There is a breaking change with how Visual Studio consumes project and item templates to improve performance of template discovery.

配備︰利用工具來提高產能並探索新功能Equip: Utilize tooling to increase productivity and explore new capabilities

  • .NET Core 和 ASP.NET Core:這包含新的 MSBuild .NET Core 工具的 1.0 最終版本。.NET Core and ASP.NET Core: This contains the 1.0 final release of the new MSBuild based .NET Core Tools. 您可以使用 Visual Studio 2017 來建立 .NET 標準程式庫、.NET Core 應用程式/程式庫及使用新的 csproj 格式的 ASP.NET Web 專案。Using Visual Studio 2017, you can create .NET Standard libraries, .NET Core apps/libraries, and ASP.NET web projects that use the new csproj format.
  • 通用 Windows App 開發工具:更新包括新版的 .NET 原生工具鏈、.NET Core NuGet 架構、新生產力工具,以及 Windows 10 "Creators Update" SDK 的支援。Tools for Universal Windows App Development: Updates include a new version of the .NET Native toolchain, .NET Core NuGet framework, new productivity tools, and support for the Windows 10 "Creators Update" SDK.
  • Xamarin:Xamarin 4.3 新增 tvOS 的支援,同時改進 iOS Assets Catalog 支援及 XML 編輯體驗。Xamarin: Xamarin 4.3 adds support for tvOS, while also improving iOS Assets Catalog support and the XML editing experience.
  • Visual Studio Tools for Apache Cordova:新的瀏覽器模擬器讓您能夠快速編碼,並立即查看結果。Visual Studio Tools for Apache Cordova: A new browser-based simulator enables you to code fast and see the results immediately.
  • 適用於 Visual Studio 的 Node.js 工具:更新著重於穩定性、效能和整體產品品質。Node.js Tools for Visual Studio: Updates focused on stability, performance, and overall product quality.
  • Visual Studio Tools for Unity:Visual Studio Tools for Unity 3 現在可隨 Visual Studio 新安裝程式中的「使用 Unity 進行遊戲開發」工作負載提供。Visual Studio Tools for Unity: Visual Studio Tools for Unity 3 is now available with the "Game Development with Unity" workload from the new Visual Studio installer.
  • Redgate Data Tools:為使 DevOps 功能擴大至 SQL 資料庫開發,Visual Studio 現在包含 Redgate Data Tools,其中包含 ReadyRoll Core、SQL Search 和 SQL Prompt Core。Redgate Data Tools: To extend DevOps capabilities to SQL database development, Visual Studio now includes Redgate Data Tools, comprising Redgate ReadyRoll Core, SQL Search, and SQL Prompt Core.
  • NuGet:NuGet 現在支援將套件相依性資訊直接儲存在專案檔作為套件參考,同時保留可轉移套件參考的技術。NuGet: NuGet now supports storing package dependency information directly in project files as package references, while maintaining the advances of transitive package references.
  • XAML 應用程式的工具:XAML 執行階段工具列現在可讓您追蹤焦點。Tools for XAML Apps: The XAML runtime toolbar now lets you track focus. XAML 生產力已透過 XAML [編輯後繼續]、XAML 編輯器改善和效能最佳化獲得提升。XAML productivity has been improved with XAML Edit & Continue, improvements to the XAML Editor, and performance optimizations.
  • Data Tools 和 SQL Server:SQL Server Data Tools 的最新更新支援 Azure SQL Database 和 SQL Server 2016 的最新功能。Data Tools and SQL Server: The latest update of SQL Server Data Tools enables support for the newest features in Azure SQL Database and SQL Server 2016.
  • 開發人員分析工具:Visual Studio 2017 包含開發人員分析工具 v8.6,其中包含 Visual Studio 中許多 Application Insights 和 HockeyApp 功能的改進。Developer Analytics Tools: Visual Studio 2017 includes Developer Analytics Tools v8.6 with many improvements to the Application Insights and HockeyApp features in Visual Studio.
  • Office Developer Tools for Visual Studio:包括具有最新功能和更新的 Office Developer Tools。Office Developer Tools for Visual Studio: Includes Office Developer Tools with the latest features and updates.
  • 即時架構相依性驗證:相依性驗證圖 (也稱為分層圖) 的即時通知。Live Architecture Dependency Validation: Real-time notifications of dependency validation diagrams (aka Layer diagrams).
  • 開發人員命令提示字元:已重構指令碼,以支援新的安裝體驗。Developer Command Prompt: Refactored scripts to support the new installation experience.
  • Azure SDK for .NET:現在可從新的 Visual Studio 安裝程式中取得。Azure SDK for .NET: Now available from the new Visual Studio installer.

本版新功能What's New in this Version

安裝體驗 Installation Experience

我們很高興能夠推出全新設計的新版安裝程式,透過此安裝程式,您可以︰We're delighted to introduce our new installer, which was designed from the ground up to:

  • 讓 Visual Studio 的使用量降至最低。Reduce the minimum footprint of Visual Studio.
  • 安裝更快速,對系統影響更小,並可完全解除安裝。Install more quickly, with less system impact, and uninstall cleanly.
  • 讓您更容易選取和安裝所需的功能。Make it easier for you to select and install just the features you need.

第一次安裝 Visual Studio 2017 時,將會有不同於以往的安裝體驗 (圖 1)When you first install Visual Studio 2017, you'll see the new experience (Figure 1):

The new installation experience in Visual Studio 2017

(圖 1) Visual Studio 2017 的新安裝體驗
The new installation experience in Visual Studio 2017
(Figure 1) The new installation experience in Visual Studio 2017

最小安裝的大小雖然只有幾百 MB,但仍包含基本程式碼編輯支援,可支援 20 種以上的語言,包括原始程式碼控制功能。The smallest install is just a few hundred megabytes, yet still contains basic code editing support for more than twenty languages including source code control. 大部分使用者都想要安裝更多程式。Most users will want to install more. 您可以新增一或多個代表通用架構、語言及平台的「工作負載」,從 .NET 桌面開發到採用 Unity 的遊戲開發都涵蓋在內。You can add one or more 'workloads' that represent common frameworks, languages, and platforms - covering everything from .NET desktop development to game development with Unity.

如何更新 Visual StudioHow to Update Visual Studio

若要更新 Visual Studio,請執行 Visual Studio 安裝程式,並按一下 [更新] 按鈕。To update Visual Studio, run the Visual Studio Installer and click the "Update" button.

新安裝程式的意見反應Feedback on the New Installer

您可以從新安裝程式用戶端,使用標題列右上角的_回報問題_和_提供建議_命令來回報問題或傳送稱讚。You can report problems or praise using the Report a Problem and Provide a Suggestion commands from the new installer client in the upper right corner of the title bar. 我們想要知道您在安裝、解除安裝或修改安裝時有無遇到任何問題,以及是否會發生異常安裝的狀況 (例如當機) 或出現未預期的錯誤訊息。We want to know if you experience errors installing, uninstalling, or modifying your installation, as well as abnormal installation times (e.g. hangs) or unexpected error messages.

建立離線安裝的配置和新的命令列安裝支援Creating a Layout for Offline Installation and New Command-Line Installation Support

系統管理員和其他使用者現在可以建立 Visual Studio 的離線配置,其中包含安裝產品所需的所有內容,而不需要存取網際網路。System administrators and other users can now create an offline layout of Visual Studio that contains all content needed to install the product without requiring internet access. 此配置可以是完整產品、工作負載和 (或) 元件的子集,以及一或多個產品地區設定。This layout can be the full product, a subset of workloads and/or components, and one or more product locales. 請注意,建立離線配置需要網際網路存取。Note that creating the offline layout requires internet access. 如需詳細資訊,請參閱建立 Visual Studio 2017 的離線安裝 (英文)For more information, see Create an offline installation of Visual Studio 2017.

安裝暱稱 Installation Nickname

Visual Studio Enterprise 和 Community (還有其他產品) 現在可以並排安裝在同一部電腦上。Visual Studio Enterprise and Community (among other products) can now be installed side-by-side on the same computer. 若要更簡單地識別這些安裝,您可以指定簡短名稱或「暱稱」。To make identifying these installations simpler, you can specify a short name or "nickname". 例如,如果您要安裝 Visual Studio Enterprise,然後安裝 Community,則兩者在 [開始] 功能表上會相同。For example, if you were to install Visual Studio Enterprise, and then install Community, both would appear the same on the start menu. 您可以提供第二個版本的暱稱 (例如 "community"),而 [開始] 功能表項目會顯示 "Visual Studio 2017 (community)" 和 "Developer Command Prompt for Visual Studio 2017 (community)" 這類名稱。You can give the second one a nickname like "community", and the start menu items will appear with names such as "Visual Studio 2017 (community)" and "Developer Command Prompt for Visual Studio 2017 (community)".


Visual Studio IDE Visual Studio IDE

IDE 改善IDE Improvements

  • Visual Studio 已經過最佳化,可減少啟動時間和解決方案載入時間。Visual Studio has been optimized to reduce startup time and solution load time. Visual Studio 第一次啟動時速度加快至少 50%。The very first launch of Visual Studio is at least 50% faster.
  • Visual Studio 現在會監視影響啟動、解決方案負載或編輯的延伸模組效能。Visual Studio will now monitor extension performance that impacts startup, solution load, or editing. 您將會透過 IDE 中的通知列,收到延伸模組執行效能不佳的警示。You will receive alerts about poorly performing extensions via the Notification bar in the IDE. 新的效能中心 (也可透過 [說明] > [管理 Visual Studio 效能] 使用) 讓您不僅能夠檢視影響效能的延伸模組,還能夠發現影響啟動效能的工具視窗,以及變更其啟動載入行為。The new Performance Center (also available via Help > Manage Visual Studio Performance) lets you view not only extensions that are impacting performance, but also discover tool windows that are impacting your startup performance and change their startup load behavior.
  • 現在已可在 Visual Studio 安裝程式中選取 Visual Studio 的 GitHub 延伸模組。The GitHub extension for Visual Studio can be selected in the new Visual Studio installer.
  • [重新載入解決方案] 取代了 [重新載入所有專案],讓 VS 外部分支之間的切換效能變得更好。Reload All Projects has been replaced with Reload Solution to support better performance when switching branches external to VS. 使用 Git 命令列切換分支時,若在切換分支之後才選擇 [重新載入解決方案],可以將效能最大化。When using the Git command line to switch branches, choose Reload Solution after the branch has switched to achieve the maximum performance improvement.
  • 已增強 .NET Core 和 ASP.NET Core 專案的檔案萬用字元功能。File globbing capabilities for .NET Core and ASP.NET Core projects have been enhanced. 如需詳細資料,請參閱專案檔案萬用字元See project file globbing for more details.
  • 您會在複製後,自動進入您存放庫的資料夾檢視。You are now automatically taken to the folder view of your repository after cloning. 您可以使用方案總管中的新解決方案選取項目清單,即可檢視檔案或開啟解決方案。You can view files or open Solutions with the new Solution selection list in the Solution Explorer.
  • 新引進的外部服務主機將取代 VSHub。A new external service host is being introduced that will replace VSHub. 此新服務主機屬於外部處理序,在 [工作管理員] 中會顯示為 ServiceHub.Host.CLR.*.exe 及 ServiceHub.Host.Node.x86.exe。This new service host is an external process and will appear in Task Manager as ServiceHub.Host.CLR.*.exe, as well as ServiceHub.Host.Node.x86.exe. 此主機最終會消除 VSHub 帶來的 localhost http 流量,其應減少 Fiddler 使用者所回報的雜訊。This host will ultimately eliminate the localhost http traffic that was introduced with VSHub which should alleviate the noise Fiddler users reported.
  • 發行前版本授權到期訊息更清楚地傳達目前的授權狀態。Pre-release license expiration messages more clearly communicate the current license state.
  • 螢幕助讀程式現在更容易存取 [帳戶設定] 對話方塊。The Account Settings dialog is now more accessible to screen readers.
  • 安裝 Visual Studio 安裝程式中的「說明檢視器」元件,即可立即使用離線說明。Offline help is now available by installing the Help Viewer component from the Visual Studio installer.
  • 您現在可以在 [語言套件] 索引標籤上使用 Visual Studio 安裝程式,隨時新增和移除多個使用者介面語言。您可以使用 [工具] > [選項] > [國際設定],在已安裝的使用者介面語言中選取目前的使用者介面語言。You can now add and remove multiple user interface languages at any time using the Visual Studio installer on the Language Packs tab. You can select the current user interface language among those installed using Tools > Options > International Settings.
  • 版本控制狀態列讓將本機存放庫發行至 SCC 主機以及追蹤未認可 (圖 2) 和未推入的工作 (圖 3) 更為容易。The version control status bar makes it easier to publish local repos to an SCC host and keep track of uncommitted (Figure 2) and un-pushed work (Figure 3).

Version Control - Unpublished commits example

(圖 2) 版本控制 - 未發行的認可範例
Version Control - Unpublished commits example
(Figure 2) Version Control - Unpublished commits example

Version Control - No pending changes example

(圖 3) 版本控制 - 無暫止的變更範例(
Version Control - No pending changes example
(Figure 3) Version Control - No pending changes example

改進登入及身分識別Sign In and Identity Improvements

我們推出了新的身分識別服務,可讓您在 Microsoft 開發人員工具中共用使用者帳戶。We introduced a new identity service that allows you to share user accounts across Microsoft developer tools. 在 Visual Studio 中,我們可以共用 Team 總管、Azure Tools、Windows 市集發行等功能。Within Visual Studio, this sharing includes features such as Team Explorer, Azure Tools, Windows Store publishing, and more. 這些功能現在全都使用通用一致的登入管道。These features now share a common and consistent sign in experience.

Visual Studio 的改善項目也包括了將一些改善項目部署到服務端,讓使用者可以安全地保持登入,不強制每隔 12 小時必須重新登入。Along with improvements to Visual Studio, we have completed the deployment of some improvements on the service side that allow users to safely stay signed in and eliminate the forced sign in every 12 hours. 這解決了最多人回報的登入問題。This addresses the most commonly reported sign in issue. 深入了解 Visual Studio 提示變少了Learn more about fewer Visual Studio prompts.

起始頁Start Page

重新設計後的起始畫面有新的 [開啟] 和 [建立] 功能︰The redesigned Start Page has new Open and Create facilities:

  • 從 VSTS 取得遠端儲存機制,或使用更著名的 MRU 輕鬆開啟本機專案和方案。Acquire remote repos from VSTS or use our more prominent MRU to open local projects and solutions easily.
  • 起始頁 MRU 會顯示您已在其他電腦上複製的儲存機制,讓您可以輕鬆複製到目前的電腦。The Start Page MRU shows repos you've cloned on other machines so you can easily clone them on your current machine.
  • 使用可搜尋的範本和最近使用的範本清單,直接從起始頁建立新的專案。Create a new project directly from the Start Page with searchable templates and a list of recently used templates. 最近使用的範本也將透過個人化帳戶在 Visual Studio 執行個體漫遊。Recently used templates will also roam across Visual Studio instances with a personalization account.
  • 利用起始頁上的 [從 VSTS 簽出] 選項,就能快速從 VSTS 啟動新的複製品。Quickly launch the new Clone from VSTS experience through the "Checkout from VSTS" option on the Start Page.
  • 可關閉的 [入門] 區段。A dismissible "Get Started" section.
  • [新聞] 區段現在已可摺疊:The News section is now collapsible:
    • [新聞摘要] 中新增項目的已更新徽章。Updated badge on newly added items in the News Feed.
    • 摺疊 [新聞摘要] 時若出現新的項目,[新聞摘要] 展開器上會出現徽章。Badge on News Feed expander if new items appear when the News Feed is collapsed.
  • 調整視覺設計,以因應對於較小螢幕上項目遭到截斷以及空間利用的意見反應。Refined visual design to address feedback about truncated elements on smaller screens and utilization of empty space.

新的起始畫面顯示於下方 (圖 4):The new Start page is shown below (Figure 4):

Start Page with Get Started and News

圖 4) 起始畫面中的 [開始使用] 與 [新聞](
Start Page with Get Started and News
(Figure 4) Start Page with Get Started and News

改進程式碼瀏覽 Improved Code Navigation

Visual Studio 2017 中的程式碼巡覽功能有重大改良:We've made significant improvements to code navigation features in Visual Studio 2017:

  • 移至所有 可讓您快速尋找及移至檔案、類型、方法與程式碼中的其他項目。Go To All (Ctrl+, or Ctrl+ T) lets you quickly find and go to files, types, methods, and other elements in your code. 您可透過此方式尋找任何項目,即使是在大型程式碼基底中。It allows you to locate items of any kind, even in large code bases. 不僅如此,若您知道您要尋找的項目,也能輕鬆加以篩選。What’s more, if you know what kind of item you’re after, you can filter down easily. 在 C#、Visual Basic 和 F# 中,我們也新增了「模糊」比對,如果您拼錯類型名稱仍會得到結果。In C#, Visual Basic, and F#, we have also added "fuzzy" matching such that if you misspell a type name you will still get results. 我們也讓 移至行 體驗更加現代化。We've also modernized the Go To Line (Ctrl + G) experience. 您可以在 [編輯] 功能表(圖 5) 和 (圖 6) 的最上方找到 [移至] 命令系列。You can find the Go To family of commands at the top of the Edit Menu (Figure 5) and (Figure 6).

Go To Results Filtered

(圖 5) 前往 [篩選的結果]
Go To Results Filtered
(Figure 5) Go To Results Filtered

Go To Line

(圖 6) 移至指定行
Go To Line
(Figure 6) Go To Line

  • [尋找所有參考] (Shift + F12) 已大幅修改 (目前僅限於 C#、Visual Basic、F# 及 C++),其提供進階的分組、篩選、排序、搜尋參考結果,以及以彩色標示結果 (適用於 C# 及 VB),讓您可以更清楚了解您的參考,並能正確地找到您所需要的程式碼行。Find All References (Shift+F12) has been overhauled (currently for C#, Visual Basic, F#, and C++), providing advanced grouping, filtering, sorting, searching within reference results, and colorization for results (for C# and VB), so you can get a clear understanding of your references and get to the line of code you need with confidence. 滑鼠暫留在參考項目時,即會顯示工具提示與原始程式碼中參考的內容 (適用於 C# 及 VB)。On mouse hover on a reference item, a tooltip is displayed with the context of the reference in source code (for C# and VB). 若切換工具列中的 [保留結果] 按鈕,[尋找所有參考] 的下一個引動過程即會在新視窗中填入參考結果。By toggling on the Keep Results button in the toolbar, the next invocation of Find All References will populate reference results in a new window. 這可讓您將目前的結果維持在現有的視窗中 (圖 7)。This allows you to keep the current results in the existing window (Figure 7).

Find All References

(圖 7) 尋找所有參考
Find All References
(Figure 7) Find All Reference

  • 編輯器中現在繪有結構輔助線,可讓您輕易為所使用的程式碼將結構視覺化。Structure Guide Lines are now drawn in the editor so that you can easily visualize the structure of the code that you are working in. 滑鼠暫留時即會顯示工具提示 (圖 8),內含相對於其上階區塊的目前程式碼區塊內容。On mouse hover, a tooltip (Figure 8) is displayed containing the context of the current code block relative to its ancestor blocks. 目前支援結構輔助線的檔案包括 C#、Visual Basic、F# 和 XAML 檔案,以及透過 TextMate 文法所支援的任何檔案。Structure Guide Lines are currently supported for C#, Visual Basic, F#, and XAML files, and for any files supported via TextMate grammars. 將 [文字編輯器] > [一般] 類別下的 [顯示結構輔助線] 核取方塊取消核取,即可在 [工具] > [選項] 對話方塊中停用這項功能。This feature may be disabled in the Tools > Options dialog by unchecking the Show structure guide lines checkbox under the Text Editor > General category.

Structure Guide Lines

(圖 8) 結構輔助線
Structure Guide Lines
(Figure 8) Structure Guide Lines

透過 EditorConfig 的程式碼慣例支援Coding Convention Support via EditorConfig

Visual Studio 編輯器現在支援 EditorConfig,可讓開發人員在不同的編輯器與 IDE 間定義並維護一致的編碼樣式慣例。The Visual Studio editor now supports EditorConfig, which allows developers to define and maintain consistent coding style conventions between different editors and IDEs. 如需詳細資訊,請參閱文件 (英文),如需如何使用 .editorconfig 檔案來管理您的 .NET 程式碼樣式的詳細資訊,請參閱 .NET 文件 (英文)See documentation for more details, and .NET documentation for information on how to use .editorconfig files to govern your .NET code style.

開啟資料夾Open Folder

[開啟資料夾] 能讓您在不具專案和解決方案的情況下,便於使用程式碼基底。Open Folder is a convenient way for you to work with code bases without projects and solutions. 從 [檔案] > [開啟] > [資料夾] 開啟資料夾檢視,再選取要瀏覽的資料夾。Open Folder View from File > Open > Folder, and then select a folder to navigate. 您可以使用方案總管 (圖 9) 來開啟及編輯檔案。You can open and edit files using the Solution Explorer (Figure 9). 許多熱門語言皆具有語法醒目提示及符號巡覽 (GoTo) 的支援。Many popular languages have syntax highlighting and support for symbol navigation (GoTo).

The new Open Folder feature in the Visual Studio IDE

(圖 9) Visual Studio IDE 中的新 [開啟資料夾] 功能
The new Open Folder feature in the Visual Studio IDE
(Figure 9) The new Open Folder feature in Visual Studio IDE

此外,某些語言具有直接來自資料夾的進階 IntelliSense 及偵錯支援︰Additionally, some languages have advanced IntelliSense and debugging support directly from the folder:

  • C++ (CMake)。C++ (CMake).
  • Node.js - JavaScript/TypeScript.Node.js - JavaScript/TypeScript.
  • C# 與 VB。C# & VB.

您可以使用 F5 及方案總管中的檔案操作功能表,進行建置或偵錯。You can build or debug by using F5 and the file context menu in the Solution Explorer. 為了獲得最佳體驗,請務必安裝您所使用語言的工作負載。For the best experience, make sure you install the workload for the languages you are working with.

資料夾檢視也支援下列各項︰The folder view also supports the following:

  • 使用 移至 搜尋資料夾中的各個程式碼。Search across the code in your folder with GoTo (Ctrl+).
  • 將方案總管資料夾檢視範圍限定在子資料夾。Scope the Solution Explorer folder view to subfolders.
  • 從檔案總管或方案總管的命令提示字元中開啟資料夾。Open folders in Explorer or the Command Prompt from the Solution Explorer.
  • 透過 [選擇解決方案] 下拉式清單,輕鬆切換開啟之資料夾或存放庫內的解決方案。Easily toggle between Solutions in the opened folder or repository with the Solution selection dropdown.
  • 設定偵錯,並使用 launch.vs.json 啟動設定。Configure debug and launch settings with launch.vs.json. 以滑鼠右鍵按一下可進行偵錯的檔案,然後選取 [偵錯並啟動設定]。Right-click on a file that can be debugged and select Debug and Launch Settings.
  • 使用 tasks.vs.json 設定工作及自訂組建。Configure tasks and customize build with tasks.vs.json. 以滑鼠右鍵按一下任何檔案,然後選取 [設定工作設定]。Right-click on any file and select Configure Task Settings.
  • Launch.vs.json 和 tasks.vs.json 在 JSON 編輯器中有 IntelliSense。Launch.vs.json and tasks.vs.json have IntelliSense in the JSON editor.

大幅改善開啟資料夾及切換資料夾檢視與解決方案檢視時的效能。The performance of opening folders and toggling between folder view and solution view has been drastically improved.

輕量型解決方案負載Lightweight Solution Load

輕量型解決方案負載可讓載入大型解決方案更加快速。Lightweight Solution load enables faster loading of large Solutions. 這可大幅改善大型解決方案的解決方案載入時間和記憶體使用量。It can provide substantial improvements in Solution load time and memory usage for large Solutions. 此功能依預設未啟用,可在 IDE 中以各解決方案為基礎或全域啟用。The feature is not enabled by default and can be enabled on a Solution-by-Solution basis or globally in the IDE. 若要全域啟用,請巡覽至 [工具] > [選項],並選取 [專案和方案] 下的 [一般]\ (圖 10),或是使用 [快速啟動] 搜尋 [Lightweight Solution load]\ (輕量型方案負載)。To enable globally, navigate to Tools > Options, select General under Projects and Solutions (Figure 10) or by searching for "Lightweight Solution load" with Quick Launch. 您可在 [解決方案屬性] 窗格中為個別的解決方案開啟及關閉該功能。The feature can be turned on and off for individual Solutions in the Solution properties pane.

The new Lightweight Solution load feature in the Visual Studio IDE

(圖 10) Visual Studio IDE 中的新 [輕量型方案負載] 功能
The new Lightweight Solution load feature in the Visual Studio IDE
(Figure 10) The new Lightweight Solution load feature Visual Studio IDE

輕量型解決方案負載最適合內含 C# 或混合 C# 和 C++ 專案的大型解決方案。Lightweight Solution Load is best suited for large solutions that contain C# or a mix of C# and C++ projects. 如果我們偵測到您正在使用大型解決方案,可能會提示您啟用該功能。You may be prompted to enable the feature if we detect that you are working with large solutions. 您可以在 Visual Studio 部落格中找到這項功能的詳細資料。You can find more details about this feature on the Visual Studio blog.

已持續改善完整方案組建的效能,現在類似於傳統方案負載。Performance of full Solution builds has been improved substantially, now at parity with conventional Solution load.

語法顏色標示、自動完成、程式碼片段及 [巡覽至] 搜尋支援更多種語言Syntax Colorization, Autocomplete, Snippet, and "Navigate To" Search Support for More Languages

以我們在 Visual Studio 2015 的更新中所新增的支援為建置基礎,Visual Studio 2017 現在支援更多語言的語法顏色標示和自動完成功能。Building on the support we added in the Visual Studio 2015 updates, Visual Studio 2017 now supports syntax colorization and autocomplete for an increased range of languages. 此外,這些語言當中有一些也支援透過 巡覽至 和 (或) 程式碼片段來巡覽。In addition, some of these languages also support navigation via "Navigate To" (Ctrl+), and/or Code Snippets.

以下所記載的語言檔案在新的「Visual Studio 核心編輯器」中支援這些功能,即使並未安裝任何工作負載以明確支援所提到的語言亦同。Files for the languages noted below, support these features in the new Visual Studio Core Editor even when no workloads have been installed to explicitly support the language in question. 如果已安裝提供語言支援的工作負載 (例如「.NET 桌面應用程式開發」工作負載、含 C++ 工作負載的「Windows 桌面應用程式開發」等),可能會提供更多的語言支援,包括 IntelliSense,以及 Light Bulbs 這類的其他進階語言功能。If a workload that provides language support is installed (e.g., the .NET Desktop Application Development workload, the Windows Desktop App Development with C++ workload, etc.), then more extensive language support including IntelliSense and other advanced language features like Light Bulbs may be provided.

依照支援層級列出的語言檔案類型︰Language file types listed by support level:

  • 僅支援語法顏色標示和自動完成︰Supports only Syntax Colorization and Autocomplete:
    • Bat、Clojure、CoffeeScript、CSS、Docker、F#、Groovy、INI、Jade、Javadoc、JSON、LESS、LUA、Make、Markdown ++、Objective-C、Perl、PowerShell、Python、Rust、ShaderLab、SQL、Visual Basic .NET、YAML。Bat, Clojure, CoffeeScript, CSS, Docker, F#, Groovy, INI, Jade, Javadoc, JSON, LESS, LUA, Make, Markdown ++, Objective-C, Perl, PowerShell, Python, Rust, ShaderLab, SQL, Visual Basic .NET, YAML.
  • 支援程式碼片段 (還有語法顏色標示和自動完成)︰Supports Code Snippets (in addition to Syntax Colorization and Autocomplete):
    • CMake、C++、C#、Go、Groovy、HTML、Java、Javadoc、JavaScript、Lua、Perl、PHP、R、Ruby、Shellscript、Swift、XML。CMake, C++, C#, Go, Groovy, HTML, Java, Javadoc, JavaScript, Lua, Perl, PHP, R, Ruby, Shellscript, Swift, XML.
  • 支援巡覽至 (還有語法顏色標示和自動完成)︰Supports Navigate To (in addition to Syntax Colorization and Autocomplete):
    • C++、C#、Go、Java、JavaScript、PHP、TypeScript、Visual Basic。C++, C#, Go, Java, JavaScript, PHP, TypeScript, Visual Basic.

開始使用專案概觀頁面Getting Started with Project Overview Pages

我們引進新建立專案的全新開始使用體驗。We have introduced a completely new getting started experience for freshly created projects. 我們已將目前的開始使用頁面取代為新應用程式組態設計工具中的 [概觀] 索引標籤,並著重動作的頁面,可讓您快速啟動並執行!We've replaced current getting started pages with an Overview tab in our new App Configuration Designer and focused the page on the actions that will get you up and running quickly! ASP.NET 4.x ASP.NET Core 和 Cordova 專案皆已啟用此功能 (圖 11)。This has been enabled in ASP.NET 4.x ASP.NET Core, and Cordova projects (Figure 11).

Project Overview

(圖 11) 專案概觀
Project Overview
(Figure 11) Project Overview

使用已連線的服務連接至服務 Connecting to Services Using Connected Services

在舊版中,此功能稱為「服務功能」。In a previous release, this feature was named Service Capabilities. 我們已將名稱變更為「已連線的服務」。We've changed the name to Connected Services.

「已連線的服務」是 Visual Studio 2017 的新式「新增已連線的服務」或「新增服務參考」功能。Connected Services is the modern "Add Connected Service" or "Add Service Reference" feature of Visual Studio 2017. 「已連線的服務」功能可讓您更輕鬆地將應用程式連接至服務。The Connected Services feature makes it easier to connect your app to services. 方案總管中有名為「已連線的服務」的新節點,適用於 Web 和行動專案類型。A new node called "Connected Services" is available in the Solution Explorer for Web and Mobile project types. 按兩下此節點即會在 Visual Studio 中開啟一個新整頁索引標籤,供您探索可連接的熱門 Microsoft 服務。Double-clicking this node will open a new full page tab in Visual Studio where you can discover popular Microsoft services you can connect to.

選取 [已連線的服務] 頁面 (圖 12) 上的服務即會叫用設定您專案用的 [已連線的服務精靈],並下載必要的 NuGet 套件,以協助您快速順利地開始編寫服務的程式碼。Selecting a service on the Connected Services page (Figure 12) will invoke the Connected Services Wizard that configures your project, and downloads the necessary NuGet packages to get you started coding against your service quickly and painlessly.

Connected Services

(圖 12) 已連線的服務
Connected Services
(Figure 12) Connected Services

工具和功能的產品內取得 In-Product Acquisition of Tools and Features

Visual Studio 2017 讓您可以輕鬆取得額外工作負載和元件,而不需要離開 IDE (圖 13)。Visual Studio 2017 makes it easy to acquire additional workloads and components without leaving the IDE (Figure 13). 利用 [快速啟動],以尋找並開始任何工作負載或個別元件的 Visual Studio 安裝程式。Leverage Quick Launch to find and kick-off the Visual Studio Installer for any Workload or Individual component.

In-product acquisition via Quick Launch

圖 13) 透過快速啟動的產品內取得(
In-product acquisition via Quick Launch
(Figure 13) In-product acquisition via Quick Launch

如果您找不到所尋找的範本,也可以從 [新增專案] 對話方塊中開啟 Visual Studio 安裝程式 (圖 14)If you can't find the templates you’re looking for, the Visual Studio Installer can also be opened from within the New Project dialog (Figure 14).

In-product acquisition via New Project Dialog

(圖 14) 透過快速啟動的產品內取得
In-product acquisition via New Project Dialog
(Figure 14) In-product acquisition via Quick Launch


Visual C++ Visual C++

Visual Studio 2017 有多項 Visual C++ 環境的更新與修正。Visual Studio 2017 brings many updates and fixes to the Visual C++ environment. 感謝您回報 Bug!Thank you for reporting bugs! 我們修正了編譯器及工具中超過 250 個 Bug 與回報的問題,其中多為客戶透過 Microsoft Connect 所提交。We've fixed over 250 bugs and reported issues in the compiler and tools, many submitted by customers through Microsoft Connect. 在此版本中,我們已處理 STL 的效能改善。In this release, we worked on performance improvement of the STL. 現在預設使用新的 SQLite 型資料庫引擎。The new SQLite-based database engine is now being used by default. 這會加速資料庫作業,如「移至定義」和「尋找所有參考」,也會大幅改善初始解決方案剖析階段。This will speed up database operations like Go To Definition and Find All References, and will significantly improve initial solution parse time. 我們現在提供安裝原始 C++ 工作負載時更細微的安裝體驗。We now provide a more granular installation experience for installing the original C++ workload. 我們已新增可選取的元件,讓您能夠只安裝所需的工具。We have added selectable components that enable you to install just the tools that you need. Visual Studio 中的 CMake 支援已準備好進入黃金時段!CMake support in Visual Studio is ready for primetime! 將 CMake 專案直接載入至 VS,並立即開始編寫程式碼。Load your CMake projects directly into VS and start coding now. 已改善「開啟資料夾」的 C++ 體驗 – 因此,將您的原始程式碼提供給 VS,而不需要建立任何 VS 方案和專案。“Open Folder” C++ experience has been improved – so bring your source code to VS without the need to create any VS solutions and projects. [巡覽至] 也稱為 [移至],是一組新巡覽篩選的概括性字詞。Navigate To is now known as Go To, an umbrella term for a set of new navigation filters. 這會讓找到正確結果變得更容易,在較大型的程式碼基底中尤其如此。This will make it easier to find the right results, especially in larger code bases.

C++ 程式碼分析C++ Code Analysis

用於強制 C++ Core Guidelines 的 C++ Core Checkers 現已隨 Visual Studio 散發。The C++ Core Checkers for enforcing the C++ Core Guidelines are now distributed with Visual Studio. 只要在專案屬性頁的 [程式碼分析延伸模組] 對話方塊中啟用檢查工具 (圖 15),您執行程式碼分析時,延伸模組即包含在其中。Simply enable the checkers in the Code Analysis Extensions dialog in the project's property pages (Figure 15) and the extensions will be included when you run code analysis.

CppCoreCheck properties page

(圖 15) CppCoreCheck 屬性頁面
CppCoreCheck properties page
(Figure 15) CppCoreCheck properties page

C++ 編譯器C++ Compiler

我們更新了 C++ 編譯器和標準程式庫,加強對 C++11 和 C++14 功能的支援,以及對 C++17 標準某些預期功能的基本支援。We've updated the C++ compiler and standard library with enhanced support for C++11 and C++14 features, as well as preliminary support for certain features expected to be in the C++17 standard. 編譯器支援一般化 constexpr 和 NSDMI 彙總,完整呈現 C++14 標準中新增的功能。With support for generalized constexpr and NSDMI for aggregates, the compiler is complete for features added in the C++14 Standard. 請注意,編譯器仍缺乏一些來自 C++11 和 C++98 標準的功能。Note that the compiler still lacks a few features from the C++11 and C++98 Standards. Visual Studio 2017 允許搭配使用 /sdl 與 /await。Visual Studio 2017 allows using /sdl with /await. 我們移除了協同程式的 /rtc 限制。We removed /rtc limitation with Coroutines.

此版本為最佳化及程式碼產生方面帶來多項改善。This release brings several improvements in optimization and code generation. 其中幾項值得注意的改善內容包括:Some notable improvements include:

  • 改善重複的程式碼產生:支援常數整數除法的自動向量化,更容易識別 memset 模式。Improved code generation of loops: support for automatic vectorization of division of constant integers, better identification of memset patterns.
  • 改善的程式碼安全性:改善發出緩衝區溢位編譯器診斷,而且 /guard:cf 現在會防護產生跳躍表的 switch 陳述式。Improved code security: improved emission of buffer overrun compiler diagnostics, and /guard:cf now guards switch statements that generate jump tables.
  • /debug:fastlink 選項已經過改良,可為大型元件提供比在 Visual Studio 2015 中快上 30% 的連結時間。The /debug:fastlink option has been improved to provide 30% faster link times on large components than in Visual Studio 2015.
  • 使用共同常式時,已移除實驗關鍵字 "yield" (在 /await 參數下)。When using co-routines, the Experimental keyword "yield" (available under /await switch) has been removed. 您應該更新程式碼以改用 "co_yield”。Your code should be updated to use the "co_yield” instead. 如需詳細資訊,請參閱 Visual C++ 小組部落格 (英文)For more information, see the Visual C++ Team blog.

C++ 程式庫C++ Libraries

  • [STL] basic_string 的效能改善。[STL] Performance improvement of basic_string.
  • [STL] 新增 <any>、<string_view>、apply()、make_from_tuple()。[STL] Added <any>, <string_view>, apply(), make_from_tuple().
  • [STL] std::vector 的正確性和效能經過大幅調整。[STL] std::vector has been overhauled for correctness and performance.
  • [STL] STL 現在會避免為 null 假想指標取值。[STL] The STL now avoids dereferencing null fancy pointers.
  • [STL] 新增 <optional>、<variant>、shared_ptr::weak_type 及 <cstdalign>。[STL] Added <optional>, <variant>, shared_ptr::weak_type, and <cstdalign>.
  • [STL] 允許在 min/max/minmax(initializer_list) 及 min_element/max_element/minmax_element() 中使用 C++14 constexpr。[STL] Enabled C++14 constexpr in min/max/minmax(initializer_list) and min_element/max_element/minmax_element().
  • [STL] 已改進 std::string/std::wstring 的移動建構函式的效能,改進幅度超過 3 倍。[STL]Improved the performance of std::string/std::wstring's move constructors by more than 3x.
  • [STL] 如需完整的 STL 改進清單,請參閱︰Visual C++ 小組部落格[STL] For a complete list of STL improvements see: Visual C++ Team blog.
  • [ATL] 另一組 name-lookup 一致性修正。[ATL] Yet another set of name-lookup conformance fixes.
  • [ATL] 現有的移動建構函式和移動指派運算現在已正確標示為非擲回。[ATL] Existing move constructors and move assignment operators are now properly marked as non-throwing.
  • [ATL] 取消隱藏和 atlstr.h 中區域靜態安全執行緒初始化有關的有效警告 C4640。[ATL] Un-suppress valid warning C4640 about thread safe init of local statics in atlstr.h.
  • [ATL] 區域靜態的安全執行緒初始化已在 [使用 ATL AND 建置 DLL] 時在 XP 工具組中自動關閉。[ATL] Thread Safe Initialization of local statics was automatically turned off in the XP toolset when [using ATL AND building a DLL]. 不過,此情況以已不再適用。This is no longer the case. 如果需要關閉安全執行緒初始化,您可以在您的專案設定中新增 /Zc:threadSafeInit-。You can add /Zc:threadSafeInit- in your Project settings if having thread safe initialization off is desired.
  • [AMP] 稽核程式庫及修正錯字。[AMP] Audited library and fixed typos.
  • [VCRuntime]「控制流程防護」符號的新標頭 ‘cfguard.h’。[VCRuntime] New header ‘cfguard.h’ for Control Flow Guard symbols.

C++ IDEC++ IDE

C++ 原生專案的組態變更效能現已提升,而 C++/CLI 專案的組態變更效能則更佳。Configuration change performance is now better for C++ native projects and much better for C++/CLI projects. 解決方案組態在首次啟用時將會較快,而它在後續啟用時將能幾乎瞬間完成。When a solution configuration is activated for the first time it will now be faster and all subsequent activations of this solution configuration will be almost instantaneous.

現在預設使用新的 SQLite 型資料庫引擎。The new SQLite-based database engine is now being used by default. 這會加速資料庫作業,如「移至定義」和「尋找所有參考」,也會大幅改善初始解決方案剖析階段。This will speed up database operations like Go To Definition and Find All References, and will significantly improve initial solution parse time. 設定已移至 [工具] > [選項] > [文字編輯器] > [C/C++] > [進階] (原位於 [C/C++] > [實驗] 下)。The setting has been moved to Tools > Options > Text Editor > C/C++ > Advanced (it was formerly under ...C/C++ > Experimental).

我們已對未使用先行編譯標頭檔的專案及檔案提升 IntelliSense 效能,將會為目前檔案中的標頭建立自動先行編譯標頭檔。We've improved IntelliSense performance on projects and files not using precompiled headers – an Automatic Precompiled Header will be created for headers in the current file.

其他更新包括:Other updates include:

  • 我們也為錯誤清單中的 IntelliSense 錯誤新增了錯誤篩選及說明 (圖 16)。We've added error filtering and help for IntelliSense errors in the error list (Figure 16). 現在按一下錯誤資料行即可進行篩選 (圖 17)。Clicking on the error column now allows for filtering (Figure 17). 此外,按一下特定錯誤或按下 F1 鍵,將會啟動線上搜尋錯誤訊息。Also, clicking on the specific errors or pressing F1 will launch an online search for the error message.

Error List

(圖 16) 錯誤清單
Error List
(Figure 16) Error List

Error List Filtered

(圖 17) 篩選出的錯誤清單
Error List Filtered
(Figure 17) Error List Filtered

  • 新增依種類篩選成員清單項目的功能 (圖 18)Added the ability to filter Member List items by kind (Figure 18).

Member List Filtered

(圖 18) 篩選出的成員清單
Member List Filtered
(Figure 18) Member List Filtered

  • 新增了實驗性的預測性 IntelliSense 功能,提供成員清單中出現項目的內容相關篩選。Added a new experimental Predictive IntelliSense feature that provides contextually-aware filtering of what appears in the Member List.
  • 新的 [尋找所有參考] UI 會在 C++ 程式碼結果中包含要讀取或寫入變數的相關資訊。The new Find All References UI includes information about whether you are reading from or writing to a variable in the results for C++ code.

  • [點改為箭號] IntelliSense 功能已從實驗性改為進階,現在預設為啟用。The Dot-to-Arrow IntelliSense feature has been moved from experimental to advanced, and is now enabled by default. 編輯器功能 [展開範圍] 和 [展開優先順序] 也從實驗性改為進階。The editor features Expand Scopes and Expand Precedence have also been moved from experimental to advanced.

  • 實驗性的重構功能 [變更簽章] 及 [擷取函式] 現在預設為可用。The experimental refactoring features Change Signature and Extract Function are now available by default.

  • 啟用了 C++ 專案「讓專案更快載入」的新實驗性功能。We've enabled the new experimental feature for C++ projects ‘Faster project load’. C++ 專案會在您下次開啟時更快載入,之後將以更快速度載入!The next time you open a C++ project it will load faster, and the time after that it will load even faster!

  • [開啟資料夾] 體驗的改良。Improvements to the Open Folder experience. 透過 [開啟資料夾] 載入您的來源,即可編輯及建置非 MSBuild C++ 專案並為其偵錯。Edit, build, and debug your non-MSBuild C++ project by loading your sources through “Open Folder”. 透過這些 json 檔案自訂體驗︰Customize the experience through these json files:

    • CppProperties.json,用以自訂 IntelliSense 及瀏覽體驗。CppProperties.json to customize the IntelliSense and browsing experience.
    • Tasks.vs.json,用以自訂建置步驟。Tasks.vs.json to customize the build steps.
    • Launch.vs.json,用以自訂偵錯經驗。Launch.vs.json to customize the debugging experience.
  • 無須在根資料夾中建立 CppProperties.json 檔案,C++ IntelliSense 即可運作。C++ IntelliSense will work without the need to create a CppProperties.json file in the root folder. 此外,我們新增了下拉式清單,可讓使用者輕易地切換 CMake 和 CppProperties.json 檔案所提供的設定。Along with this, we've added a new dropdown to allow users to easily switch between configurations provided by CMake and CppProperties.json files. 「開啟資料夾:開啟 CMake」專案中具有「開啟資料夾」的 CMake 支援會自動為 C++ 編輯、建置及偵錯設定環境。CMake support in Open Folder: opening CMake projects with “Open Folder” will automatically configure the environment for C++ editing, building and debugging.

  • 透過與 CMakeLists.txt 檔案位於相同資料夾的 CMakeSettings.json 檔案,支援進一步設定 (圖 19)。Further configuration is supported via a CMakeSettings.json file that sits in the same folder as the CMakeLists.txt file (Figure 19).

CMake Open Folder

(圖 19) Cmake 開啟資料夾
CMake Open Folder
(Figure 19) CMake Open Folder

C++ 安裝工作負載C++ Installation Workloads

  • 使用 C++ 進行 Windows 桌面開發:Windows Desktop Development with C++:

    • 我們現在提供安裝原始 C++ 工作負載時更細微的安裝體驗。We now provide a more granular installation experience for installing the original C++ workload. 我們已新增可選取的元件,讓您能夠只安裝所需的工具。We have added selectable components that enable you to install just the tools that you need. 請注意,安裝程式 UI 中所列元件指出的安裝大小,並不準確且低估總大小。Please note that the indicated installation sizes for the components listed in the installer UI are not accurate and underestimate the total size.

    • 若要在 C++ 桌面工作負載中成功建立 Win32 專案,您必須安裝工具組和 Windows SDK。To successfully create Win32 projects in the C++ desktop workload, you must install both a toolset and a Windows SDK. 安裝建議 (選取) 的元件「VC++ 2017 v141 工具組 (x86、x64)」和 “Windows 10 SDK (10.0.14393)” 可確保這正常運作。Installing the recommended (selected) components “VC++ 2017 v141 toolset (x86, x64)” and “Windows 10 SDK (10.0.14393)” will ensure this will work. 如果未安裝必要工具,將無法成功建立專案,而且精靈將會停止回應。If the necessary tools are not installed, projects will not be created successfully and the wizard will hang.

  • 使用 C++ 進行 Linux 開發:Linux Development with C++:

    • 熱門的 Visual C++ for Linux Development 擴充功能現已納入 Visual Studio 中。The popular extension Visual C++ for Linux Development is now part of Visual Studio. 這個安裝提供您開發在 Linux 環境上執行的 C++ 應用程式,並進行偵錯所需的一切。This installation provides everything you need to develop and debug C++ applications running on a Linux environment.
  • 使用 C++ 進行遊戲開發:Game Development with C++:

    • 使用 C++ 的完整功能建置由 DirectX 或 Cocos2d 技術提供的專業遊戲。Use the full power of C++ to build professional games powered by DirectX or Cocos2d.
  • 使用 C++ 進行行動裝置開發 (Android 與 iOS):Mobile Development with C++ (Android and iOS):

    • 您現在能夠使用可以 Android 及 iOS 為目標的 Visual Studio 建立行動應用程式並對其偵錯。You can now create and debug mobile apps using Visual Studio that can target Android and iOS.
  • 通用 Windows 平台開發:Universal Windows Platform development:

    • C++ 以通用 Windows 平台開發工作負載的選用元件形式提供。C++ comes as an optional component for the Universal Windows Platform development workload. 升級 C++ 專案目前必須以手動方式完成。Upgrading C++ projects currently must be done manually. 如果您在 Visual Studio 2017 中開啟以 v140 為目標的 UWP 專案且未安裝 Visual Studio 2015,則需要在專案屬性頁中選取 v141 平台工具組。If you open a v140-targeted UWP project in Visual Studio 2017, you need to select the v141 platform toolset in the project property pages if you do not have Visual Studio 2015 installed.

Clang/C2 平台工具組Clang/C2 Platform Toolset

隨附於 Visual Studio 2017 的 Clang/C2 工具組現在支援 /bigobj 參數,這對建置大型專案很重要。The Clang/C2 toolset that ships with Visual Studio 2017 now supports the /bigobj switch, which is crucial for building large projects. 它也包含數個重要的 Bug 修正,包括編譯器前端和後端。It also includes several important bug fixes, both in the front-end and the back-end of the compiler.


C# 和 Visual Basic C# and Visual Basic

語言擴充功能Language Extensions

此版本導入 C# 7.0 和 Visual Basic 15 語言功能的支援,包括︰This release introduces support for C# 7.0 and Visual Basic 15 language features, including:

若為 C#:For C#:

若為 Visual Basic:For Visual Basic:

  • 值元組引進語言支援以使用元組暫時為一組類型值分組:Dim point As (x As Integer, y As Integer) = GetOffset()Value tuples introduce language support for using tuples to temporarily group a set of typed values: Dim point As (x As Integer, y As Integer) = GetOffset().
  • ByRef 傳回取用延伸語言以支援從具有 ByRef 傳回的程式庫取用函式及屬性。ByRef return consumption extend the language to support consumption of functions and properties from libraries which have ByRef returns.
  • 二進位常值及數字群組分隔符號允許二進位數字的原生表示法。Binary literals and digit group separators allow native representation of binary numbers. 這對位元遮罩與旗標列舉而言極為方便:&B1001_0011This is super convenient for bitmasks and flags enumerations: &B1001_0011.

如需詳細資訊,請遵循 CSharpLang GitHubVBLang GitHub 上的語言設計,深入了解這些和其他建議的語言擴充功能。For more information, follow our language design on the CSharpLang GitHub and VBLang GitHub to learn more about these and other proposed language extensions.

快速動作及重構Quick Actions and Refactorings

Visual Studio 提供許多重構功能,可協助您提高產能,並讓您的程式碼更容易理解。Visual Studio provides lots of refactorings to help you be productive and make your code more readable. 以下是幾個範例︰Here are just a few:

  • 使用初始設定式簡化物件初始化 (圖 20)。Simplify object initialization with an initializer (Figure 20).

Use object initializer

(圖 20) 使用物件初始設定式
Use object initializer
(Figure 20) Use object initializer

  • 移動 out 變數宣告內嵌及運用 C# 7 的新功能 (圖 21)Move out variable declarations inline, leveraging a new C#7 feature (Figure 21).

Move out variable inline

(圖 21) 移出變數內嵌
Move out variable inline
(Figure 21) Move out variable inline

  • 簡化 null 檢查,並使用 null 聯合運算子擲回運算式及運用 C# 7 的新功能 (圖 22)Simplify null-checks and throw-expressions using null-coalescing operator, leveraging a new C#7 feature (Figure 22).

Use throw expression with null-coalescing operator

(圖 22) 搭配 null 聯合運算子使用擲回運算式
Use throw expression with null-coalescing operator
(Figure 22) Use throw expression with null-coalescing operator

  • 將類型移至相符檔案:透過 Ctrl+,只要按一下即可從一個檔案擷取類型,然後將其放入具有相符名稱的另一個檔案中。Move type to matching file: Extract a type from one file and put it in another file with a matching name with one click via Ctrl+.
  • 同步檔案及類型名稱:如果您的檔案及類型名稱不同步,可以使用 Ctrl+Sync file and type name: If your file and type name are out of sync, you can use Ctrl+.
  • String.Format 轉換為字串內插補點:透過這個快速控制項目利用 C# 6 語言功能Convert String.Format to string interpolation: take advantage of the C# 6 language feature with this Quick Action.
  • 將遺漏的大小寫加入 C# switch 或 Visual Basic Select。Add missing case(s) to a C# switch or a Visual Basic Select.
  • 將屬性轉換為方法,反之亦然。Convert property to a method, and vice versa.
  • 新增套件參考︰針對無法辨識的類型,提供此功能以自動擷取及安裝 NuGet 套件 (並新增 using/Import)。Add Package Reference: Offers to auto-retrieve and install a NuGet package (and add the using/Import) for an unrecognized type. 若要啟用這項功能,請移至 [工具] > [選項] > [文字編輯器] > [C# / Basic] > [進階] > [為參考組件中的類型建議 Using/為 NuGet 封裝中的類型建議 Using]。To enable this feature, go to Tools > Options > Text Editor > [C# / Basic] > Advanced > Suggest usings for types in reference assemblies / Suggest usings for types in NuGet packages.
  • 情況合適時,讓非同步方法同步。Make async methods synchronous where applicable.
  • 支援「模糊」比對拼字錯誤的類型。Support for "fuzzy" matching for misspelled types.
程式碼慣例的設定和強制Coding Convention Configuration and Enforcement

根據 Visual Studio 的 EditorConfig 支援建置,我們已與社群合作,將 .NET 程式碼樣式設定新增至檔案格式。Building on Visual Studio's support for EditorConfig, we worked with the community to add .NET code style settings to the file format. 這表示您可以設定您小組的程式碼樣式慣例、將它們簽入原始檔控制,並在開發人員輸入時讓違規即時出現在編輯器中。This means that you can configure your team's code style conventions, check them into source control, and have violations appear live in the editor as developers are typing. 您可以在 Roslyn 存放庫的 .editorconfig文件中看到所有程式碼樣式選項。You can see all the code style options in the Roslyn repo's .editorconfig or in the documentation. 您可以繼續在 [工具] > [選項] > [文字編輯器] > [C#/Basic] > [程式碼樣式] 中設定您電腦專屬的程式碼樣式設定,當 EditorConfig 存在並與這些規則衝突時,就會覆寫這些規則。You can continue to configure your machine-specific code style settings in Tools > Options > Text Editor > [C#/Basic] > Code Style and these rules are overridden when an EditorConfig is present and conflicts.

我們也加入/更新了樣式分析器,協助您自訂和強制執行小組編碼慣例,包括︰We've also added/updated style analyzers to help you customize and enforce coding conventions on your team, including:

  • 命名樣式規則。Naming style rules.
  • 使用 “var” 或明確的類型。Use of “var” or explicit types.
  • 使用 “this.”Use of “this.” 或 “Me.”or “Me.” 處理成員存取。on member access.
  • 使用運算式主體或區塊。Use expression-bodies or blocks.
  • 使用模式比對檢查 'cast' 和 'null'。Use pattern-matching for 'cast' and 'null' checks.
  • 使用明確的元組名稱。Use explicit tuple names.
  • 使用 Throw 運算式、條件式委派、聯合運算式及 null 傳播簡化 null 檢查。Simplify null-checking with throw-expressions, conditional delegates, coalescing expressions, and null propagation.
  • 需要括號。Require braces.

注意︰根據預設,這些程式碼樣式規則的其中數個規則會設為編輯器中的「建議」(圖 23)。Note: several of these code style rules are configured as Suggestions in the editor by default (Figure 23).

Configure code style preferences and enforcement from EditorConfig

(圖 23) 從 EditorConfig 設定程式碼樣式喜好設定和強制
Configure code style preferences and enforcement from EditorConfig
(Figure 23) Configure code style preferences and enforcement from EditorConfig

IntelliSense 改良功能IntelliSense Improvements

此版本也引入 IntelliSense 的功能改進,讓您在操作大型解決方案或不熟悉的程式碼基底時,更有生產力。This release also introduces improvements to IntelliSense that will make you more productive when working in a large solution or an unfamiliar codebase. 我們新增了 IntelliSense 圖示匣,讓您依類型篩選成員清單 (例如方法、屬性、類別等等)。We have added an icon tray to IntelliSense that enables you to filter the member list by type (e.g., methods, properties, classes, etc.). 每個篩選切換都有相關聯的鍵盤快速鍵,只要將滑鼠游標停留在圖示上即可查看。Each filter toggle has an associated keyboard shortcut which you can discover by hovering over the icon. 若要啟用這項功能,請移至 [工具] > [選項] > [文字編輯器] > [C#/Basic] > [IntelliSense],然後核取篩選和醒目提示的選項 (圖 24)。To enable this feature, go to Tools > Options > Text Editor > [C# / Basic] > IntelliSense and check the options for filtering and highlighting (Figure 24).

IntelliSense Completion Filtering

(圖 24) IntelliSense 完成篩選
IntelliSense Completion Filtering
(Figure 24) IntelliSense Completion Filtering

其他編輯器改良Other Editor Improvements

  • 現在將遊標定位在中間字串,然後按 Enter 鍵,即可將長字串分割成多個串連字串。You can now split a long string into multiple concatenated strings by positioning the cursor mid-string and pressing Enter.
  • 我們付出相當大的心力來改善 IDE 在背景作業中計算診斷和 CodeLens 資訊時的回應。We have done considerable work to improve responsiveness of the IDE in presence of background operations that compute diagnostics and CodeLens information.

F#  F# 

支援 F# 4.1 語言功能Support for F# 4.1 Language Features

  • 與 C# 7/VB 15 元組互通的結構元組。Struct Tuples which interop with C# 7/VB 15 Tuples.
  • 支援取用 C# 7 ref 傳回的 Byref 傳回。Byref returns which support consuming C# 7 ref returns.
  • [<Struct>] 屬性的結構記錄支援 (貢獻者:Will Smith (英文))。Struct Record support with the [<Struct>] attribute (by Will Smith).
  • [<Struct>] 屬性的結構差異等位支援。Struct Discriminated Union support with the [<Struct>] attribute.
  • 新的 Result<'TSuccess, 'TFailure> 類型,具有 FSharp.Core 中支援的函式 (貢獻者:Oskar Gewalli (英文))。A new Result<'TSuccess, 'TFailure> type, with supporting functions in FSharp.Core (by Oskar Gewalli).
  • fixed 關鍵字,支援在堆疊上釘選指標類型的區域變數。The fixed keyword, which supports pinning a pointer-type local on the stack.
  • 數值常值中的底線 (貢獻者:Avi Avni (英文))。Underscores in numeric literals (by Avi Avni).
  • 呼叫端資訊屬性引數 (貢獻者:Lincoln Atkinson (英文)Avi Avni (英文))。Caller Info Attribute Arguments (by Lincoln Atkinson and Avi Avni).
  • 透過 namespace recmodule rec,在相同檔案中允許多重參考類型與模型。Mutually Referential Types and Modules within the same file via namespace rec and module rec.
  • 在與類型共用相同名稱的模組使用隱含 "Module" 前置詞。Implicit "Module" suffix on modules which share the same name as a type.

F#  編譯器及 FSharp.Core 的功能改進Improvements to the F#  Compiler and FSharp.Core

(F# 社群已完成許多)(Many done by the F# community)

以 Roslyn 工作區為基礎的新編輯器A New Editor Based on Roslyn Workspaces

(傑出 F# 社群所貢獻的許多新 IDE 功能)(Many new IDE features contributed by the outstanding F# community)

F#  社群的其他貢獻Additional Contributions by the F#  Community

我們想要感謝整個 F# 社群協助試用 Visual Studio 2017 中的 F# 工具組建、提交錯誤、熱情討論,並實作錯誤修復和功能。We would like to thank the entire F# community for dogfooding builds of F# tooling in Visual Studio 2017, filing bugs, driving discussions, and implementing bug fixes and features. Visual Studio 2017 中 F# 的成功,沒有 F# 社群是沒有辦法實現的。The success of F# in Visual Studio 2017 truly would not have been possible without the F# community. 請參閱完整的貢獻者清單。Please see the full list of contributors.


JavaScript 及 TypeScript JavaScript and TypeScript

TypeScript 2.1TypeScript 2.1

TypeScript 2.1 適用於 Visual Studio 中的所有 TypeScript 專案。TypeScript 2.1 is available for all TypeScript projects in Visual Studio. TypeScript 2.1 傳遞下層 async/await、改良的型別推斷、本機物件展開等功能!TypeScript 2.1 delivers down-level async/await, better type inference, local object expansion, and more! 若要深入了解此版本,請查看版本部落格文章完整的變更記錄檔To read more about the release, check out the release blog post or the full change log.

JavaScript 語言服務JavaScript Language Service

新的 JavaScript 語言服務 (圖 25) 已正式提供,並預設為啟用狀態。A new JavaScript language service (Figure 25) is available and enabled by default. 新的服務提供更豐富的 IntelliSense,並新增 IntelliSense 對 JSDoc 回應註解、ES6 及 Common JS 模組格式的支援。The new service provides richer IntelliSense and adds IntelliSense support for JSDoc comment annotations, ES6, and Common JS module formats. 也支援 JSX 語法與 ES2016 的功能,例如產生器、模組和裝飾項目。It also supports JSX syntax and features from ES2016, such as generators, modules, and decorators. 如需詳細資訊,請參閱 GitHub 上的此部落格文章JavaScript IntelliSense 文件 (英文)For more information, see this blog post or the JavaScript IntelliSense documentation on GitHub.

Rich JavaScript IntelliSense for jQuery

(圖 25) 適用於 jQuery 的豐富 JavaScript IntelliSense
Rich JavaScript IntelliSense for jQuery
(Figure 25) Rich JavaScript IntelliSense for jQuery

效能改善Performance Improvements

改善效能是此版本的最大焦點之一。Improving performance was one of the greatest focuses of this release. 除了改善記憶體和回應特性的數個最佳化功能外,整個 JavaScript/TypeScript 語言服務已移至 devenv.exe 外部的附屬程序,為最大的 VS 專案減少記憶體負載。Along with several optimizations to improve memory and responsiveness characteristics, the entire JavaScript/TypeScript language service has been moved to a satellite process outside of devenv.exe to provide memory relief to the largest VS projects. 處理大型的 JavaScript 專案時,您會發現 Visual Studio 處理序中的記憶體耗用量變少,記憶體不足導致的當機情況也減少。You will see lower memory consumption from the Visual Studio process and less out of memory crashes when working with huge JavaScript projects. 若要閱讀更多有關這些增強功能的資訊,請參閱此部落格文章To read more about these improvements, check out this blog post.


偵錯和診斷 Debugging and Diagnostics

執行至點選處Run to Click

只要在偵錯時按一下程式碼旁的圖示,即可執行至該程式行 (圖 26)。Simply click the icon next to a line of code while debugging to run to that line (Figure 26). 不再需要設定暫時中斷點或執行多項步驟,就能執行程式碼並停在想要的程式行。No longer set temporary breakpoints or perform several steps to execute your code and stop on the line you want. 在偵錯工具下停止於中斷狀態時,執行至點選處圖示會隱約顯示在您滑鼠暫留處的程式碼旁。Now while stopped at a break state under the debugger, the Run to Click icon subtly appears next to the line of code that your mouse is hovered over. 將您的滑鼠移至圖示並按一下按鈕,您的程式碼就會執行,並於下次在您的程式碼路徑中叫用時停在該程式行。Move your mouse to the icon and click the button, now your code will run and stop on that line the next time it is hit in your code path. 您可以從 [偵錯] > [選項] > [啟用執行至點選處] 加以關閉。Turn it off from Debug> Options > Enable Run to Click.

Run to Click Icon

(圖 26) 執行至點選處圖示
Run to Click Icon
(Figure 26) Run to Click Icon

[附加至處理序] 篩選Attach to Process Filter

在 [附加至處理序] 對話方塊 (圖 27) 中輕鬆搜尋,即可快速找到您想要附加偵錯工具的目標處理序。Easily search in the Attach to Process dialog (Figure 27) to quickly find the process you want to attach the debugger to. 執行中處理序的清單會篩選至符合您搜尋條件的項目。The list of running processes will be filtered to items matching your search. 搜尋篩選器不會變動,並會於重新開啟對話方塊時記住您先前的搜尋。The search filter is sticky and will remember your previous search when you reopen the dialog.

Attach to Process Filter

(圖 27) [附加至處理序] 篩選
Attach to Process Filter
(Figure 27) Attach to Process Filter

重新附加至處理序Reattach to Process

您現在可快速重新附加至您先前偵錯中的處理序。You can now quickly reattach to processes you were previously debugging. [觸發新的偵錯/重新附加至處理序]\ (Shift+Alt+P) 命令會立即嘗試將偵錯工具附加至先前偵錯工作階段 (其從 [附加至處理序] 對話方塊中叫用) 的最後一個處理序。Triggering the new Debug/Reattach to Process (Shift+Alt+P) command will immediately try to attach the debugger to the last processes from the previous debugging session that were invoked from the Attach to Process dialog. 偵錯工具會重新附加至處理序,方法是先嘗試比對先前的處理序識別碼,接著比對先前的處理序名稱。The debugger will reattach to processes by first attempting to match the previous process ID and then by matching to the previous process name. 如果找不到相符項目或找到多個同名的處理序,則會出現 [附加至處理序] 對話方塊,供您選取想要的處理序。If no matches are found or there are multiple processes found with the same name, then the "Attach to Process" dialog will appear so you can select the intended process.

新的例外狀況協助程式The New Exception Helper

使用新的例外狀況協助程式 (圖 28) 立即存取內部例外狀況,快速檢視壓縮的非強制回應對話方塊中的例外狀況資訊。Use the new Exception Helper (Figure 28) to view your exception information at a glance in a compact non-modal dialog with instant access to inner exceptions. 在診斷您的 NullReferenceException 時,您可以快速在例外狀況協助程式中查看哪些項目為 null。While diagnosing your NullReferenceException, you can now quickly see what was null from right inside the Exception Helper. 您現在可以排除從特定模組擲回例外狀況類型所造成的中斷,方法是按一下核取方塊,以新增在擲回例外狀況時停止的條件。You can now exclude breaking on exception types thrown from specific modules by clicking the checkbox to add a condition while stopped at the thrown exception. 請閱讀這篇部落格文章以了解例外狀況協助程式新權益的詳細資訊。Read this blog post for more detailed information on the new benefits of the Exception Helper.

The New Exception Helper dialog

(圖 28) 新的 [例外狀況協助程式] 對話方塊
The New Exception Helper dialog
(Figure 28) The New Exception Helper dialog

將條件加入例外狀況設定中Add Conditions to Exception Settings

當您設定偵錯工具中斷擲回的例外狀況時,您可以新增條件,讓偵錯工具只會在指定的模組中擲回例外狀況時才中斷 (圖 29)。When you configure the debugger to break on thrown exceptions, you can add conditions so that the debugger will only break when exceptions are thrown in specified modules (Figure 29).

Edit Conditions dialog box

(圖 29) [編輯條件] 對話方塊
Edit Conditions dialog box
(Figure 29) Edit Conditions dialog box

偵錯工具協助工具改進Debugger Accessibility Improvements

您現在可搭配螢幕助讀程式,更有效率地使用多個 [偵錯工具] 視窗 (呼叫堆疊、區域變數、自動、監看式及快速監看式),並用於其他協助工具需求。You can now more effectively use several of the Debugger windows (Call Stack, Locals, Autos, Watch, and Quickwatch) with screen readers and for other accessibility needs.

.NET Core 的 IntelliTrace 事件IntelliTrace Events for .NET Core

IntelliTrace 現在支援 MVC、ADO.NET 以及 ASP.NET Core 應用程式的 HttpClient 事件。IntelliTrace now supports MVC, ADO.NET, and HttpClient events for ASP.NET Core apps. 這些會出現在 [診斷工具] 視窗中的 [事件] 索引標籤。These will appear in the Events tab in the Diagnostic Tools Window.

診斷工具視窗更新Diagnostic Tools Window Updates

當您啟動偵錯工作階段時,您會在 [診斷工具] 視窗中看到您應用程式的新 [摘要] 檢視 (圖 30)。When you start a debugging session, you'll see a new Summary view (Figure 30) of your application in the Diagnostic Tools Window. 從這裡開始,您將能夠︰From here, you'll be able to:

Summary tab in Diagnostics Tools Window

(圖 30) [診斷工具] 視窗中的 [摘要] 索引標籤
Summary tab in Diagnostics Tools Window
(Figure 30) Summary tab in Diagnostics Tools Window

效能分析工具更新Performance Profiler Updates

效能分析工具現在可以附加至執行中處理序。The Performance Profiler can now attach to a running process. CPU 使用率工具、GPU 使用率工具,以及效能精靈現在支援附加至正在執行的處理序。The CPU Usage tool, GPU Usage tool, and Performance Wizard now support attaching to a running process.

CPU 使用量工具更新CPU Usage Tool Updates

CPU 使用量工具 (英文)有幾項改良︰Several improvements have been made to the CPU Usage Tool:

  • 更佳的外部程式碼支援︰CPU 工具現在可更深入提供您使用者程式碼呼叫程式庫與架構函式時的成本資訊。Better External Code support - The CPU Tool now gives you better insights into the costs of library and framework functions when called by user code.
  • [函式] 檢視 (圖 31):依照 CPU 成本排序函式的檢視。Functions view (Figure 31) - A view that ranks functions by their CPU cost.

Functions List

(圖 31) 函式清單
Functions List
(Figure 31) Functions List

  • [呼叫端/被呼叫端] 檢視 (圖 32) 可讓您調查對所選函式進行來回呼叫的函式呼叫成本。Caller/Callee View (Figure 32) allows you to investigate costs of function calls made to and from a selected function.

Caller / Callee View

(圖 32) [呼叫端/被呼叫端] 檢視
Caller / Callee View
(Figure 32) Caller / Callee View

  • 在 CPU 工具中選取函式時,顯示函式原始程式碼的 [原始碼檢視]。Source View shows a function's source code when the function is selected in the CPU Tool.

Chrome 偵錯支援Chrome Debugging Support

當您開始偵錯 ASP.NET 專案並選擇 Google Chrome 作為瀏覽器時,Visual Studio 將為您在 Chrome 中執行的 JavaScript 程式偵錯。When you start debugging ASP.NET projects and choose Google Chrome as your browser, Visual Studio will debug your JavaScript running in Chrome. 如果您想要改為使用瀏覽器內開發工具,可以在 [工具] > [選項] > [偵錯] 下停用這個功能。If you prefer to use the in-browser development tools instead, you can disable this feature under Tools > Options > Debugging.


即時單元測試 Live Unit Testing

即時單元測試 (圖 33) 是 Visual Studio 2017 Enterprise Edition 中的功能,會在編輯器中即時顯示單元測試結果和程式碼涵蓋範圍。Live Unit Testing (Figure 33) is a capability in the Visual Studio 2017 Enterprise edition that displays unit test results and code coverage live in the editor. 它支援 MSTest、xUnit、Nunit for C# 和以 .NET Framework 為目標的 VB 專案。It supports MSTest, xUnit, and Nunit for C# and VB projects targeting .NET Framework.

Live Unit Testing

(圖 33) Live Unit Testing
如需詳細資料,請參閱 Live Unit Testing 部落格Live Unit Testing
(Figure 33) Live Unit Testing
See the Live Unit Testing blog for more details.


測試工具 Testing Tools

使用 [測試總管],使自動化與測試案例工作項目產生關聯Associate automation with test case work items using Test Explorer

您現在可以在 [測試總管] 中選取測試方法,使自動化與測試案例工作項目建立關聯 (圖 34)。You can now associate automation with test case work items (Figure 34) by selecting a test method in the Test Explorer. 這個新體驗也可讓您檢視所選測試方法的任何現有關聯。This new experience also allows you to view any existing associations for the chosen test method.

只要以滑鼠右鍵按一下 [測試總管] 中的測試...Simply right click a test in the Test Explorer...

Test Explorer Associate Automation

(圖 34) 測試總管關聯自動化
Test Explorer Associate Automation
(Figure 34) Test Explorer Associate Automation

...並提供測試案例識別碼以建立關聯 (圖 35)...and provide a test case ID to create an association (Figure 35).

Associate Automation

(圖 35) 關聯自動化
Associate Automation
(Figure 35) Associate Automation

在舊版的 Visual Studio 中,可以使用工作項目表單完成這項工作。In previous versions of Visual Studio, this could be done using the work item form. 透過使用 [工具] | [選項] 開啟相容性模式,可啟用工作項目表單型體驗 (圖 36)。The work-item form based experience can be enabled by turning on the compatibility mode using Tools | Options (Figure 36).

Work Item Form Compatibility mode

(圖 36) 工作項目表單相容性模式
Work Item Form Compatibility mode
(Figure 36) Work Item Form Compatibility mode


Team Explorer Team Explorer

新的 Git 功能New Git Features

Visual Studio 2017 新增 Git 功能,可讓您執行更多端對端工作流程而不需離開 IDE。We've added new Git features to Visual Studio 2017 that allow you to do more of your end-to-end workflow without leaving the IDE. 您可以輕鬆檢視傳出認可的差異、執行強制推送以完成重訂基底或推送修改過的認可、取消設定上游分支,以及從 VS 繼續修補重訂基底。You can easily view the diff for outgoing commits, perform a force push to complete a rebase or push an amended commit, unset your upstream branch, and continue a patch rebase from VS. 此外,我們移到了 git.exe。Additionally, we have moved to git.exe. 這讓我們能夠提供狀態最新的功能。This allows us to provide the most up-to-date features. 我們支援 SSH,依循您的組態選項,並在 Team Explorer 中顯示您在命令列中看到的相同內容。We support SSH, respect your config options, and show in Team Explorer exactly what you see in the command line. 若要深入了解這些功能,請參閱部落格文章To learn more about these features, check out the blog post.

連接到 VSTS/TFSConnect to VSTS/TFS

在 Visual Studio 啟動頁面和 Team Explorer 中,連接至專案與在 VSTS/TFS 複製儲存機制的流程已個人化和簡化,可以更快速且更輕鬆地找到要連接的專案和儲存機制。On the Visual Studio start page and in Team Explorer, the process for connecting to projects and cloning repos in VSTS/TFS has been personalized and streamlined, making it faster and easier to find the projects and repos to connect to. 我們全新的 [連線] 頁面只會顯示您所對應以及在所有 VSTS/TFS 伺服器間複製的專案和儲存機制 (而非所有專案的所有儲存機制)。Our brand new Connect page shows only the projects and repos that you have mapped and cloned across all your VSTS/TFS servers (rather than every repo for every project). 此外,您不再需要先連接到專案,再複製儲存機制。Additionally, you no longer need to connect to a project before cloning repos.

當您啟動對話方塊來連接到 VSTS 和 TFS 時,您將會看到重新設計的 UX。When you launch the dialog to connect to VSTS and TFS, you will see the redesigned UX. 您將會在您已經新增的任何 TFS 伺服器後面看到您所選使用者帳戶的所有 VSTS 伺服器、專案及儲存機制。You will see any TFS servers you've added followed by all VSTS servers, projects, and repos for your selected user account. 結果會以樹狀目錄方式列出,以方便瀏覽。The results are listed in a tree to allow for improved navigation. 除了連接至儲存機制之外,您可以連接至集合或專案。You can connect to collections or projects in addition to repos. 如需詳細資訊,請參閱 連接至 Team 專案 (英文)For more information, see Connect to Team Projects.

工作項目表單Work Item Forms

當您從 Visual Studio 2017 連接至 Visual Studio Team Services 並開啟工作項目時,工作項目表單就會出現在網頁瀏覽器中(圖 37) 。When you connect to Visual Studio Team Services from Visual Studio 2017 and open a work item, the work item form will appear in your web browser (Figure 37). 不過,如果您連接到 Team Foundation Server 2015 或更早版本,就會看到舊版的工作項目表單。However, if you connect to Team Foundation Server 2015 or earlier, you will see the legacy work item forms.

Work Item Form in Team Explorer

(圖 37) Team Explorer 的工作項目表單
Work Item Form in Team Explorer
(Figure 37) Work Item Form in Team Explorer


增強 Visual Studio 意見反應工作流程 Enhanced Visual Studio Feedback Workflow

Visual Studio 2017 包括升級的意見反應體驗,提供更佳的後續追蹤和共同作業。Visual Studio 2017 includes an upgraded feedback experience for better follow-up and collaboration. 升級之後,您會發現 Visual Studio 的 [回報問題] 功能改由功能豐富的入口網站提供,形成一套完整的端對端意見回應解決方案。As part of this upgrade, you will notice a more collaborative Report-a-Problem experience in Visual Studio supplemented by a comprehensive web portal for a complete end-to-end feedback solution. 您現在可以針對您透過 Visual Studio IDE 的「回報問題」功能提供的所有意見反應,搜尋、遵循、投票,以及取得最新的更新。You can now search, follow, vote, and get the latest updates on all feedback you have provided via Visual Studio IDE’s Report a Problem feature. 這些增強功能解決了許多客戶在意見反應中提出的問題,讓我們的團隊和客戶之間能夠雙向進行溝通。These enhanced experiences address much of the feedback we received from you and enable bidirectional communication between our teams and you.


Visual Studio 擴充性 Visual Studio Extensibility

新的擴充性格式New Extensibility Format

Visual Studio 2017 中的新安裝程式技術可讓您對所安裝的工具有更好的控制。The new installer technology in Visual Studio 2017 gives you greater control over the tools that are installed. 有些使用者可能只會安裝核心 Visual Studio 編輯器,而有些使用者可能會安裝好幾種工作負載。Some users may install just the core Visual Studio editor while others may install several workloads. 為確保已安裝所需的必要功能和延伸模組,延伸模組作者現在已可在他們的資訊清單中,指定其延伸模組所需的個別元件。To ensure that the prerequisite features and extensions required are installed, extension authors will now be able to specify the individual components required by their extension in the manifest.

嘗試安裝未使用新的 VSIX 格式所建置的延伸模組時,系統會警告使用者。Users will be warned when trying to install an extension that was not built using the new VSIX format. 如果 Visual Studio 2017 中無法使用這些必要條件,則舊的 VSIX 格式不會指定所需的必要條件,且可能無法運作。The old VSIX format does not specify prerequisites needed and may fail to work if those prerequisites are unavailable in Visual Studio 2017. 新的 VSIX 格式可回溯相容,且可將舊版的 Visual Studio 作為目標,最遠可至 Visual Studio 2012。The new VSIX format is backwards compatible and can target past versions of Visual Studio up until Visual Studio 2012.

已更新 VSIX 資訊清單設計工具,以反映資訊清單的變更。The VSIX manifest designer has been updated to reflect the changes to the manifest. 在 [必要條件] 索引標籤 (圖 38) 中,延伸模組開發人員可找到一份已安裝元件的清單,需指定這些元件作為其延伸模組的必要條件。In the prerequisite tab (Figure 38), extension developers can find a list of installed components to specify as a prerequisite for their extension.

Prerequisite

(圖 38) [必要條件] 索引標籤
Prerequisite
(Figure 38) Prerequisite tab

VSIX 安裝程式 (圖 39) 會在安裝延伸模組期間,指出遺漏哪些元件,且會連同延伸模組一起安裝。During the installation of the extension, the VSIX installer (Figure 39) will indicate which components are missing and will install them alongside the extension.

VSIXInstaller

(圖 39) VSIXInstaller
VSIXInstaller
(Figure 39) VSIXInstaller

大量修改延伸模組Modify Extensions in Bulk

在 [延伸模組和更新] 對話方塊 (圖 40) 中,您現在可為延伸模組排定進行安裝、更新及解除安裝,之後才需重新啟動 Visual Studio。In the Extensions and Updates dialog (Figure 40), you can now schedule multiple extensions for installation, update, and uninstallation before needing to restart Visual Studio. 可於右下角找到排程工作的摘要。In the lower right corner, there is a summary of the scheduled tasks. 若要移除排程的修改,請在目前已排定要安裝的延伸模組旁按一下 X。To remove a scheduled modification, click the X next to an extension that is currently scheduled to install.

Extensions and Updates Dialog

(圖 40) [延伸模組和更新] 對話方塊
Extensions and Updates Dialog
(Figure 40) Extensions and Updates Dialog

VSIX 安裝程式偵測到所有 Visual Studio 視窗皆已關閉時,即會開始完成排定的修改 (圖 41)Once the VSIX Installer has detected that all Visual Studio windows are closed, it will start to complete the scheduled modifications (Figure 41).

Batched Modification Installer

(圖 41) 批次的修改安裝程式
Batched Modification Installer
(Figure 41) Batched Modification Installer

Ngen 支援Ngen Support

您現在可選擇使用 Ngen 安裝組件 (圖 42)。You can now choose to install assemblies using Ngen (Figure 42).

NGEN Properties

(圖 42) NGEN 屬性
NGEN Properties
(Figure 42) NGEN Properties

  • Ngen:是否要對組件使用 Ngen。Ngen - Whether or not to use Ngen on the assembly.
  • Ngen 應用程式 :要透過 /ExeConfig 參數傳入 Ngen 的應用程式。Ngen Application - The application to pass into Ngen via the /ExeConfig switch.
  • Ngen 架構 - 原生映像的目標架構。Ngen Architecture - The target architecture for the native image. 選項包括︰x86、x64,以及所有。Options are: x86, x64, and all.
  • Ngen 優先順序:Ngen 優先權層級。Ngen Priority - Ngen priority level.

在延伸模組目錄外安裝檔案Install Files Outside of Extension Directory

您現在可選擇將檔案安裝至延伸模組目錄(圖 43) 外的所選資料夾清單。You can now choose to install files to a select list of folders that are outside of the extension directory (Figure 43).

VSIX Properties

(圖 43) VSIX 屬性
VSIX Properties
(Figure 43) VSIX Properties

  • 包含在 VSIX 內:在您的 VSIX 中包含檔案。Include in VSIX - Include the file in your VSIX.
  • 安裝根:要安裝檔案用的根目錄。Install Root - The root directory to install the file. 選項包括︰Default (安裝在延伸模組目錄內)、PublicAssemblies、ReferenceAssemblies、MSBuild、Schemas、Licenses、RemoteDebugger 及 VSTargets。Options are: Default (install inside the extension directory), PublicAssemblies, ReferenceAssemblies, MSBuild, Schemas, Licenses, RemoteDebugger, and VSTargets.
  • 目標路徑:要安裝在使用者電腦上之檔案的名稱。Target Path - The name of the file to be installed on the user's machine.
  • VSIX 子路徑:安裝根路徑 (檔案的安裝位置) 下的子路徑。VSIX Sub Path - The sub path under the Install Root where the file will be installed.

Roaming Extension Manager Roaming Extension Manager

Visual Studio 2017 中的新功能,Roaming Extension Manager 可協助您追蹤在所有開發環境中常用的擴充功能。New in Visual Studio 2017, the Roaming Extension Manager helps you keep track of your favorite extensions across all of your development environments. 漫遊您的擴充功能可在雲端中建立一份同步清單,以追蹤您所安裝的擴充功能。Roaming your extensions keeps track of the extensions you have installed by creating a synchronized list in the cloud.

當您登入 Visual Studio 時,您可以從 [工具] > [延伸模組和更新],然後按一下 [Roaming Extension Manager] 來快速檢視此清單 (圖 44)。When you sign into Visual Studio, you can quickly see a list of your extensions from Tools > Extensions and Updates, and click Roaming Extension Manager (Figure 44). 其會追蹤您已經安裝的擴充功能,以及讓您選擇要加入漫遊清單中的擴充功能。It tracks which extensions you have installed and lets you choose which ones are added to your Roaming list. 搭配資源庫每日提供的新延伸模組,此工具很快就能為每一個開發環境設定您慣用的延伸模組。With new extensions appearing in the gallery every day, this tool makes it quick and easy to set up each dev environment with your favorite extensions.

The new Roaming Extension Manager in the Visual Studio IDE

(圖 44) Visual Studio IDE 中的新 Roaming Extension Manager
The new Roaming Extension Manager in the Visual Studio IDE
(Figure 44) The new Roaming Extension Manager in the Visual Studio IDE

使用此功能時會有 3 種圖示類型︰When using this feature, you will notice 3 icon types:

  • Roamed (已漫遊) 圖示 Roamed (已漫遊) 圖示︰表示延伸模組已在漫遊清單中,但尚未安裝在電腦上。Roamed Icon Roamed Icon - Denotes an extension that is part of your Roaming List, but not installed on this machine. 您可以使用 [下載] 按鈕加以安裝。You can install these via the "Download" button.
  • Roamed and Installed (已漫遊並已安裝) 圖示 Roamed and Installed (已漫遊並已安裝) 圖示︰表示所有延伸模組都在漫遊清單中,並已安裝在此環境中。Roamed and Installed Icon Roamed & Installed Icon - Denotes all extensions that are part of your Roaming List and installed in this environment. 當您決定不再漫遊時,可以透過 [Stop Roaming]\ (停止漫遊) 按鈕移除這些擴充功能。If you decide you do not want to roam, you can remove these via the "Stop Roaming" button.
  • 已安裝圖示已安裝圖示︰表示所有延伸模組都已安裝在此環境中,但不在您的漫遊清單中。Installed Icon Installed Icon - Denotes all extensions that are installed in this environment, but are not part of your Roaming List. 擴充功能可以透過 [Start Roaming]\ (開始漫遊) 按鈕將擴充功能加入漫遊清單中。Extensions can be added to roaming list via the "Start Roaming" button.

這些圖示會顯示您清單目前的狀態。These icons will show you the current status of your list. 您可依據需要,自訂任何狀態的任何擴充功能,You can have any extension in any state, so customize to your heart's content! 也可以由我們為您代勞!Or let us do it for you! 您在登入後下載的任何延伸模組,都會新增到您的漫遊清單中,並顯示為 Roamed and Installed (已漫遊並已安裝),讓您可從任何電腦加以存取!Any extension downloaded while you are signed in will be added to your list as Roamed & Installed and will therefore be part of your Roaming list, giving you access to it from any machine!

探索專案和項目範本 Discovery of Project and Item Templates

從 Visual Studio 2017 開始,Visual Studio 取用專案及項目範本的方式有了重大變更,以提升範本探索的效能。Starting in Visual Studio 2017, there is a breaking change with how Visual Studio consumes project and item templates to improve the performance of template discovery. 新的探索機制現在要求在範本資訊清單檔中,定義所有遵循 "vstemplate" 結構描述的項目與專案範本。The new discovery mechanism now requires all item and project templates following "vstemplate" schema to be defined in template manifest files. 在 [新增專案] 或 [新增項目] 對話方塊中,再也看不到未在範本資訊清單檔中定義的 Visual Studio 範本。Visual Studio templates that you do not define in a template manifest file will no longer be visible in New Project or New Item dialogs. 雖然新的擴充性工具會在 VSIX 建置期間產生資訊清單,但如果您有 Visual Studio 範本會隨 MSI 套件發行,就必須手動產生這些範本的範本資訊清單檔。While the new extensibility tooling will generate a manifest during VSIX build time, if you have Visual Studio templates released as part of an MSI package, you must manually generate template manifest files for those templates. 如需詳細資訊,請參閱 Upgrading Custom Project and Item Templates for Visual Studio 2017 (升級 Visual Studio 2017 的自訂專案和項目範本) MSDN 頁面。For more information, see the Upgrading Custom Project and Item Templates for Visual Studio 2017 MSDN page.


.NET Core 和 ASP.NET Core .NET Core and ASP.NET Core

這包含新的 MSBuild 型 .NET Core 工具的 1.0 最終版本。This contains the 1.0 final release of the new MSBuild based .NET Core Tools. 您可以使用 Visual Studio 2017 來建立 .NET 標準程式庫、.NET Core 應用程式/程式庫及使用新的 csproj 格式的 ASP.NET Web 專案。Using Visual Studio 2017, you can create .NET Standard libraries, .NET Core apps/libraries and ASP.NET web projects that use the new csproj format.

.NET Core 工具會自動包含在「ASP.NET 和 Web 開發」工作負載中,而在安裝程式的「.NET 桌面開發」工作負載中則是選擇性元件。.NET Core tooling is automatically included in the “ASP.NET and web development” workload and an optional component in the “.NET desktop development” workload in the installer. 如果您只想開發跨平台使用的 .NET Core 應用程式,您可以使用安裝程式 [其他工具組] 區段中的 [.NET Core 跨平台開發] 工作負載,只安裝 .NET Core 和 ASP.NET Core 工具。If you only want to develop .NET Core applications for cross platform use, you can install just the .NET Core and ASP.NET Core tools using the “.NET Core cross-platform development” workload from the “Other Toolsets” section of the installer.

此版本的高階功能包括:High-level features in this release include the following:

  • .NET Core 專案的 MSBuild 支援簡化了 csproj 專案格式,讓您不需要將專案卸載,就能更輕鬆地手動編輯。MSBuild support for .NET Core projects, with a simplified csproj project format that makes it easier to edit by hand, without the need to unload the project.
  • 編輯 .NET Core .csproj 檔案很簡單,只要以滑鼠右鍵按一下 [方案總管] 中的專案並選擇 [編輯]。Editing .NET Core .csproj file is as simple as a right click on project in Solution Explorer and choosing “Edit”.
  • 支援專案檔案中的檔案萬用字元,不需列舉所有原始程式碼檔案名稱,如此能精簡 csproj 檔案的大小。Support for file wildcards in project file, where you don’t have to enumerate all the source code file names, which keeps the csproj file compact in size.
  • NuGet 套件參考現在屬於 csproj 檔案的一部份,將所有專案參考合併成一個檔案。NuGet package references are now part of the csproj file, consolidating all project references in one file.
  • .NET Core、.Net 標準及 .NET Framework 專案之間的 Interop。Interop between .NET Core, .NET Standard and .NET Framework projects. 例如,.NET Core 專案可在 .NET 標準專案中加入專案對專案間的參考。For example, a .NET Core project can add a project-to-project reference to a .NET Standard project.
  • 在一個專案中以多個目標架構為目標。Cross-target multiple target frameworks in one project.
  • 現有的 project.json .NET Core 專案在 Visual Studio 中開啟時會自動移轉至 csproj,或您可以手動 [使用 .NET 命令列介面 (CLI) 移轉]。(https://go.microsoft.com/fwlink/?linkid=842521)Existing project.json .NET Core projects will automatically migrate to csproj when opened in Visual Studio, or you can manually migrate them using the .NET Command Line Interface (CLI).
  • 輕鬆使用 Docker 支援為 ASP.NET Core 應用程式設定持續組建整合,以及從 Visual Studio IDE 內部到 Azure Container Services 的持續組建傳遞。Easily configure continuous build integration for your ASP.NET Core application with Docker support and continuous build delivery to your Azure Container Services from within the Visual Studio IDE.

如需詳細資料,請參閱 .NET 部落格See the .NET blog for more details.


用於通用 Windows app 開發的工具 Tools for Universal Windows App Development

更新的 .NET Native 工具鏈Updated .NET Native Toolchain

此更新的 .NET 原生工具鏈會新增數個最佳化功能,以改善 Visual Studio 的 Managed UWP 應用程式執行階段效能。This updated .NET Native toolchain adds several optimizations to improve runtime performance for managed UWP apps in Visual Studio. 此版本包含超過 600 項 Bug 修正和功能,以解決重要的客戶意見反應,並改善工具鏈的整體品質。The release includes more than 600 bug fixes and features to address key customer feedback and improve the overall quality of the toolchain.

5.3.0 Microsoft.NETCore.UniversalWindowsPlatform 套件5.3.0 Microsoft.NETCore.UniversalWindowsPlatform Package

這項 .NET Core NuGet 架構程式庫的更新解決了由客戶回報的多項關鍵問題。This update to the .NET Core NuGet framework libraries addresses a number of key issues reported by customers. 現有的 UWP 專案可以使用 NuGet 參考管理員更新成這個新版本。Existing UWP projects can use the NuGet reference manager to update to this new version. 此外,新的 .NET Core 套件包含 .NET Native 工具鏈。In addition, the new .NET Core package includes the .NET Native toolchain.

Windows 10 年度更新版 SDK 與模擬器Windows 10 Anniversary Update SDK and Emulator

這一版中包含適用於 Windows 10 年度更新版的 Windows SDK 與 Windows Phone 模擬器。The Windows SDK and Windows Phone emulator for the Windows 10 Anniversary Update are included in this release.

  • 從工具箱建立的 UI 元素現在會使用較少 XAML 標記建立,以產生更簡潔易讀的 XAML。UI Elements created from the Toolbox will now be created with fewer XAML Tags, resulting in cleaner, more readable XAML.
  • XAML 設計工具上的新選項工具可讓開發人員選取 UI 佈景主題及高對比設定,以在設計介面上預覽。A new options tool on the XAML Designer allows the developer to select the UI theme and High Contrast settings to be previewed on the design surface.
  • [屬性] 視窗中的值編輯器現在接受簡單的數學方程式,例如 "60+20"。The value editors in the Properties window now accept simple mathematical equations, such as "60+20". 方程式會立即經過運算 (在此案例中為 80),產生的值則放入 XAML。The equations will be immediately evaluated (in this case, 80) and their resulting value put into the XAML.

用於建立視覺效果資產的資訊清單設計工具功能Manifest Designer Capability for Creating Visual Assets

資訊清單設計工具 (圖 45) 已經過視覺效果更新,現在新增了為 UWP 應用程式產生視覺效果資產的功能。The Manifest Designer (Figure 45) has undergone a visual refresh, and now has the added capability of generating visual assets for your UWP apps. 您現在可以使用單一來源影像建立任何規模的磚、標誌、圖示及啟動顯示畫面,以符合各種作為您應用程式目標的裝置。You can now use a single source image to create tiles, logos, icons, and splash screens at any or all scales to fit every type of device your app targets.

Manifest Visual Asset Generator

(圖 45) 資訊清單視覺效果資產產生器
Manifest Visual Asset Generator
(Figure 45) Manifest Visual Asset Generator

UI 分析 UI Analysis

通用 Windows 平台工具現在能夠偵測常見的存取和效能相關問題。The Universal Windows platform tooling now has the ability to detect common accessibility and performance related issues. 在 [診斷工具] 視窗的 [選取工具] 功能表中啟用「UI 分析」工具,即可回報這些問題,並附有實用文章的連結,說明解決這些問題的方式與原因。By enabling the "UI Analysis" tool in the Select Tools menu of the Diagnostic Tools window, these issues will be reported along with links to helpful articles explaining how and why the issues should be addressed. 開發時啟用 [UI 分析] 可將 UI 效能和存取放到應用程式開發的前端。Developing with UI Analysis enabled brings UI performance and accessibility to the forefront of your application development.


Xamarin Xamarin

Visual Studio 2017 內含 Xamarin 4.4。Xamarin 4.4 is included in Visual Studio 2017. 如需詳細資訊,請參閱 Xamarin 版本資訊For more information, see the Xamarin release notes.

這個 Xamarin for Visual Studio 4.4 版本更新了 Xamarin.iOS 10.8Xamarin.Android 7.2 版本。This Xamarin for Visual Studio 4.4 release updates Xamarin.iOS 10.8 and Xamarin.Android 7.2 releases.

Bug 修正Bug fixes

此版本包括下列修正︰This release includes the following fixes:

  • iOS Extension 應用程式無法建置,錯誤為「無法讀取權利資料」。(4.4.0.31)iOS Extension apps fail to build with error "cannot read Entitlements data".(4.4.0.31)
  • 加入 Watson 報告的符號。(4.4.0.6)Includes symbols for Watson reports.(4.4.0.6)
  • 如果解決方案也包含 Wix 專案,Android 部署會失敗。(4.3.1.39)Android deployment fails if solution also contains a Wix project.(4.3.1.39)
  • 開啟某些 iOS 專案會發生死結。(4.3.1.39)Deadlock opening some iOS projects.(4.3.1.39)
  • 在第二層 PCL 參考上不會叫用中斷點。(4.3.1.39)Breakpoints won't hit on second-level PCL references.(4.3.1.39)
  • 修正因遺漏 CodeSignNativeLibraries 工作而造成的 iOS 問題。(4.3.1.39)Fixes iOS issue due to missing CodeSignNativeLibraries task.(4.3.1.39)
  • 在連線到 Mac 伺服器後,開啟 Storyboard 會發生錯誤。(4.3.1.39)Error opening storyboard after connecting to Mac server.(4.3.1.39)
  • Android 類別庫專案的 [屬性] 頁面上應該只包括「使用下列 Android 版本編譯」。(4.3.1.39)Android class library project should only include "Compile using Android Version" on Property page.(4.3.1.39)
  • Visual Studio 在前往 [工具]->[選項]->[Xamarin]->[其他] 索引標籤時會停止回應。(4.3.1.39)Visual Studio hangs when going to the "Tools->Options->Xamarin->Other" tab.(4.3.1.39)
  • Visual Studio 在某些環境中載入跨平台解決方案時會停止回應。(4.3.1.1)Visual Studio hangs loading a cross-platform solution in some environments.(4.3.1.1)
  • VS 專案範本中未參考 Microsoft.Csharp。(4.3.1.1)Microsoft.Csharp not referenced in VS Project Templates.(4.3.1.1)
  • 如果設定的使用者殼層未使用 bash 語法,即無法連線到 Mac 伺服器。(4.3.1.1)Cannot connect to Mac server if configured User Shell doesn't use bash syntax.(4.3.1.1)
  • 遺漏 [提交到測試雲端] 選項 (於 VS2013 及 VS2015 修正)。(4.3.1.1)Submit to Test Cloud option missing (fixed on VS2013 and VS2015).(4.3.1.1)
  • 偵錯工具在變數/屬性名稱與其他某項目的類別名稱相同時混淆。(4.3.1.1)Debugger gets confused when Variable/Property name is same as Class name of something else.(4.3.1.1)
  • 無法來自資產目錄的影像集重新命名。(4.3.1.1)Image set from asset catalog can't be renamed.(4.3.1.1)
  • 'Resources' 資料夾在 watch 延伸模組專案中會強制隱藏。(4.3.1.1)The 'Resources' folder is being forcibly hidden in watch extension projects.(4.3.1.1)
  • "Resources" 內的 "Assets.xcasset" 資料夾未對 tvOS 專案隱藏。(4.3.1.1)"Assets.xcasset" folder within "Resources" is not being hidden for tvOS projects.(4.3.1.1)

Visual Studio Apache Cordova 工具 Visual Studio Tools for Apache Cordova

此 Visual Studio 2017 版本包括下列功能改進:This Visual Studio 2017 release includes the following improvements:

  • Cordova 模擬:新的瀏覽器模擬器讓您能夠快速編碼,並立即在瀏覽器中查看結果 (圖 46)。Cordova simulate - A new browser-based simulator enables you to code fast and see the results immediately in the browser (Figure 46). 即時重新載入、外掛程式模擬及 Ionic Framework 的支援賦予了 Visual Studio 市面上最快的開發人員工作流程。Live reload, plugin simulation, and support for Ionic Framework give Visual Studio the fastest developer workflow on the market.

Cordova simulate

(圖 46) Cordova 模擬
Cordova simulate
(Figure 46) Cordova simulate

  • iOS 10 & XCode 8 支援:適用於 iOS開發的 remotebuild 伺服器代理程式更新現在納入了 XCode 8 的支援。Support for iOS 10 & XCode 8 - An update of the remotebuild server agent for iOS development now includes support for XCode 8.

  • 錯誤顏色標示:因為診斷建置失敗通常讓開發人員必須從頭到尾閱讀建置輸出,所以我們開始在建置輸出窗格中以顏色標示錯誤,以便閱讀 (圖 47)。Error colorization - Because diagnosing build failures often requires developers to read through build output, we have started to colorize errors in the build output pane for easier reading (Figure 47). 此外,我們也新增標頭以框出建置處理序中的步驟,以協助開發人員找出建置處理序中發生失敗處。Moreover, we have added headers to delineate steps in the build process to help developers identify where in the build process the failure occurred.

Pretty printing

(圖 47) 顏色標示的錯誤
Pretty printing
(Figure 47) Colorized Errors

  • 產品內取得:除了新的輕量型安裝讓您更快建置 Cordova 應用程式外,我們現在還新增了從 Visual Studio 取得額外組建的途徑,而不需要中斷開發 (圖 48)。In-product acquisition - In addition to the new light-weight installation to get you building Cordova apps faster, we have now added pathways from within Visual Studio to acquire additional build pieces as your development continues (Figure 48). 如果您尚未安裝 Android 或 Windows 元件,可以透過部署列加以取得,該列會啟動 Visual Studio 安裝程式並引導您完成安裝程序。If you have not installed Android or Windows components, you can get them through the deploy bar, which will launch Visual Studio setup and guide you through the installation process.

In-product acquisition

(圖 48) 產品內取得
In-product acquisition
(Figure 48) In-product acquisition

  • 快速可靠的組建:新的 Visual Studio 安裝程式結合了經過完整驗證的協力廠商元件工具鏈離線安裝,不僅讓組建更快安裝,也更容易進行疑難排解及修正。Fast, reliable builds - The new Visual Studio Installer, combined with offline installation of a fully validated toolchain of 3rd party components, provides for faster builds that are also easier to troubleshoot and fix.
重要事項

現在可以選用適用於 Android 和 Windows 的建置工具和模擬器。Build tools and emulators for Android and Windows are now optional. 您可以透過建置/部署功能表列以動態方式加以取得。You can acquire them dynamically through the build/deploy menu bar. 這一版的 Visual Studio 不支援 Windows 市集 8.1 專案。This release of Visual Studio does not support Windows Store 8.1 projects. 建議您更新 Cordova 專案以 Windows 10 為目標。We recommend that you update your Cordova projects to target Windows 10. 最低支援的 Cordova 版本提升至 6.0.0。Minimum supported Cordova version is raised to 6.0.0. 目標為 6.0.0 以下 Cordova 版本的專案必須在 config.xml 中升級專案,才能在 Visual Studio 2017 中建置及部署。Projects targeting a Cordova version lower than 6.0.0 will need to upgrade their project in config.xml to build and deploy in Visual Studio 2017.


Node.js Tools for Visual Studio Node.js Tools for Visual Studio

Node.js Tools for Visual Studio 將 Visual Studio 轉變為功能強大的 Node.js 開發環境。Node.js Tools for Visual Studio turns Visual Studio into a powerful Node.js development environment. 此版本著重於穩定性、效能及整體產品品質,包括:This release focuses on stability, performance, and overall product quality, including:

  • 與新的 Salsa JavaScript 語言服務更緊密整合。Better integration with the new Salsa JavaScript language service.
  • 降低記憶體及 CPU 使用量,並縮短專案載入時間。Reduced memory and CPU usage, and shorter project load times.
  • 支援 Pug 範本檔案。Support for Pug template files.
  • 更多最新的專案範本。More up-to-date project templates.
  • 支援 Mocha 3.x 測試架構。Support for Mocha 3.x test framework.
  • 修正多項錯誤。Numerous bug fixes.

感謝每位優秀的參與者,讓此版本的 Node.js Tools for Visual Studio 得已面世。Thank you to all the amazing contributors who made this release of Node.js Tools for Visual Studio possible. 如需詳細資訊,請查看 GitHub 上 Node.js Tools 專案的開放原始碼。For more information, check out the open source Node.js Tools project on GitHub.


Visual Studio Tools for Unity Visual Studio Tools for Unity

使用 Visual Studio 針對所有平台撰寫 Unity 遊戲並對其偵錯。Use Visual Studio to write and debug Unity games for all platforms. Visual Studio Tools for Unity 3 (圖 49) 現在可隨新 Visual Studio 2017 安裝程式中的「使用 Unity 進行遊戲開發」工作負載安裝。Visual Studio Tools for Unity 3 (Figure 49) is now available to be installed with the "Game Development with Unity" workload in the new Visual Studio 2017 installer. Visual Studio Tools for Unity 3 著重於提升 Unity 開發人員的程式碼編輯與偵錯體驗,以及整體產品品質,包括:Visual Studio Tools for Unity 3 focuses on improving the code editing and debugging experience for Unity developers as well as overall product quality, including:

  • Unity 訊息的 Intellisense 支援。IntelliSense support for Unity messages.
  • Unity 訊息的程式碼顏色標示。Code colorization of Unity messages.
  • 改進 Unity 偵錯工具中的運算式評估。Improved expression evaluation in the Unity debugger.
  • 改進 Unity 訊息精靈,讓所有 Unity 類型都能接收訊息。Improved Unity message wizards to support all Unity types able to receive messages.
  • 修正多項錯誤並進行最佳化。Numerous bug fixes and optimizations.

Code completion session for Unity messages

(圖 49) Unity 訊息的程式碼完成工作階段
Code completion session for Unity messages
(Figure 49) Code completion session for Unity messages


RedgateRedgate

Visual Studio 隨附的 Redgate Data ToolsRedgate Data Tools Included with Visual Studio

為了將 Visual Studio 2017 DevOps 功能擴充至 SQL Server 資料庫開發,資料儲存體和處理工作負載中現在已提供 Redgate Data Tools,包含 Redgate SQL Prompt Core、Redgate SQL Search 和 Redgate ReadyRoll Core。To extend Visual Studio 2017 DevOps capabilities to SQL Server database development, Redgate Data Tools, comprising Redgate SQL Prompt Core, Redgate SQL Search, and Redgate ReadyRoll Core, are now available in the Data Storage and Processing workload.

  • Redgate ReadyRoll Core (隨附於 Visual Studio Enterprise 2017) 可協助您開發移轉指令碼、使用原始檔控制管理資料庫變更,並且可以將 SQL Server 資料庫變更和應用程式變更的部署安全地自動化。Redgate ReadyRoll Core, included with Visual Studio Enterprise 2017, helps you develop migration scripts, manage database changes using source control, and safely automate deployments of SQL Server database changes alongside applications changes.
  • 透過隨附於 Visual Studio Enterprise 2017 的 Redgate SQL Prompt Core,您可以透過智慧型程式碼自動完成的協助,更快且更精確地撰寫 SQL。Redgate SQL Prompt Core, included with Visual Studio Enterprise 2017, helps you write SQL more quickly and accurately with the help of intelligent code completion. SQL Prompt 會自動完成資料庫及系統物件和關鍵字,並在輸入期間提供資料行建議。SQL Prompt autocompletes database and system objects and keywords, and offers column suggestions as you type. 由於您不再需要記住所有資料行名稱或別名,這會使程式碼更加簡潔,並具有更少的錯誤。This results in cleaner code and fewer errors because you don’t need to remember every column name or alias.
  • Redgate SQL Search,隨附於所有 Visual Studio 2017 版本,可協助您跨多個資料庫快速尋找 SQL 片段和物件以提高產能。Redgate SQL Search, included with all editions of Visual Studio 2017, increases your productivity by helping you quickly find SQL fragments and objects across multiple databases.

NuGet NuGet

Visual Studio 2017 內含 NuGet 4.0。Visual Studio 2017 includes NuGet 4.0. 此版本著重於支援主要專案類型的套件參考、品質改進及效能提升:This release is focused on supporting package reference for the majority project types, quality improvements, and performance improvements:

  • 現在可以在 WPF、WindowsForms 及 UWP 專案中使用套件參考 (英文) 來管理套件。In WPF, WindowsForms, and UWP projects, packages can now be managed using package references.
  • 已針對「輕量型解決方案還原」改進 NuGet 還原支援。NuGet restore support has been improved for Lightweight Solution Restore. 現在不需要載入任何專案就能夠執行還原。Restores can now be performed without needing to load any projects.
  • 在 .NET Core 與 ASP.NET Core 專案中,現在會使用套件參考來管理套件。In .NET Core and ASP.NET Core projects, packages are now managed using package references.
  • 在 Visual Studio 2017 及更新版本中,整個電腦的 NuGet.config 現在位於 %PROGRAMFILES(X86)%\NuGet\Config\NuGet.config。以後,nuget.exe v4.0.0 + 也會考慮新的位置以進行機器全域設定。In Visual Studio 2017 and above, the machine-wide NuGet.config is now located at %PROGRAMFILES(X86)%\NuGet\Config\NuGet.config. Going forward, nuget.exe v4.0.0 + will also consider the new location for the machine-wide configuration. 程式資料中的 NuGet.config 將無法再隱含參考或考慮進行 nuget.config 的階層式合併。NuGet.config in program data will no longer be implicitly referenced or considered for the hierarchical merging of nuget.config.

XAML 工具應用程式 Tools for XAML Apps

XAML 編輯後繼續XAML Edit & Continue

Visual Studio 現在允許您在 WPF 或通用 Windows 應用程式執行時編輯 XAML。Visual Studio now allows you to edit XAML while your WPF or Universal Windows App is running. 在 Visual Studio 中對應用程式偵錯時,您可以在 XAML 程式碼編輯器中變更標記,不必重新編譯,變更就會反映在執行中的應用程式。While debugging your app in Visual Studio, you can make a change to the markup in the XAML code editor and the change will be reflected in the running app without having to recompile.

XAML 編輯器生產力功能加強XAML Editor Productivity Enhancements

  • IntelliSense 篩選:鍵入 XAML 時,完成清單只會顯示相符的類型,並選取最接近的相符項目。IntelliSense filtering - When typing XAML, the completion list will only display types that match and the closest match will be selected.
  • 適用於 x:Bind 的 IntelliSense:我們已允許在繫結至 Path 及 Events 時,對 x:Bind 使用 IntelliSense 完成。IntelliSense for x:Bind - We have enabled IntelliSense completion for x:Bind when binding to Path and Events.
  • 命名空間完成:如果命名空間的參考不存在 (圖 50),鍵入時將無法取得 IntelliSense 支援。Namespace completion - If the reference to the namespace does not exist (Figure 50), you will not get IntelliSense support while typing. 當您完成鍵入時,會提供燈泡建議支援,以產生和插入類型的前置詞,並在 XAML 文件中加入命名空間定義。When you have finished typing, you will get light bulb suggestion support to generate & insert the prefix for the type and add the namespace definition in your XAML document.

IntelliSense_without namespace

(圖 50) IntelliSense 無命名空間
IntelliSense_without namespace
(Figure 50) IntelliSense_without namespace

  • 若是需要前置詞的鍵入,如果命名空間的參考已經存在,IntelliSense 就會提供前置詞的自動完成。For types that require a prefix, IntelliSense will offer to auto-complete the prefix if the reference to the namespace already exists.


  • 命名空間前置詞重新命名重構: - 您可以在游標位於前置詞上時,使用操作功能表或鍵盤快速鍵 Ctrl+R+R 叫用重新命名動作 (圖 51)。Namespace prefix rename refactoring - You can invoke the rename action (Figure 51) from the context menu or using the keyboard shortcut Ctrl+R+R when the cursor is on the prefix. 您也可以在套用變更前加以預覽。You can also preview changes before applying them.

Namespace Prefix Rename

(圖 51) 命名空間前置詞重新命名
(Figure 51) Namespace prefix rename

  • 移除及排序命名空間: - 您現在可以使用操作功能表或鍵盤快速鍵 Ctrl+R+G,移除不必要的命名空間並加以排序 (圖 52)。Remove and sort namespaces - You can now remove unnecessary namespaces (Figure 52) and sort them from the context menu or by using the keyboard shortcut Ctrl+R+G. 如果您的 XAML 文件有不必要的命名空間,您也會看到燈泡,提供您加以移除的選項。If your XAML document has unnecessary namespaces, you will also see a light bulb that will give you the option to remove them.

Lightbulb_remove unnecessary namespace

(圖 52) lightbulb_remove 不必要的命名空間
Lightbulb_remove unnecessary namespace
(Figure 52) lightbulb_remove unnecessary namespace

  • XAML 編輯器的 .editorconfig 支援:您可以定義 .editorconfig 檔案中的 indent_style、indent_size 及 tab_width 設定,用以取代在 [工具] > [選項] 中定義的設定。.editorconfig support for XAML editor - You can define settings for indent_style, indent_size, and tab_width in the .editorconfig file which will be used instead of the settings defined in Tools > Options.

  • XAML 編輯器的結構視覺化檢視:Visual Studio 現在內建結構視覺化檢視 (亦即縮排輔助線) (圖 53),而不需要另外的延伸模組。Structure Visualizer for XAML editor - The structure visualizer (i.e. indent guides) (Figure 53) is now built into Visual Studio, and a separate extension is not required. 此功能讓您處理的程式碼區塊內容不須捲動即一目瞭然。This feature provides the context of the block of code you are working on at a glance, without scrolling.

Structure Visualizer for XAML editor

(圖 53) XAML 編輯器的結構視覺化檢視
Structure Visualizer for XAML editor
(Figure 53) Structure Visualizer for XAML editor

XAML 效能提升XAML Performance Improvements

  • 改善 XAML 索引標籤切換效能︰XAML 索引標籤切換效能已大幅提升。Improved XAML Tab Switch performance - XAML Tab Switch performance has improved significantly. 在範例客戶專案中,我們見證切換時間減少超過 90%。In sample customer projects, we have seen switching time reduce by over 90%.
  • 解決 XAML 編輯器鍵入延遲:XAML 鍵入速度比以往更快。Addressing XAML editor typing delays - XAML typing is now faster than ever. 我們已對減少 XAML 編輯器鍵入延遲進行多項調查,大多數開發人員應該會發現 XAML 編輯器和 XAML IntelliSense 的回應能力都已提升。We have made several investments to reduce XAML editor typing delays, and most developers should find the XAML editor and XAML IntelliSense to be more responsive. 這在編輯專案中取用協力廠商控制項或大型控制項程式庫的 XAML 檔案時最為明顯。This will be most apparent when editing a XAML file in projects that consume third party controls or large control libraries.

資料工具和 SQL Server Data Tools and SQL Server

SQL Server Data ToolsSQL Server Data Tools

Visual Studio 2017 已隨附 SQL Server Data Tools 的最新更新,可支援 Azure SQL DatabaseSQL Server 2016 的最新功能。The latest update of SQL Server Data Tools has been included in Visual Studio 2017, which enables support for the latest features in Azure SQL Database and SQL Server 2016.

本版結合了簡易開發、測試,以及使用 Visual Studio 在所有支援的 SQL Server 版本和資料庫平台 (包括內部部署和雲端) 上部署資料庫。This release brings together the ease of developing, testing, and deploying a database on all supported versions of SQL Server and database platforms - both on-premises and cloud - by using Visual Studio. 此版也包含資料庫可程式性介面區的增強功能,且改善 SQL Server Data Tools 的 SQL 連線體驗,它現在會自動探索只要按一下即可連接的 SQL Server 和 Azure SQL Database。The release also includes database programmability surface area enhancements, and it improves the SQL connection experience in SQL Server Data Tools, which now automatically discovers SQL Server and Azure SQL Databases that you can connect to with a simple click.

此外,Visual Studio 2017 引進了新的 Azure SQL Database 驗證類型,以及 Azure Active Directory 整合式與密碼驗證。Additionally, Visual Studio 2017 addresses new Azure SQL Database authentication types, as well as Azure Active Directory Integrated and Password authentication.


Developer Analytics Tools Developer Analytics Tools

Visual Studio 2017 包括 Developer Analytics Tools v8.6,含有下列功能改善:Visual Studio 2017 includes Developer Analytics Tools v8.6, with the following improvements:

  • CodeLens 現在會在傳送資料至 Application Insights 資源的專案中,顯示偵錯和即時遙測資料。CodeLens now shows both debug and live telemetry data in projects that send data to an Application Insights resource.
  • 例外狀況的 CodeLens 會連結至 Application Analytics,以顯示例外狀況對使用者造成的影響。CodeLens for exceptions links to Application Analytics to show user impact of an exception.
  • CodeLens 會顯示Application Insights SDK 專案中,來自本機偵錯工作階段的要求。CodeLens shows requests from local debug sessions, in projects with the Application Insights SDK.
  • 要求與例外狀況的 CodeLens 現在可從 Visual Basic 專案取得。CodeLens for requests and exceptions are now available from Visual Basic projects.
  • 從 Visual Studio 發行您的應用程式後,快顯通知現在會顯示 [即時計量]。Live Metrics are now shown in a toast notification after you publish your app from Visual Studio.
  • [設定] 視窗現在會顯示 Application Insights 定價資訊。Application Insights pricing information is now shown in the Configuration window.
  • [搜尋和趨勢] 工具現在會顯示可用性事件。Availability events are now shown in the Search and Trends tools.
  • [搜尋和診斷] 工具中的事件現在會顯示它們依據 SDK 中的調適性取樣而發生的頻率計數。Events in the Search and Diagnostic Tools now show counts for how often they occurred based on adaptive sampling in the SDK.
  • CodeLens 顯示 Application Insights SDK 專案之本機偵錯工作階段期間所發生的例外狀況。CodeLens shows exceptions that have occurred during local debug sessions for projects with the Application Insights SDK.
  • [Application Insights 組態] 視窗的新設計。New design for the Application Insights Configuration window.
  • 例外狀況的 CodeLens 現在連結至 Application Analytics,以查看例外狀況對使用者的影響。CodeLens for exceptions now has a link to Application Analytics to see the impact an exception has had on users.
  • 將 Application Insights 新增至專案時,現在已新增 Application Insights JavaScript SDK 來收集頁面檢視遙測。The Application Insights JavaScript SDK for collecting page view telemetry is now added when Application Insights is added to a project.
  • 從 Visual Studio 發行應用程式後,發行註釋現在會傳送至 Application Insights 資源。Publish annotations are now sent to your Application Insights resource when you publish your app from Visual Studio.
  • 紅色與黃色的 Application Insights CodeLens 指標現在會顯示捲軸標記。Scrollbar markers are now shown for red and yellow Application Insights CodeLens indicators.

深入了解 Application Insights,請參閱Microsoft Azure 文件Learn more about Application Insights in the Microsoft Azure documentation.


Office Developer Tools for Visual Studio Office Developer Tools for Visual Studio

此版本內含的 Office Developer Tools 具有最新功能及更新如下:This release includes Office Developer Tools with the latest features and updates, as follows:

  • Excel、Word、PowerPoint 及 Outlook 特定的新 Office 增益集範本。New Office Add-in templates specific to Excel, Word, PowerPoint, and Outlook.
  • 支援新的 Office 增益集功能,如增益集命令、虛擬環境 UI 和新版的 Office.js。Support for new Office Add-in features such as add-in commands, Fabric UI, and a new version of Office.js.
  • 範本中的新起始程式碼,展示如何開始使用新的 Office 增益集功能。New starter code in the templates that will showcase how to get started with new Office Add-in features.
  • 支援 SharePoint 2016 的 SharePoint 解決方案和增益集範本。Support for SharePoint 2016 in SharePoint solutions and add-in templates.

即時驗證架構相依性 Live Architecture Dependency Validation

若您在 Visual Studio Enterprise 中設有相依性驗證圖 (又稱為分層圖),當您在 [程式碼編輯器] 中輸入程式碼時,只要有違反架構相依性規則的情況,現在會即時收到通知 (圖 54)。If you have setup Dependency Validation diagrams (aka Layer diagrams) in Visual Studio Enterprise, you now get real-time notifications (Figure 54) of any violations of the architectural dependency rules as you type your code in the Code Editor. 錯誤會出現在 [錯誤清單] 中,而且文字編輯器中的波浪線會顯示違規的確切位置。Errors appear in the Error List and squiggles will appear in the text editor showing you the precise location of the violation. 如此較不容易引進您不想要的相依性。You are now less likely to introduce unwanted dependencies.

Live Architecture Dependency validation

(圖 54) 即時架構相依性驗證
Live Architecture Dependency validation
(Figure 54) Live Architecture Dependency validation


開發人員命令提示字元 Developer Command Prompt

Visual Studio 2017 開發人員命令提示字元指令碼已經過重構,以支援新的安裝體驗:The Visual Studio 2017 Developer Command Prompt scripts have been refactored to support the new installation experience:

  • 環境變數只會反映已安裝的工作負載。Environment variables will reflect installed workloads only.
  • Visual Studio 開發人員命令提示字元捷徑應該會與舊版相容。The Visual Studio Developer Command Prompt shortcut should be compatible with previous releases.
  • 您現在可以透過命令列引數設定開發人員命令提示字元指令碼︰You can now configure Developer Command Prompt scripts via command line arguments:
    • 如需詳細資訊,請在命令提示字元中,呼叫 common7\tools\vsdevcmd.bat -help (從 Visual Studio 安裝目錄)。In a command prompt, call common7\tools\vsdevcmd.bat -help (from the Visual Studio installation directory) for details.

Azure SDK for .NET Azure SDK for .NET

現在可以使用新的 Visual Studio 安裝程式安裝 Azure SDK for .NET Visual Studio。The Azure SDK for .NET Visual Studio is now available to be installed with the new Visual Studio installer. 如果您先前使用 Web Platform Installer 安裝 Azure SDK for .NET,您現在可以取得相同的元件,方法是使用新的 Visual Studio 安裝程式安裝 Azure 工作負載。If you previously installed the Azure SDK for .NET using the Web Platform Installer, you can now get the same components by installing the Azure workload using the new Visual Studio Installer. 安裝的套件與 2.9.5 的 SDK 版本位於相同的功能層級。The packages that are installed are at the same feature level as the 2.9.5 version of the SDK. 對於此版本的 Visual Studio 和所有未來的版本,Azure SDK for .NET 只可從 Visual Studio 安裝程式取得。For this version of Visual Studio and all future versions, the Azure SDK for .NET will only be available from the Visual Studio installer.


Visual Studio 2017 版本資訊記錄Visual Studio 2017 Release Notes History

Visual Studio 2017 Preview 版本資訊Visual Studio 2017 Preview Release Notes

The Developer Community Portal 查看 Visual Studio 2017 15.5 版中已修正的客戶回報問題。The Developer Community Portal See customer-reported issues fixed in Visual Studio 2017 version 15.5.

Visual Studio 2017 目前的版本資訊Visual Studio 2017 Current Release Notes

The Developer Community Portal 查看 Visual Studio 2017 15.5 版中已修正的客戶回報問題。The Developer Community Portal See customer-reported issues fixed in Visual Studio 2017 version 15.5.

Visual Studio 2017 15.4 版資訊Visual Studio 2017 version 15.4 Release Notes

The Developer Community Portal 查看 Visual Studio 2017 15.4 版中已修正的客戶回報問題。The Developer Community Portal See customer-reported issues fixed in Visual Studio 2017 version 15.4.

Visual Studio 2017 15.3 版資訊Visual Studio 2017 version 15.3 Release Notes

The Developer Community Portal 查看 Visual Studio 2017 版本 15.3 中已修正的客戶回報問題。The Developer Community Portal See customer-reported issues fixed in Visual Studio 2017 version 15.3.

Visual Studio 2017 版本 15.2 版本資訊Visual Studio 2017 version 15.2 Release Notes

The Developer Community Portal 查看 Visual Studio 2017 版本 15.2 中已修正的客戶回報問題。The Developer Community Portal See customer-reported issues fixed in Visual Studio 2017 version 15.2.

Visual Studio 2017 版本 15.1 版本資訊Visual Studio 2017 version 15.1 Release Notes

The Developer Community Portal 查看 Visual Studio 2017 版本 15.1 中已修正的客戶回報問題。The Developer Community Portal See customer-reported issues fixed in Visual Studio 2017 version 15.1.


頁面頂端

Top of Page