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

開發人員社群 | 系統需求 | 相容性 | 可散發程式碼 | 授權條款 | 部落格 | 已知問題 |Developer Community | System Requirements | Compatibility | Distributable Code | License Terms | Blogs | Known Issues |


這不是 Visual Studio 的最新版本。This is not the latest version of Visual Studio. 若要查看 Visual Studio 2019 最新版本的資訊,請瀏覽目前的版本資訊 (機器翻譯) 頁面。To see information on the latest version, Visual Studio 2019, please visit the current Release Notes page.

Download Visual Studio 2017 Community Button Download Visual Studio 2017 Professional Button Download Visual Studio 2017 Enterprise Button Download Visual Studio 2017 Build Tools Button

15.8 的新功能What's New in 15.8

Visual Studio 部落格 是 Visual Studio 工程小組提供產品見解的官方來源。The Visual Studio Blog is the official source of product insight from the Visual Studio Engineering Team. 您可以在下列文章找到有關 Visual Studio 15.8 版的深入資訊:You can find in-depth information about the Visual Studio 15.8 releases in the following posts:

Visual Studio 2017 15.8 版預覽版本Visual Studio 2017 version 15.8 Preview Releases

Visual Studio 2017 15.8 版公告Visual Studio 2017 version 15.8 Announcements

已知問題Known Issues

查看 Visual Studio 2017 15.8 版中所有現有的已知問題和可用的因應措施。See all existing known issues and available workarounds in Visual Studio 2017 version 15.8.

Visual Studio 2017 Known Issues Visual Studio 2017 Known Issues

PowerShell tools 元件已從 Visual Studio 設定中移除。The PowerShell tools component has been removed from Visual Studio setup. 如果您升級至 Visual Studio update 8 preview 3 或更新版本,則會移除已安裝的 PowerShell 工具。If you upgrade to Visual Studio update 8 preview 3 or later, the installed PowerShell tools is removed. 如果您想要繼續使用此元件,請從 PowerShell Tools for Visual Studio 2017的 Visual Studio 資源庫進行安裝。If you want to continue using this component, install from Visual Studio gallery at PowerShell Tools for Visual Studio 2017.

Release Notes Icon Visual Studio 2017 15.8 版 Preview 1Visual Studio 2017 version 15.8 Preview 1

2018年5月7日發行released May 07, 2018

15.8 Preview 1 的新功能摘要Summary of What's New in 15.8 Preview 1

15.8 Preview 1 的新功能New Features in 15.8 Preview 1

15.8 Preview 1 中已修正的問題Issues Fixed in 15.8 Preview 1

這些是此版本中已解決的客戶回報問題。These are the customer-reported issues addressed in this release. 如果您要尋找 15.8 Preview 1 中已修正的特定客戶回報問題,請造訪 開發人員社群If you are looking for a specific customer-reported issue that has been fixed in 15.8 Preview 1, visit the Developer Community.

15.8 Preview 1 的新功能詳細資料Details of What's New in 15.8 Preview 1


巨集的 C++ 快速諮詢工具提示現在會顯示它們擴充的內容,而不只是其定義。C++ Quick Info tooltips on macros now show what they expand to, rather than just their definition. 這特別適用於參考其他巨集的複雜巨集,因為它會釐清前置處理器所取代的巨集識別碼。This is particularly useful for complex macros that reference other macros as it clarifies what the macro identifier is replaced with by the preprocessor.

Visual Studio Web ToolsVisual Studio Web Tools

程式庫管理員是包含在 Visual Studio 2017 中的新功能。Library Manager is a new feature included in Visual Studio 2017. 它可協助您管理 Web 專案中的用戶端程式庫。It helps you manage client-side libraries in your web projects.

容器工具Container Tools

在 Visual Studio 15.8 Preview 1 中,我們新增了適用于 ASP.NET Core Web 專案的單一專案 Docker 容器體驗。In Visual Studio 15.8 Preview 1, we have added a new single project Docker container experience for ASP.NET Core web projects. 這可補充現有 Docker Compose 容器工具,並提供更簡單且更容易的方式直接從 Visual Studio 建立、偵錯和建置 Docker 容器。This supplements the existing Docker Compose-based container tooling and provides a simpler, easier way to create, debug, and build Docker containers right from Visual Studio.

您可以在建立專案時新增 Docker 支援, (圖 1) :You can add Docker support when creating the project (Figure 1):

Enable Docker Support
(圖 1) 啟用 Docker 支援(Figure 1) Enable Docker Support

或者,您可以透過方案總管 (圖 2) 中專案的內容功能表,啟用對現有專案的 Docker 支援。Or, you can enable Docker support to an existing project through the project's context menu in Solution Explorer (Figure 2). 這樣做之後,Visual Studio 會在專案中建立單一 Dockerfile。Once you do this, Visual Studio creates a single Dockerfile in the project. 您可以選擇 Windows 或 Linux。You have the option to choose either Windows or Linux.

Add Docker Support
(圖 2) 新增 Docker 支援(Figure 2) Add Docker Support

Visual Studio 也會加入偵錯工具啟動設定檔 ([圖 3 ] 的) ,以便在容器內執行專案時進行調試。Visual Studio also adds a debugger launch profile (Figure 3) for Docker so that the project can be debugged while running within a container.

Docker Launch Profile
(圖 3) Docker 啟動設定檔(Figure 3) Docker Launch Profile

如果您的方案具有多個 Docker 專案,則根據預設,當您選擇啟動方案時只會執行一個容器。If you have a solution with multiple Docker projects, by default, only one container runs when you choose to start the solution. 如果您想要同時執行多個容器,則可以使用滑鼠右鍵按一下 [方案總管] 中的方案,並依序選取 [設定啟始專案] 和 [多個啟始專案],然後將 [動作] 下拉式清單設定為 [啟動] 或 [啟動但不偵錯] 您想要執行的所有專案。If you wish to run multiple containers simultaneously, you can right-click on the solution in Solution Explorer and select Set Startup Projects, then Multiple startup projects, and then set the Action drop-down to Start or Start without debugging for all projects that you want to run.

以您想要的方式執行容器化專案之後,在準備好推送至 Azure Container Registry 或 DockerHub 時,可以使用滑鼠右鍵按一下專案,然後選取 [Build Docker Image] (建置 Docker 映像) 以在本機建置映像。Once you have your containerized project running the way you want, you can right-click on the project and select Build Docker Image to build an image locally, when ready to push to Azure Container Registry or DockerHub.

您也可以透過 [圖) 4] 的新 容器協調器支援 (選項,將現有的 Docker Compose 型功能新增至 ASP.NET Core Web 專案。You can also add the existing Docker Compose-based functionality to an ASP.NET Core web project through the new Container Orchestrator Support option (Figure 4). 在 [方案總管] 中以滑鼠右鍵按一下 ASP.NET Core Web 專案,並選取 [新增] > []Container Orchestrator Support] (容器協調器支援),然後從下拉式功能表中選取 [Docker Compose]。Right-click on the ASP.NET Core web project in Solution Explorer, select Add > Container Orchestrator Support, and then select Docker Compose from the drop-down menu.

Add Container Orchestrator Support
(圖 4) 新增協調流程支援(Figure 4) Add Orchestration Support

Release Notes Icon Visual Studio 2017 15.8 版 Preview 1。1Visual Studio 2017 version 15.8 Preview 1.1

2018年5月8日發行released May 08, 2018

15.8 Preview 1.1 中修正的問題Issues Fixed in 15.8 Preview 1.1

  • 此版本提供修正程式,可減少解決方案載入期間的記憶體使用量和 GC 壓力。This release provides a fix that reduces memory usage and GC pressure during solution load.

Release Notes Icon Visual Studio 2017 15.8 版 Preview 1 資訊安全諮詢注意事項Visual Studio 2017 version 15.8 Preview 1 Security Advisory Notice

更新日期:2018 年 5 月 8 日updated May 08, 2018

適用於 .NET Core 服務阻斷弱點的 Microsoft 資訊安全諮詢Microsoft Security Advisory for .NET Core Denial Of Service Vulnerability


Microsoft 發佈此資訊安全諮詢的目的,是提供 .NET Core 與 .NET 原生版本 2.0 中有關弱點的資訊。Microsoft is releasing this security advisory to provide information about a vulnerability in .NET Core and .NET native version 2.0. 此諮詢也提供了指導,讓開發人員了解如何才能正確地更新應用程式來移除此弱點。This advisory also provides guidance on what developers can do to update their applications to remove this vulnerability.

Microsoft 注意到 .NET Framework 和 .NET Core 未正當處理 XML 文件時,會產生服務阻斷弱點。Microsoft is aware of a denial of service vulnerability that exists when .NET Framework and .NET Core improperly process XML documents. 成功惡意探索此弱點的攻擊者可能會使 .NET Framework、.NET Core 或 .NET 原生應用程式發生服務阻斷。An attacker who successfully exploited this vulnerability could cause a denial of service against a .NET Framework, .NET Core, or .NET native application.

本更新會修正 .NET Framework、.NET Core 和 .NET 原生應用程式處理 XML 文件的方式,進而解決該弱點。The update addresses the vulnerability by correcting how .NET Framework, .NET Core, and .NET native applications handle XML document processing.

若您的應用程式為 ASP.NET Core 應用程式,則我們也建議開發人員更新至 ASP.NET Core 2.0.8。If your application is an ASP.NET Core application, developers are also advised to update to ASP.NET Core 2.0.8.

Release Notes Icon Visual Studio 2017 15.8 版 Preview 2Visual Studio 2017 version 15.8 Preview 2

於 2018 年 5 月 31 日發行released May 31, 2018

15.8 Preview 2 的新功能摘要Summary of What's New in 15.8 Preview 2

15.8 Preview 2 的新功能New Features in 15.8 Preview 2

15.8 Preview 2 中已修正的問題Issues Fixed in 15.8 Preview 2

這些是此版本中已解決的客戶回報問題。These are the customer-reported issues addressed in this release. 如果您要尋找 15.8 Preview 2 中已修正的特定客戶回報問題,請造訪 開發人員社群If you are looking for a specific customer-reported issue that has been fixed in 15.8 Preview 2, visit the Developer Community.

15.8 Preview 2 的新功能詳細資料Details of What's New in 15.8 Preview 2


您現在可以選擇在開始安裝之前下載所有安裝檔案。You now have the option to download all installation files before starting your installation.

  • 若要使用這個新選項,請選取安裝程式中的 [全部下載後安裝] 選項 (圖 1)To use this new option, select the "Download all, then install" option in the installer (Figure 1). 如果您有慢速的網際網路連線,則建議使用此選項。We suggest this option if you have a slower internet connection.
  • 預設選項會保留 [在下載時安裝],以平行下載和安裝。The default option remains "Install while downloading", which downloads and installs in parallel.
Download, then install option
(圖 1) [全部下載後安裝] 選項(Figure 1) Download, then install option


我們新增了一個選項,可停用在前一個會話中開啟的檔,因為重新開啟特定類型的檔案或設計工具可能會延遲解決方案載入。We've added an option to disable reopening documents that were open in the previous session, as reopening certain types of files or designers can delay solution load.

  • 在 [工具] > [選項] > [專案] > [方案] > [一般] 中,切換此選項。Toggle this option in Tools > Options > Projects > Solutions > General.


當您安裝了多個 Visual Studio 2017 的實例時,您現在可以選取要在進行 (圖 2) 的偵錯工具時,要將擴充功能部署至哪一個實例。When you have more than one instance of Visual Studio 2017 installed, you can now select which instance to deploy your extension to when debugging (Figure 2). 因此,您可以在 Visual Studio 發行通道中開發,而在預覽通道中偵錯。That way you can develop in the e.g. the Visual Studio release channel while debugging in the preview channel.

Select your debug instance
(圖 2) 選取 debug 實例(Figure 2) Select debug instance


您現在可以使用 Visual Studio 2017 的組建工具, (VSIX) 專案中建立 Visual Studio 擴充功能。You can now build Visual Studio extension (VSIX) projects using the Build Tools for Visual Studio 2017.

效能分析 (CPU 使用量)Performance Profiling (CPU Usage)

此版本包含效能分析工具之 CPU 使用量工具的下列改善 (可透過 ALT-F2 取得):This release contains the following improvements to the CPU Usage tool of the Performance Profiler (available through ALT-F2):

  • [呼叫樹狀結構] 檢視現在預設會依邏輯呼叫堆疊來顯示非同步執行。The Call Tree view now displays asynchronous execution by logical call stack by default. 您可以取消核取 [CPU 使用量] 主要檢視之 [篩選] 下拉式清單中的 [拼接非同步程式碼] 選項,來關閉此行為。You can turn off this behavior by unchecking the option "Stitch Async Code" in the Filter dropdown of the CPU Usage main view.
  • 已新增 [模組/函式] 檢視,其依模組 (dll) 以及依模組內的函式顯示效能資訊。Added a Modules/Functions view which displays performance information by module (dll) and by function within a module. 其中一個可以從下列位置顯示 [模組/函式] 檢視:從 [CPU 使用量] 主要檢視中選取函式時可用的操作功能表,或 [呼叫樹狀結構] 或 [呼叫者/被呼叫者] 檢視中的 [檢視] 下拉式清單。One can display the Modules/Functions view from the context menu available when selecting a function in the CPU Usage main view, or from the View dropdown in the Call Tree or Caller/Callee views.
  • 已將「執行個體表示」新增至 CPU 使用量工具主要檢視中的 CPU 使用量圖形。Added 'instance indication' to the CPU Usage graph in the CPU Usage tool's main view. 按兩下任何 [CPU 使用量] 檢視中所列的函式,即可於函式正在執行時檢視執行個體 (例如,在堆疊上)。You can view the instances when a function is executing (for instance, on the stack) by double clicking a function listed in any of the CPU Usage views.


此版本包含下列 c + + 更新和增強功能:This release has the following updates and enhancements to C++:

  • 新增的 [ 加入 > 新專案 ] 範本,遵循在 [ 工具 > 選項] 中針對 ClangFormat 所指定的程式碼慣例來產生 clang 格式檔案。Added Add > New Item template for generating a .clang-format file following the coding convention specified for ClangFormat in Tools > Options. 如果選取 Visual Studio 慣例,則產生的檔案會嘗試從 [工具] > [選項] 比對使用者的目前 Visual Studio 格式化組態。If the Visual Studio convention is selected, the generated file tries to match the user's current Visual Studio formatting configuration from Tools > Options.
  • 已將寄送的 clang-format.exe 版本更新至 6.0.0。Updated the shipped clang-format.exe version to 6.0.0.
  • 範本,可簡化新增 CppProperties.json 的組態。Templates to simplify adding configurations to CppProperties.json.

Visual Studio Tools for XamarinVisual Studio Tools for Xamarin

此版本包含下列 Xamarin 更新:This release contains the following updates for Xamarin:

Hyper-v Android 模擬器支援Hyper-V Android emulator support

此版本包含 與 hyper-v 相容的 Google Android 模擬器預覽, 可在 Windows 10 2018 年4月更新 (圖 3) 中取得。This release contains a preview of the Google Android emulator that is compatible with Hyper-V which is available in the Windows 10 April 2018 Update (Figure 3). 這讓您能夠與其他以 Hyper-V 為基礎的技術 (包括 Hyper-V 虛擬機器、Docker 工具、HoloLens 模擬器等) 並存使用 Google 的 Android 模擬器。This enables you to use Google's Android emulator side-by-side with other Hyper-V based technologies, including Hyper-V virtual machines, Docker tooling, the HoloLens emulator, and more. 使用 Hyper-V 的行動應用程式開發人員,現在能夠使用快速的 Android 模擬器,其一律支援最新的 Android API、使用現成可用的 Google Play Services,並支援 Android 模擬器的所有功能,包括相機、地理位置及 Quick Boot。Mobile app developers who use Hyper-V now have access to a fast Android emulator that always supports the latest Android APIs, works with Google Play Services out of the box, and supports all features of the Android emulator, including camera, geolocation, and Quick Boot.

Screenshot of both the Google Android emulator and HoloLens emulator running at the same time.
(圖 3) Google Android Emulator 和 HoloLens 模擬器
(Figure 3) Google Android Emulator and HoloLens emulator
Xamarin 系結專案的最小支援Minimum support for Xamarin.Mac binding projects

我們在 Visual Studio 2017 中新增了 Xamarin.Mac 繫結專案的最低支援。We have added minimum support for Xamarin.Mac binding projects in Visual Studio 2017. 這讓 Visual Studio 能夠依支援來載入及辨識 Xamarin.Mac 繫結專案。This enables Visual Studio to load and recognize Xamarin.Mac binding projects as supported. 您也可以建置 Xamarin.Mac 繫結專案,但建置流程會在本機執行,而不使用原生 Mac 工具鏈,因此產生的 IL 組件無法用於在應用程式中執行或偵錯。You can also build Xamarin.Mac binding projects, however the build process is performed locally without using the native Mac tool chain so the generated IL assemblies cannot be used for running or debugging in apps.

F # 和 f # 工具F# and F# Tools

我們將焦點放在 # 使用 .NET SDK 樣式專案和 f 編譯器修正時的 F 工具效能 # 。We focused on performance for F# tools when using .NET SDK-style projects and F# compiler fixes.

F # 語言F# language
  • 您可以再次繼承自 FSharpFuncYou can once again inherit from FSharpFunc. 這先前在 F 4.1 中已停用 # 。This was previously disabled in F# 4.1.
  • 修正了 AccessViolationException seq { } 當您 yield! 在發行模式中搭配使用多個收集到的序列時,可以取得的錯誤(bug)。We fixed a bug where you could get an AccessViolationException with seq { } when using yield! with multiple collected sequences in release mode.
  • 我們修正了錯誤 MailboxProcessor.TryReceive() ,在第一次叫用時可能會造成 CPU 使用率尖峰。We fixed a bug in MailboxProcessor.TryReceive() where it could cause a spike in CPU usage on first invocation.
  • 列舉模式比對警告現在會印出 John Wostenberg所涵蓋之程式碼的功能變數名稱。Enum pattern match warnings now print out a field name of an uncovered code, by John Wostenberg.
F# 工具F# tools
  • 我們大幅改善了 # 未使用多目標之 .NET SDK 專案中,新開啟之 F 檔案的語義顏色標示時間。We significantly improved the time to semantic colorization in newly-opened F# files in .NET SDK projects that are not using multi-targeting.
  • 我們大幅改善了 # .NET SDK 專案中未使用多目標的 F IntelliSense 效能。We significant improved IntelliSense performance for F# in .NET SDK projects that are not using multi-targeting.
  • IntelliSense 中的完成資料現在最多會儲存兩分鐘,讓工具提示中的描述保持在最新狀態,直到每個叫用為止。Completion data in IntelliSense is now saved for up to two minutes, allowing descriptions in the tooltip to remain for up until that point per invocation.

Release Notes Icon Visual Studio 2017 15.8 版 Preview 3Visual Studio 2017 version 15.8 Preview 3 New Release icon

2018年6月26日發行released June 26, 2018

15.8 Preview 3 的新功能摘要Summary of What's New in 15.8 Preview 3

15.8 Preview 3 的新功能New Features in 15.8 Preview 3

  • Visual Studio 現在將 .NET Framework 4.7.2 開發工具提供給包含 4.7.2 執行階段的已支援平台。Visual Studio now offers .NET Framework 4.7.2 development tools to supported platforms with 4.7.2 runtime included.
  • 我們已改善專案卸載/重新載入和分支切換期間的效能We improved performance during project unload/reload and branch switching.
  • 運用 Azure Functions 的新增支援,您現在於設定持續傳遞至 Azure 對話方塊中有新的目標主機。With added support for Azure Functions, you now have a new target host in the Configure Continuous Delivery to Azure dialog.
  • Git 和 TFS 狀態現在會適當地更新 .NET Core 專案中的外部檔案變更。Git and TFS status now updates properly for external file changes in .NET Core projects.
  • 我們已新增生產力功能,例如程式碼清除、invert-if 重構、[Go to Enclosing Block] (移至封閉區塊)、多插入號支援,以及新的鍵盤設定檔。We added new productivity features, such as code cleanup, invert-if refactoring, Go to Enclosing Block, Multi-Caret support, and new keyboard profiles.
  • C + + 增強功能 包括範本 IntelliSense、將宏轉換成 constexpr 燈泡,以及實驗編輯器中的程式碼分析波浪線。C++ enhancements include Template IntelliSense, convert macro to constexpr lightbulbs, and experimental in-editor code analysis squiggles.
  • 您現在可以搭配使用跨語言偵錯與 Python 3.7.0rc1。You can now use cross-language debugging with Python 3.7.0rc1.
  • 效能分析現在可讓您暫停/繼續資料收集,並新增 .NET 物件配置追蹤工具。Performance Profiling now offers the ability to pause/resume data collection and adds a new .NET Object Allocation Tracking tool.
  • 針對 Xcode 9.4 的 Xamarin 支援中,我們包含了 Android 增量組建的改進。We included improvements for Android incremental builds in the Xamarin support for Xcode 9.4.
  • Build Tools 現在支援工作流程The Build Tools now support Workflow.
  • 非同步自動載入套件會延遲到啟動和方案載入完成為止Async autoload packages are delayed till startup and solution load complete

15.8 Preview 3 中修正的問題Issues Fixed in 15.8 Preview 3

這些是此版本中已解決的客戶回報問題。These are the customer-reported issues addressed in this release. 如果您要尋找 15.8 Preview 3 中已修正的特定客戶回報問題,請造訪 開發人員社群If you are looking for a specific customer-reported issue that has been fixed in 15.8 Preview 3, visit the Developer Community.

Visual Studio 2017 15.8 版 Preview 3 資訊安全諮詢注意事項Visual Studio 2017 version 15.8 Preview 3 Security Advisory Notice

Git 安全性弱點的 Microsoft 資訊安全諮詢Microsoft Security Advisory for Git Security Vulnerability


我們已修正 Git 社群所揭露 (英文) 的 Git 安全性弱點。We fixed a security vulnerability in Git that was disclosed by the Git community. 此弱點可能會在使用者複製惡意存放庫時,導致執行任意程式碼。The vulnerability can lead to arbitrary code execution when a user clones a malicious repository. 此部落格文章 (英文) 有詳細資訊。This blog post has more information.

15.8 Preview 3 的新功能詳細資料Details of What's New in 15.8 Preview 3

.NET Framework 4.7.2.NET Framework 4.7.2

Visual Studio 2017 版本 15.8 現在會提供 .NET Framework 4.7.2 開發工具給所有支援的平台,包括 4.7.2 執行階段。Visual Studio 2017 version 15.8 now offers the .NET Framework 4.7.2 development tools to all supported platforms with the 4.7.2 runtime included. .NET Framework 4.7.2 提供多項新功能和改善,並大幅修正可靠性、穩定性、安全性和效能。The .NET Framework 4.7.2 offers several new features and improvements as well as numerous reliability, stability, security, and performance fixes.

您可以在這些文章中找到 .NET Framework 4.7.2 的詳細資料:You can find more details about the .NET Framework 4.7.2 in these articles:


此版本包含下列效能改善:This release contains the following performance improvements:

  • 因為不再需要方案重新載入,所以對於大型方案,C#、VB 和 C++ 專案的分支切換較為快速。Branch switching for C#, VB, and C++ projects is much faster for large solutions since solution reload is no longer required.
  • 我們已減少在大型方案中卸載和重載一組小型 c # 和 VB 專案的時間,從數分鐘到數秒。We have reduced the time to unload and reload a small set of C# and VB projects in large solutions from minutes to several seconds.

效能分析Performance Profiling

此版本包含下列效能分析加強:This release contains the following performance profiling enhancements:

  • 我們已新增啟動暫停分析的功能:We added the capability to start profiling paused:

    • 效能分析工具 (ALT-F2) 中的 [CPU 使用量] 工具現在可以開始暫停。The CPU Usage tool in the Performance Profiler (ALT-F2) can now start paused. 在一段時間後達到值得 CPU 使用量調查的情節時,這十分有用。This can be useful when it takes a while to get to a scenario worthy of a CPU Usage investigation. 透過啟動已停用的 CPU 使用量收集,除非具體啟用,否則效能分析工具不會收集任何 CPU 使用量範例堆疊資料。By starting the CPU usage collection disabled, the Performance Profiler will not collect any CPU usage sample stack data until it is specifically enabled. 這樣會收集和分析更少的產生資料量,因此讓效能調查更具效率。This makes the resultant amount of data much smaller to collect and analyze, thus making your performance investigations more efficient.
    • 若要啟動已停用 CPU 使用量範例收集的會話,請在 [效能分析工具啟動] 頁面中,按一下 [CPU 使用量] 工具的 [CPU 使用量] 工具旁的設定 (齒輪) 圖示 ([圖 1]) 顯示 [Cpu 使用量] 屬性頁面,然後取消核取標示為 [啟用 cpu 分析] (取樣)To start a session with CPU Usage sample collection disabled, click the settings (gear) icon next to the CPU Usage tool in the Performance Profiler launch page (Figure 1) to display the CPU Usage property page, then uncheck the checkbox labeled Enable CPU Profiling (Sampling). 最後,按 [確定] 儲存設定。Finally, press OK to save the settings.
      CPU Usage Tool settings page
      (圖 1) CPU 使用量工具設定(Figure 1) CPU Usage Tool Settings
    • 當您在效能分析工具啟動]) 頁面中按下 [開始] 按鈕來啟動目標應用程式 (時,您會看到顯示 CPU 使用率圖表的監視顯示 ([圖 2]) 可讓您控制 cpu 分析。Once you start the target application (by pressing the Start button in the Performance Profiler launch page), you'll see a monitoring display showing the CPU utilization graph (Figure 2) that allows you to control the CPU profiling. 若要啟用 CPU 使用量範例堆疊資料收集,請按位於檢視中間的 [啟用 CPU 分析] 連結,或按一下 CPU 使用率圖形正下方的 [記錄 CPU 設定檔] 按鈕。To enable CPU usage sample stack data collection, press the Enable CPU profiling link in the middle of the view, or click the Record CPU Profile button just below the CPU utilization graph. 您可以按一下 [記錄 CPU 設定檔] 按鈕,啟用/停用所需次數的範例資料收集。You can click the Record CPU Profile button to enable/disable sample data collection as many times as you like. CPU 使用率圖形色彩變更,指出是否在該時間點啟用/停用範例收集。The CPU utilization graph color changes to indicate whether sample collection is enabled/disabled at that point in time.
    CPU Usage Tool monitoring view
    (圖 2) CPU 使用量工具監視視圖(Figure 2) CPU Usage Tool Monitoring View
  • 我們已新增 .NET 物件配置追蹤工具:We added a .NET Object Allocation Tracking tool:

    • .NET 物件配置追蹤工具加入可從效能分析工具取得的工具系列。The .NET Object Allocation Tracking Tool joins the family of tools available from the Performance Profiler. 針對效能分析工具工作階段呼叫此工具,會導致收集在目標應用程式中發生之每個 .NET 物件配置的堆疊追蹤。Invoking this tool for a performance profiler session causes the collection of a stack trace for every .NET object allocation that occurs in the target application. 會分析此堆疊資料以及物件類型和大小資訊,以顯示您應用程式的記憶體活動詳細資料。This stack data is analyzed along with object type and size information to reveal details of the memory activity of your application. 您可以快速決定程式碼中的配置模式,同時找出異常狀況。You can quickly determine the allocation patterns in your code and identify anomalies as well. 此外,針對記憶體回收 (GC) 事件,有人可以輕鬆地判斷收集和保留的物件,快速判斷可支配應用程式記憶體使用量的物件類型。In addition, for Garbage Collection (GC) events, one can easily determine which objects were collected and retained, quickly determining object types which dominate the memory usage of the application.
    • 這特別適用於 API 寫入器,以協助最小化配置。This is especially useful for API writers to help minimize allocations. 許多應用程式會過度執行診斷資料收集中所含的緩衝區限制,但可能會極佳地處理運用 API 金鑰情節的小型測試應用程式。A lot of applications will overrun the buffer limits involved in the diagnostics data collection, but small test applications exercising an API's key scenarios can be diagnosed quite well. 當您的測試應用程式正在執行時,效能分析工具會顯示具有「即時物件 (計數)」折線圖和「物件差異 (變更 %)」橫條圖的監視檢視。While your test application is executing, the Performance Profiler displays a monitoring view with a line graph of Live Objects (count), as well as an Object Delta (% change) bar graph.
    • 若要使用 .NET 物件配置追蹤工具,請 ([圖) 3] 中顯示效能分析工具啟動] 頁面,選取要分析的目標 (預設目標是方案) 中的啟始專案,請從可用工具清單中檢查 .Net 物件配置追蹤,然後按下 [ 開始 ] 按鈕。To use the .NET Object Allocation Tracking Tool, display the Performance Profiler launch page (Figure 3), select a target to profile (the default target is the startup project in the solution), check .NET Object Allocation Tracking from the list of available tools, then press the Start button.
    Performance Profiler launch page
    ([圖 3]) 效能分析工具啟動] 頁面(Figure 3) Performance Profiler Launch Page


此版本包含下列 c + + 更新和增強功能:This release has the following updates and enhancements to C++:

  • 我們新增了新的快速修正燈泡,以將基本宏轉換成 constexpr,作為將程式碼現代化的新工具。We added a new quick-fix lightbulb to convert basic macros to constexpr as a new tool to modernize code.
  • 您有一個新的實驗性權杖型預處理器,其符合 c + + 11 標準 (包括) 的 C99 預處理器功能,並已啟用/experimental:預處理器參數。You have a new, experimental, token-based preprocessor that conforms to C++11 standards (including C99 preprocessor features), enabled with /experimental:preprocessor switch. 這是使用 _MSVC_TRADITIONAL 巨集所控制,而此巨集在使用傳統前置處理器時定義為 1,在使用新的實驗性標準合規前置處理器時則定義為 0。This is controlled with macro _MSVC_TRADITIONAL, which is defined 1 when using the traditional preprocessor and 0 when using the new experimental standards conformant preprocessor.
  • 範本的 IntelliSense 提供範本引數的詳細資料,以充分利用您範本內文中的 IntelliSense。IntelliSense for templates provide you more details about template arguments to take full advantage of IntelliSense within your template body.
  • 我們新增了範本,以簡化將設定新增 至 CMakeSettings.js的設定。We added templates to simplify adding configurations to CMakeSettings.json.
  • 我們正在重新整理程式 代碼分析體驗We're working to refresh our code analysis experience. 您現在可以在 [工具 > 選項 > 文字編輯器 > c + + > 實驗 性程式 > 代碼分析] 下啟用新的 [進行中] 功能。You can now enable the new, in-progress features under Tools > Options > Text Editor > C++ > Experimental > Code Analysis. 開啟或儲存檔案時,程式碼分析可以在背景中執行,而結果會顯示在錯誤清單中,並在編輯器中顯示為綠色波浪線。Code analysis can run in the background when files are opened or saved and results are displayed in the error list and as green squiggles in the editor.
  • Just My Code 現在可讓您逐步執行系統或第三方 C++ 程式庫中的程式碼,以及摺疊呼叫堆疊視窗中的這些呼叫。Just My Code now enables you to step-over code from system or 3rd party C++ libraries in addition to collapsing those calls in the call-stack window. 如果使用 /JMC 編譯您的程式碼,並在 .natjmc 檔案中指定非使用者程式庫路徑,則您可以控制任何 C++ 程式庫的這個行為。You can control this behavior for any C++ libraries when your code is compiled with /JMC and the non-user libraries paths are specified in a .natjmc file. 如果系統程式庫呼叫使用者程式碼,當您逐步執行時,偵錯工具會略過所有系統程式碼,並在使用者程式碼回呼的第一行停止。If the system library calls into user-code, when you step in, the debugger skips all system code and stops on the first line of user-code callback.
  • Visual Studio 開發人員命令提示字元支援啟用 Visual C++ Spectre 變異 1 降低執行階段 (-vcvars_spectre_libs = spectre)。The Visual Studio Developer Command Prompt supports enabling the Visual C++ Spectre variant 1 mitigated runtimes (-vcvars_spectre_libs = spectre). Visual C++ 小組部落格提供 Spectre 降低的詳細資訊More information about Spectre mitigations is available on the Visual C++ Team Blog.


您現在可以使用混合模式 (跨語言) 與 Python 3.7.0 rc1 的調試。You can now use mixed-mode (cross-language) debugging with Python 3.7.0rc1.

適用于 Xamarin 的 Visual Studio ToolsVisual Studio Tools for Xamarin

此版本包含下列 Xamarin 更新:This release contains the following updates for Xamarin:

  • 我們已新增 Xcode 9.4 支援。We added support for Xcode 9.4.
  • 現在當您建立新的 Xamarin.Forms 專案時,預設程式碼共用選項會是 .NET Standard。When you create a new Xamarin.Forms project, the default code sharing option is now .NET Standard. 共用專案選項仍然可用。The shared project option is still available.
  • 我們新增了 Android 累加建置功能改進。We added Android incremental build improvements. Xamarin.Android 使用中繼輸出目錄中產生的檔案來達成比完整建置更快的累加建置。Xamarin.Android uses files generated in the intermediate output directory to achieve incremental builds that are faster than full builds. 如果您先前已變更專案的目標 Framework,這會使檔案無效,下次執行就會是完整建置。Previously, if you changed your project's target framework it would invalidate the files and result in a full build on the next run. 在這個版本中,我們現在將檔案保留在個別 Framework 的資料夾中,這樣您就可以在不同的目標 Framework 之間切換,而且仍可獲得累加建置的好處。In this release we now preserve the files in per-framework folders so you can switch between different target frameworks and still benefit from incremental builds. 清除專案可讓您回收保留的檔案所使用的磁碟空間。Cleaning the project allows you to reclaim the disk space used by the preserved files.
  • 我們也新增了適用于 Xamarin 的範本。We also added templates for Xamarin.Essentials. Xamarin 是一組核心的跨平臺 api,可協助開發人員建立原生應用程式。Xamarin.Essentials is a core set of cross-platform APIs to help developers build native apps. 這可讓開發人員存取超過30個可從其共用程式碼存取的平臺特定 Api。This gives developers access to over thirty platform-specific APIs that can be accessed from their shared code. 我們包括地理位置、安全儲存體、感應器、裝置資訊,以及其他更多。We include geolocation, secure storage, sensors, device information, and much more. 無論您如何建立使用者介面,都可以在任何 iOS、Android、UWP 或 Xamarin 應用程式中使用 xamarin。Xamarin.Essentials can be used in any iOS, Android, UWP, or Xamarin.Forms app, regardless of how you create the user interface.


此版本包含下列生產力加強:This release contains the following productivity enhancements:

  • 針對 C# 開發,您可以使用 [格式化文件] (Ctrl + K, DCtrl + E, D) 執行額外程式碼清除。You can perform additional code cleanup with Format Document (Ctrl + K, D or Ctrl + E, D) for C# development. 前往 工具 > 選項 > 文字編輯器 > c # 程式 > 代碼樣式 的 > 一般格式設定 > ****,以設定清除。Configure cleanup by going to Tools > Options > Text Editor > C# > Code Style > Formatting > General.
  • 我們已使用 Ctrl + . 來新增其他重構和快速動作We added more refactorings and quick actions using Ctrl + . Alt + Enteror Alt + Enter:
    • 「反轉 If」可讓您在 if-else 陳述式中反轉邏輯。Invert If enables you to invert your logic in if-else statements. 將游標置於 if 關鍵字來觸發這項重構功能。Place your cursor in the if keyword to trigger this refactoring.
    • 「從方法呼叫站台新增參數」可讓您將參數新增至方法,方法是將引數新增至方法呼叫站台,並觸發「快速動作與重構」。Add parameter from method callsite allows you to add a parameter to a method by adding an argument to a method callsite and triggering Quick Actions and Refactorings.
    • 「移除不必要的括弧」會移除編譯不需要之二元運算子的括弧。Remove unnecessary parentheses removes parentheses around binary operators that are not essential for compilation. 您可以透過 [工具 > 選項 > 文字編輯器] > c # 程式 > 代碼樣式 > [一般] 或 [. editorconfig] 來設定此樣式規則:You can configure this style rule through Tools > Options > Text Editor > C# > Code Style > General or .editorconfig:
      • dotnet_style_parentheses_in_arithmetic_binary_operators
      • dotnet_style_parentheses_in_relational_binary_operators
      • dotnet_style_parentheses_in_other_binary_operators
      • dotnet_style_parentheses_in_other_operators
    • 「在指派和傳回陳述式中使用三元條件」也可以使用下列方式設定為樣式規則:在 [工具] > [選項] > [...] 中或透過 .editorconfig:Use ternary conditionals in assignments and return statements can also be configured as a style rule in Tools > Options > ... or through .editorconfig:
      • dotnet_style_prefer_conditional_expression_over_assignment
      • dotnet_style_prefer_conditional_expression_over_return
  • 我們在 [ 移至所有 ] 視窗中新增了命令和增強功能:We added new commands and improvements to the Go To All window:
    • [Go to Enclosing Block] (移至封閉區塊) (Ctrl + Alt + UpArrow) 可讓您快速往上巡覽至封閉程式碼區塊的開頭。Go to Enclosing Block (Ctrl + Alt + UpArrow) allows you to quickly navigate up to the beginning of the enclosing code block.
    • [前往上一個/下一個問題] (Alt + PgUp/PgDn) 可讓您跳到下一個/上一個問題 (錯誤、波浪線、燈泡)。Go to Next/Previous Issue (Alt + PgUp/PgDn) allows you to skip to the next/previous issue (error, squiggle, lightbulb).
    • [Go to Member] (移至成員) (Ctrl + T, M) 的範圍現在預設為檔案。Go to Member (Ctrl + T, M) is now scoped to the file by default. 將 [範圍] 切換為 [目前文件],即可將預設值變更回方案 (Ctrl + Alt + C)。You can change the default back to solution by toggling the Scope to Current Document (Ctrl + Alt + C).
  • 您現在可以在具有多個插入號支援之檔案中的多個任意位置,建立插入點和選取範圍。You can now create insertion points and selections at multiple, arbitrary locations in a file with multiple caret support. 這可讓您同時新增、編輯或刪除多個位置中的文字。This allows you to add, edit, or delete text in multiple places simultaneously.
    • 使用 Ctrl + Alt + 按一下滑鼠左鍵 來插入插入號。Insert carets with Ctrl + Alt + LeftMouseClick.
    • 使用 Shift + Alt + Ins,在符合目前選取範圍的下一個位置,新增選取範圍和插入號。Add a selection and caret at next location that matches current selection with Shift + Alt + Ins.
    • 如需完整動作清單,請參閱 [編輯] > [多個插入號]。See Edit > Multiple Carets for full list of actions.
  • 使用 Alt + ` 存取與內容相關的導覽功能表。Access a contextual navigation menu with Alt + `.
  • 讓按鍵繫結關係與兩個新的鍵盤設定檔保持一致:Visual Studio CodeReSharper (Visual Studio)Keep your keybindings consistent with two new keyboard profiles: Visual Studio Code and ReSharper (Visual Studio). 您可以在 [工具] > [選項] > [一般] > [鍵盤] 下並使用頂端下拉式功能表,來找到這些結構描述。You can find these schemes under Tools > Options > General > Keyboard and using the top drop-down menu.

已連線的服務Connected Services

您現在可以直接從 Visual Studio 2017,為具有 Azure Function 專案的解決方案設定 Azure 函式的持續傳遞。You can now configure continuous delivery for Azure functions directly from Visual Studio 2017 for solutions with Azure Function Projects.

延遲載入在自動載入時非同步的套件Delay loading of packages that autoload asynchronously

Visual Studio 現在會延遲載入已設為自動載入的非同步套件,直到 Visual Studio IDE 完全啟動且解決方案已載入為止。Visual Studio now delays the loading of asynchronous packages that are configured to autoload until after the Visual Studio IDE has fully started and the solution has loaded. 這項變更不會影響同步自動載入的應用程式套件。This change does not affect synchronously autoloaded packages. 使用者可在工作狀態中心的狀態列左下角監控進度。Users can look at the Task Status Center in the lower left corner of the status bar to monitor progress. 建立非同步套件的延伸模組作者應測試自己的延伸模組。Extension authors that create asyncpackages should test their extension. 如需詳細資訊,請參閱 Improving the responsiveness of critical scenarios by updating auto load behavior for extensions (更新延伸模組的自動載入行為以提升重要情節的回應能力)。For more information, see Improving the responsiveness of critical scenarios by updating auto load behavior for extensions.

Release Notes Icon Visual Studio 2017 15.8 版 Preview 4Visual Studio 2017 version 15.8 Preview 4

於 2018 年 7 月 10 日發行released July 10, 2018

15.8 Preview 4 的新功能摘要Summary of What's New in 15.8 Preview 4

這個版本包含下列改進與加強:This release contains the following improvements and enhancements:

15.8 Preview 4 中修正的問題Issues Fixed in 15.8 Preview 4

這些是此版本中已解決的客戶回報問題。These are the customer-reported issues addressed in this release. 如果您要尋找 15.8 Preview 4 中已修正的特定客戶回報問題,請造訪 開發人員社群If you are looking for a specific customer-reported issue that has been fixed in 15.8 Preview 4, visit the Developer Community.

Visual Studio 2017 15.8 版 Preview 4 資訊安全諮詢注意事項Visual Studio 2017 version 15.8 Preview 4 Security Advisory Notices

更新日期︰2018 年 7 月 10 日updated July 10, 2018

Visual Studio 遠端程式碼執行弱點Visual Studio Remote Code Execution Vulnerability


這是一種遠端程式碼執行弱點。它可以開啟特地設計的專案或資源檔,以惡意探索使用者電腦。A remote code execution vulnerability that can lead to exploitation of a user's machine by opening a specially crafted project, or resource file. 此安全性更新會修正 Visual Studio 檢查檔案來源標記的方式,藉以解決此弱點。The security update addresses the vulnerability by correcting how Visual Studio checks the source markup of a file. 如需詳細資訊,請參閱 Microsoft 資訊安全回應中心文章 (CVE-2018-8172)For more information, see Microsoft Security Response Center article (CVE-2018-8172).

.NET Framework 遠端程式碼執行弱點.NET Framework Remote Code Execution Vulnerability


這是存在於 .NET 軟體中的一個遠端程式碼執行弱點。它允許攻擊者在目前使用者的內容中執行任意程式碼,從而導致惡意探索使用者的電腦。A remote code execution vulnerability exists in .NET software which can lead to exploitation of a user's machine by allowing attackers to run arbitrary code in the context of the current user. 此安全性更新會修正 .NET 檢查檔案來源標記的方式,藉以解決此弱點。The security update addresses the vulnerability by correcting how .NET checks the source markup of a file. 如需詳細資訊,請參閱 Microsoft 資訊安全回應中心文章 (CVE-2018-8260)For more information, see Microsoft Security Response Center article (CVE-2018-8260).

.NET Microsoft 巨集組譯工具篡改弱點.NET Microsoft Macro Assembler Tampering Vulnerability


Microsoft 巨集組譯工具未能正確驗證程式碼的相關篡改漏洞。Tampering vulnerability related to the Microsoft Macro Assembler improperly validating code. 此安全性更新會確保 Microsoft 巨集組譯工具能正確驗證程式碼邏輯,藉以解決此弱點。The security update addresses the vulnerability by ensuring that Microsoft Macro Assembler properly validates code logic. 如需詳細資訊,請參閱 Microsoft 資訊安全回應中心文章 (CVE-2018-8232)For more information, see Microsoft Security Response Center article (CVE-2018-8232).

ASP.NET Core 安全性功能略過弱點ASP.NET Core Security Feature Bypass Vulnerability


當未驗證不正確的登入嘗試次數而導致攻擊者得以無限嘗試驗證時,便是存在 ASP.NET Core 安全性功能略過弱點。An ASP.NET Core Security Feature Bypass Vulnerability exists when the number of incorrect login attempts is not validated that can lead to an attacker trying infinite authentication attempts. 此更新會驗證不正確的登入嘗試次數,藉以解決此弱點。The update addresses the vulnerability by validating the number of incorrect login attempts. 如需詳細資訊,請參閱 Microsoft 資訊安全回應中心文章 (CVE-2018-8171)For more information, see Microsoft Security Response Center (CVE-2018-8171).

15.8 Preview 4 新功能的詳細資料Details of What's New in 15.8 Preview 4


此版本包含下列 c + + 更新和增強功能:This release has the following updates and enhancements to C++:

  • SSA 最佳化工具的兩項新增著重於新式 C++ 程式碼產生:備援存放區項目刪除以及備援分支摺疊。Two new additions to the SSA Optimizer focused on modern C++ code generation: redundant store elimination and folding of redundant branches.
  • 連結器中的最佳化記憶體對應 I/O 效能,以減少連結時間。Optimized memory mapped I/O performance in the linker to reduce link times.
  • C++ IntelliSense 現在會針對以 Linux 為目標的 CMake 和 MSBuild 專案,回應遠端環境中的變更。C++ IntelliSense now responds to changes in the remote environment for both CMake and MSBuild projects targeting Linux. 當您安裝新的程式庫或變更您的 CMake 專案時,C++ IntelliSense 會自動剖析遠端電腦上的新標頭檔案,讓您取得完整且順暢的 C++ 編輯體驗。As you install new libraries or change your CMake projects, C++ IntelliSense will automatically parse the new headers files on the remote machine for a complete and seamless C++ editing experience.

測試效能Test Performance

在具有多個測試專案的大型方案中執行數個測試時,我們大幅改善了效能。We have significantly improved performance when running a few tests in a large solution with multiple test projects. 在我們的實驗室中,具有超過 10,000 個 MSTest 的方案,執行單一測試時的速度最多可以快 82%!In our labs, a solution with over 10,000 MSTests executed a single test up to 82% faster!

.NET 測試配接器延伸模組:重大變更和淘汰項目.NET Test Adapter Extension: breaking change and deprecation

  • 重大變更:所有測試專案都必須在其 .csproj 中包含其 .NET 測試介面卡 nuget 參考。Breaking Change: All test projects must include their .NET test adapter nuget reference in their csproj. 如果未包含在其中,若測試配接器延伸模組的探索在建置之後開始,或使用者嘗試執行選取的測試,專案上就會顯示這個測試輸出:If they do not, this test output will appear on the project if discovery by a test adapter extension is kicked off after a build or if the user tries to run the selected tests:
    • 測試專案 {} 未參考任何 .NET NuGet 配接器。Test project {} does not reference any .NET NuGet adapter. 這個專案的測試探索或執行會無法執行。Test discovery or execution might not work for this project. 建議您在解決方案中的各個測試專案參考 NuGet 測試配接器。It is recommended to reference NuGet test adapters in each test project in the solution.
  • .NET 測試架構已在 nuget 套件中釋出其介面卡,並從 Visual Studio 延伸模組中移除。.NET test frameworks have been releasing their adapters in nuget packages and moving away from Visual Studio extensions. 在 Visual Studio 2017 Update 15.8 Preview 4 中,透過延伸模組提供的 .NET 測試介面卡支援已淘汰,但仍受到支援。In Visual Studio 2017 Update 15.8 Preview 4, support for .NET test adapters delivered through extension is deprecated, but still supported. 這表示在 [工具] > [選項] > [測試] 中會有兩個新選項。This means two new options will be available in Tools > Options > Test.
    • 第一個選項可讓 Visual Studio 只能使用它在 [測試元件] 資料夾中找到的測試介面卡, (由測試介面卡 nuget 參考) 或 .runsettings 檔中所指定的填入。The first option allows Visual Studio to only use the test adapters it finds in the test assembly folder (populated by the test adapter nuget reference) or as specified in the runsettings file.
    • 第二個選項可讓 Visual Studio 「回溯」至舊的行為,並針對沒有測試介面卡 nuget 參考的專案搜尋測試配接器延伸模組。The second option allows Visual Studio to "fallback" to the old behavior and search for test adapter extensions for projects that do not have a test adapter nuget reference. 根據預設,兩種選項都會選取,這樣就不會有任何預設行為在這個版本中變更。Both options are checked by default so no default behavior will change in this release.
  • 請注意,這項變更不會影響非 .NET 的測試配接器。Note, non-.NET test adapters are not affected with this change.

發行改善Publish Improvements

此版本包含下列發行改善:This release contains the following publish improvements:

  • 將 Docker 容器發行至容器登錄時,您現在可以自訂映像的標籤。When publishing a Docker container to a container registry, you can now customize the tag for the image. 您可以手動新增標籤 (預設為 "latest"),或使用自動產生的標籤來確定每個標籤都是唯一的。You can either manually add a tag (default is "latest") or use an auto-generated tag to make sure each tag is unique.
  • 建立新的 Azure App Service 時,您也可以設定 Application Insights 自動收集遙測。When creating a new Azure App Service, you can also configure Application Insights to automatically collect telemetry. 如果您選擇的區域也具有 Application Insights,則預設為已啟用。If you choose a region that also has Application Insights, it defaults to enabled. 如果您選擇的區域尚未包含 Application Insights,則可以手動從下拉式清單中為 Application Insights 資源指定不同的區域。If you choose a region that does not yet contain Application Insights, you can manually specify a different region for your Application Insights resource from the dropdown.
  • 發行 Azure Functions 專案時,您可以選擇使用新的 Run-From-Zip 功能發行。When publishing Azure Functions projects you can choose to publish using the new Run-From-Zip feature.

Visual Basic 效能改善Visual Basic Performance Improvement

Visual Basic 現在提供使用 CInt(Fix(number)) 模式將非整數類型轉換成整數時的大幅效能改善。Visual Basic now provides a significant performance improvement when using the pattern CInt(Fix(number)) to convert from non-integer types to integers.

Visual Studio Tools for XamarinVisual Studio Tools for Xamarin

在使用 Xamarin.Forms 版或更新版本時,Xamarin.Forms Previewer 現在會有工具箱支援。The Xamarin.Forms Previewer now has toolbox support when using Xamarin.Forms version or higher. Xamarin.Forms 控制項會顯示在工具箱中,讓工具組的新手使用者更容易找到。Xamarin.Forms controls will appear in the toolbox so they are more discoverable for those new to the toolkit. 您也可以在 XAML 程式碼編輯器拖放控制項,以將控制項新增到頁面。You can also drag and drop a control onto the XAML code editor to add the control to the page.

Release Notes Icon Visual Studio 2017 15.8 版 Preview 5Visual Studio 2017 version 15.8 Preview 5 New Release icon

2018年7月26日發行released July 26, 2018

15.8 Preview 5 的新功能摘要Summary of What's New in 15.8 Preview 5

這個版本包含下列改進與加強:This release contains the following improvements and enhancements:

15.8 Preview 5 中修正的問題Issues Fixed in 15.8 Preview 5

這些是此版本中已解決的客戶回報問題。These are the customer-reported issues addressed in this release. 如果您要尋找 15.8 Preview 5 中已修正的特定客戶回報問題,請造訪 開發人員社群If you are looking for a specific customer-reported issue that has been fixed in 15.8 Preview 5, visit the Developer Community.

15.8 Preview 5 的新功能詳細資料Details of What's New in 15.8 Preview 5

適用於 Visual Studio 的 F# 4.5 和 F# 工具F# 4.5 and F# Tools for Visual Studio

我們將在此版本仲介紹 F # 語言版本4.5 的預覽。We are introducing the preview of F# language version 4.5 with this release. 這也對應於新 4.5.x 系列的 FSharp.Core (F# 核心程式庫)。This also corresponds with the new 4.5.x family of FSharp.Core (the F# core library). 您可以閱讀 F# RFC 存放庫中所有這些變更的規格。You can read the specs for each of these changes in the F# RFC repository. 在此版本中,也會對適用於 Visual Studio 的 F# 工具進行許多改善。There are also many improvements to F# tools for Visual Studio with this release.

F# 4.5F# 4.5

以下是 F # 語言4.5 版 preview 的一些重點:Here are the some of the highlights with the F# language version 4.5 preview:

Span<'T> supportSpan<'T> support

我們已實作 Span<'T> 和相關功能;因此,利用 F#,即可使用 SpanMemoryref 這類建構來有效地使用和生產 API。We implemented Span<'T> and related features so that effective consumption and production of APIs using Span, Memory, and ref-like constructs are possible with F#. 這個項目的功能包含:The features for this include:

  • 新的 voidptr 類型。New voidptr type.
  • FSharp.Core 中的新 NativePtr.ofVoidPtrNativePtr.toVoidPtr 函式。New NativePtr.ofVoidPtr and NativePtr.toVoidPtr functions in FSharp.Core.
  • 分別是新類型 inref<'T>outref<'T> (即唯讀 byref 和唯寫 byref)。New types inref<'T> and outref<'T>, which are readonly byrefs and write-only byrefs, respectively. 這對應至 C# 中的 in refout refThis correspond to in ref and out ref in C#.
  • 可以產生 ByRefLike 結構 (例如 SpanReadOnlySpan)。The ability to produce ByRefLike structs (such as Span and ReadOnlySpan).
  • 可以產生 IsReadOnly 結構。The ability to produce IsReadOnly structs.
  • 從方法隱含取值 byref-return 和 inref-return。Implicit dereference of byref- and inref-returns from methods.
  • 可以在 byref/inref/outref 上產生擴充成員。The ability to produce extension members on byref/inref/outref.

此功能集修正 F# 4.1 中 byref-return 初始設計的 Bug,其中傳回 byref 的函式、方法和屬性未隱含地對傳回值取值。This feature set fixes a bug in the initial design of byref-returns in F# 4.1, where functions, methods, and properties returning byrefs were not implicitly dereferencing the return value. 我們進行這項變更,以帶來 C# 如何處理 ref-return 的內嵌功能。We make this change to bring the feature in-line with how C# handles ref-returns. 類型註釋指出現在使用 ref-return 的隱含取值時,會使用錯誤訊息。An error message is used when a type annotation indicates that an implicit dereference of a ref-return is now used.

此外,此功能集也會修正 F# 編譯器中可以執行「惡意結構取代」的 Bug;即,對 F# 結構呼叫方法可以將所呼叫的實際結構取代為不同的結構。Additionally, this feature set also fixes a bug in the F# compiler where "Evil struct replacement" was possible; i.e., calling a method on an F# struct could replace the actual struct being called with a different one. 結構上的 this 參數現在視為 inref<MyStruct>,並具有錯誤,建議您在想要修改結構時新增可變動欄位。The this parameter on a struct is now considered an inref<MyStruct>, with an error that suggests you add a mutable field if you wish to modify the struct.

您可以深入了解此功能集之 RFC 中的 spanref 這類建構。You can learn more about span and ref-like constructs in the RFC for this feature set.

計算運算式中的 Match!Match! in computation expressions

F# 4.5 引進 match!,這個新的關鍵字用於計算運算式內,由 John Wostenberg 完全參與。F# 4.5 introduces match!, a new keyword for use within computation expressions, contributed entirely by John Wostenberg. 此語法捷徑相當於結果上的 let! 後面接著 matchThis syntactic sugar is equivalent to a let! followed by a match on the result. 您可以深入了解 match! 的 RFCYou can learn more in the RFC for match!.

在序列、清單和陣列運算式中放寬使用 yield 向上轉型的需要Relaxing the need to upcast with yield in sequence, list, and array expressions

F# 4.5 現在會放寬需要有使用 yield 的向上轉型才能將子類型轉換成超級類型的一些情況。F# 4.5 now relaxes some cases where an upcast when using yield was required to convert a subtype into a supertype. 從 F# 3.1 開始,「未」使用 yield 時,這些運算式已不需要此限制,因此這會讓各事項與現有行為更為一致。This restriction was already not necessary for these expressions since F# 3.1 when not using yield, so this makes things more consistent with existing behavior. 您可以深入了解此功能的 RFCYou can learn more in the RFC for this feature.

允許清單和陣列括弧上的縮排Permitting undentation on list and array brackets

F# 4.5 現在需要放寬清單和陣列括弧的縮排規則,以在其各自的行時往前縮排一個範圍。F# 4.5 now relaxes the indentation rule for list and array brackets that required then to be indented one scope forward when on their own line. 這個先前的需求一直都相當令人困擾,特別是 F# 初學者。This previous requirement has always been quite confusing, especially for beginners to F#. 此外,F# 序列運算式則不需要。Additionally, it is not required for F# sequence expressions. 現在,這可讓陣列和清單運算式具有與序列運算式相同的一致狀態。This now brings array and list expressions to the same consistent state as sequence expressions. 您可以深入了解此功能的 RFCYou can learn more in the RFC for this feature.

發出為公用的列舉案例Enum cases emitted as public

F# 4.5 現在於所有情況下都會將列舉案例發出為公用,以與 C# 如何發出列舉案例一致。F# 4.5 now emits enumeration cases as public under all circumstances, to align with how C# emits enumeration cases. 這可讓分析工具更容易透過 F# 程式碼分析日誌,其中會發出標籤名稱以外的值。This also makes it easier for profiling tools to analyze logs from F# code, where the value rather than the label name was emitted. 您可以深入了解此功能的 RFCYou can learn more in the RFC for this feature.

F# 編譯器改善F# Compiler Improvements

#除了先前提及的語言功能之外,我們也對 F 編譯器進行了改進。We made improvements to the F# compiler in addition to the previously-mentioned language features. 這些功能包括:These features include:

  • 我們已透過在 F# 編譯器中最多移除所有配置的 2.2% (在各種情節下),來改善編譯器效能工作。We improved compiler performance work by removing up to 2.2% of all allocations in the F# compiler (under various scenarios).
  • 已修正搭配使用 yield! 與結構可列舉值時導致 AccessViolatioNException 的 Bug。A bug resulting in an AccessViolatioNException when using yield! with struct-based enumerables has been fixed.
  • 現在可以再次繼承自 FSharpFuncIt is now possible to inherit from FSharpFunc again.
  • 預設會停用 .NET Core 之 F# 偵錯組建的 Tail 呼叫。Tail calls are disabled by default for debug builds of F# for .NET Core. 已啟用它們的發行功能,因此符合桌面 F# 編譯器。They are enabled for release, thus matching the desktop F# compiler.
  • 已修正 F# 參考正規化,可讓您控制寫入至輸出檔案的可轉移組件參考。F# reference normalization has been fixed to allow you to control transitive assembly references written to an output file. 這可讓您對 .NET Core 執行對等的組件重新導向。This allows you to perform the equivalent of assembly redirection on .NET Core.
  • 已修正 Bug,其中忽略內嵌函式上嘗試使用動態呼叫時所使用的錯誤訊息。A bug has been fixed where the error message used when attempting to use dynamic invocation on inline functions was ignored. 現在會傳播錯誤訊息。The error message now propagates.
  • F# 現在會遵守您可在專案檔中設定的 WarningsNotAsErrors 旗標。F# now respects the WarningsNotAsErrors flag that you can set in project files.
  • 當模式比對的分支未傳回相同類型時,錯誤訊息會被 Isaac Abraham更新為更容易瞭解。The error message when branches of a pattern match do not return the same type has been updated to be much more friendlier by Isaac Abraham.
  • Steffen Forkmann 已修正編譯缺少多載方法實作之介面實作時發生內部錯誤的 Bug。A bug where an internal error when compiling interface implementation that lacks an overloaded method implementation has been fixed by Steffen Forkmann.
  • Gauthier Segay 已移除編譯器的 Lexing 階段中的一些不必要陣列複製。Some unnecessary array copying in the lexing phase of the compiler has been removed by Gauthier Segay.
  • F# 列舉上的不完整模式比對,現在會產生可提供未涵蓋之大小寫範例的詳細警告,由 John Wostenberg 所參與。Incomplete pattern matches on F# enumerations now produces a detailed warning that gives an example of a case not covered, contributed by John Wostenberg.
  • 現在會遵守 `#nowarn "2003",由 Matthias Diitrich 所參與。`#nowarn "2003" is now respected, contributed by Matthias Diitrich.
  • Steffen Forkmann 已修正在 F# 多載解析中使用 C# 擴充方法可能會失敗的 Bug。A bug where consuming C# extensions methods could fail in F# overload resolution has been fixed by Steffen Forkmann.
  • Steffen Forkmann 已修正內部 QueueList 資料結構 Bug。An internal QueueList data structure bug was fixed by Steffen Forkmann.
  • Steffen ForkmannEugene Auduchinokncave 參與各種較小的最佳化和程式碼清除工作。Various smaller optimizations and code cleanup efforts were contributed by Steffen Forkmann, Eugene Auduchinok, and ncave.

F# 核心程式庫 4.5.xF# Core Library 4.5.x

我們對 F 核心程式庫做了下列新增專案 # :We made the following additions to the F# Core Library:

  • 已完成大量工作來改善 async { } 計算運算式的堆疊追蹤。Significant work has been done to improve stack traces for async { } computation expressions. 您現在應該可以看到堆疊追蹤中的使用者程式碼和使用者行號。You should now be able to see user code and user line numbers in stack traces. 您可以深入了解此功能的 RFCYou can learn more in the RFC for this feature.
  • System.FuncSystem.Action 類型所多載的 FuncConvert.FromFuncFuncConvert.FromAction API,協助與 C# 的交互操作。FuncConvert.FromFunc and FuncConvert.FromAction APIs that type System.Func and System.Action overloads, to help in interoperation with C#. 您可以深入了解此功能的 RFCYou can learn more in the RFC for this feature.
  • ValueOption 是可用的新類型,這是最後目標為現用模式具有較佳效能之一組未來功能的第一個項目。ValueOption is a new type available, which is the first in a set of future features ultimately aimed at better performance for Active Patterns. 您可以深入了解此功能的 RFCYou can learn more in the RFC for this feature.
  • TryGetValue 現在是 F# 對應類型的新成員。TryGetValue is now a new member on the F# Map type. 您可以深入了解此功能的 RFCYou can learn more in the RFC for this feature.
  • 我們已修正第一次呼叫 MailboxProcessor.TryReceive 時的高 CPU 使用量。We fixed High CPU usage upon the first invocation of MailboxProcessor.TryReceive.
  • bool 的比較現在會使用快速泛形比較,由 Vasily Kirichenko 所參與。Comparison for bool now uses fast generic comparison, contributed by Vasily Kirichenko.
  • Array.allPairs 的摘要文字已更新為正確,由 Patrick McDonald 所參與The summary text for Array.allPairs has been updated to be correct, contributed by Patrick McDonald

F# 工具的改善F# Tooling Improvements

我們在 F 工具中進行了大幅 # 的改良,而且一定會有來自 f 開放原始碼群體的大量貢獻 # 。We made significant improvements in the F# tools, and as always, with a large number of contributions from the F# open source community. 重點如下:Here are the highlights:

  • 我們已改善所有形式之 .NET SDK 樣式專案的 IntelliSense 效能 (包含使用多目標的專案)。We improved IntelliSense performance for .NET SDK-style projects of all forms, including those that use multi-targeting.
  • Vasily KirichenkoSteffen ForkmannGauthier Segay 參與分析及改善極大型檔案之 IntelliSense 效能的社群導向工作。A community-driven effort to analyze and improve IntelliSense performance for very large files was contributed by Vasily Kirichenko, Steffen Forkmann, and Gauthier Segay. 極大型檔案 (10k+ 行程式碼) 中的 IntelliSense 現在的速度大約會快兩倍。IntelliSense in very large files (10k+ lines of code) is roughly twice as fast now.
  • 過期 FSharp.Core 的警告 (所安裝的套件除外) 不再存在於 .NET SDK 樣式專案中。The warning for an outdated FSharp.Core (despite the package being installed) is no longer present in .NET SDK-style projects.
  • 在 IntelliSense 的 . 後面顯示成員之 XML 文件的描述工具提示,不再於 10 秒後逾時。The description tooltip that displays XML documentation for a member after . in IntelliSense no longer times out after 10 seconds.
  • 已修正您無法在物件建構函式引數中設定中斷點的 Bug。A bug where you could not set breakpoints in object constructor arguments has been fixed.
  • 已修正已重新命名符號在為泛型參數時重複的 Bug。A bug where a renamed symbol would be duplicated when it is a generic parameter has been fixed.
  • 適用於 .NET Framework 的範本 (傳統 F# 範本) 現在使用 NuGet 套件中的 FSharp.Core,以與 .NET SDK F# 範本一致。Templates for .NET Framework (classic F# templates) now consume FSharp.Core from a NuGet package, to align with .NET SDK F# templates.
  • ()[]{}[||][<>] 成對大括弧現在提供自動、交易式大括弧完成。Automatic, transactional brace completion is now available for (), [], {}, [||], and [<>] brace pairs. 我們與 Gibran Rosa 共同作業來執行這項工作。We did this work in collaboration with Gibran Rosa.
  • 您現在可以使用 Ctrl + 按一下 或 F# 符號來移至定義。You can now go to definition with Ctrl + Click on an F# symbol. 在 [工具] > [選項] 視窗中,也會遵守此手勢的設定。The settings for this gesture are also respected in the Tools > Options window.
  • IntelliSense 效能 UI 已修改成允許設定各種 IDE 功能的過時類型檢查資訊。The IntelliSense performance UI has been modified to allow configuration of stale typecheck information for various IDE features. 每個選項的說明現在都會出現在設定的工具提示中。Explanations for each option are now present in tooltips for the settings.
  • 大括弧比對醒目提示現在會正確地醒目提示大括弧,而這是與 Vasily Kirichenko 共同作業一起完成。Brace match highlighting now correctly highlights braces, completed in collaboration with Vasily Kirichenko.
  • [移至定義] 現在會在遞迴定義類型時正確地巡覽,由 Vasily Kirichenko 所參與。Go to definition now navigates correctly when a type is defined recursively, contributed by Vasily Kirichenko.
  • Vasily Kirichenko 已修正檔案頂端空白時無法開啟自動匯入之命名空間的 Bug。A bug where an auto-imported namespace wasn't opened when the top of a file was empty has been fixed by Vasily Kirichenko.
  • Vasily Kirichenko 已修正所含點之顏色錯誤的 printf 規範的 Bug。A bug where printf specifiers that contained dots were miscolored has been fixed by Vasily Kirichenko.
  • Vasily Kirichenko 已修正將遞迴模組內所有 Open 都視為未使用的 Bug。A bug where all opens were considered unused inside of a recursive module has been fixed by Vasily Kirichenko.
  • Vasily Kirichenko 已大幅改善「未使用的 Open」分析器的效能。The performance of the Unused Opens analyzer has been improved significantly by Vasily Kirichenko.
  • 自動完成屬性現在只會建議實際為屬性的選項,由 Vasily Kirichenko 所參與。Autocompletion for attributes now only suggests options that are actually attributes, contributed by Vasily Kirichenko.
  • 現在會在建構函式呼叫站台產生類型提供者靜態參數的簽章說明工具提示,由 Vasily Kirichenko 參與。Signature Help tooltips are now generated for Type Provider static parameters at the constructor call site, contributed by Vasily Kirichenko.
  • Vasily Kirichenko 已修正用作測量單位的實值類型顏色編寫為參考類型的 Bug。A bug where value types used as units of measure were colored as reference types has been fixed by Vasily Kirichenko.
  • Vasily Kirichenko 已修正有些檔案的語意顏色標示可能會在捲動時消失的 Bug。A bug where semantic colorization could disappear for some files while scrolling has been fixed by Vasily Kirichenko.
  • 現在有實驗性 CodeLens 實作,由 Victor Peter Rouven Müller 所參與。There is now an experimental CodeLens implementation, contributed by Victor Peter Rouven Müller. 您可以在 [選項] > [文字編輯器] > [F] # [Code Lens] > 中開啟此功能。You can turn it on in Options > Text Editor > F# > Code Lens.
  • Sebastian Urban 已修正 F# 編譯器服務將不正確地省略 XML 文件中模組名稱的 Bug。A bug where the F# compiler service would incorrectly elide the module names in XML documentation has been fixed by Sebastian Urban.
  • Eugene Auduchinok 已將搭配使用 DictionaryContainsKey 的程式碼以及後續 Item 呼叫變更成使用 TryGetValueCode that uses Dictionary with ContainsKey and subsequent Item calls has been changed to use TryGetValue, by Eugene Auduchinok.
  • Jakob Majoka 也已參與使用不同工具提示 API 的程序。Jakob Majoka also contributed in the process of consuming a different API for Tooltips.

基礎結構、封裝和開放原始碼改善Infrastructure, Packaging, and Open Source Improvements

我們對基礎結構、封裝和開放原始碼改進進行了下列增強:We made the following enhancements to infrastructure, packaging, and open source improvements:

  • 隨著 Visual Studio 散發的 F# 編譯器不再安裝為 F# 編譯器 SDK 位置中的 Singleton。The F# compiler distributed with Visual Studio no longer installs as a singleton in the F# Compiler SDK location. 它現在與 Visual Studio 完全並存,這表示並存安裝 Visual Studio 最後會具有實際並存 F# 工具和語言體驗。It is now fully side-by-side with Visual Studio, meaning that side-by-side installations of Visual Studio will finally have truly side-by-side F# tooling and language experiences.
  • 現在會簽署 FSharp.Core NuGet 套件。The FSharp.Core NuGet package is now signed.
  • F# 工具和編譯器中已新增 ETW 記錄。ETW logging has been added to the F# tools and compiler.
  • FSharp.Core 中的極大型 control.fs/contro.fsi 檔案已分割為 async.fs/async.fsievent.fs/event.fsieventmodule.fs/eventmodule.fsimailbox.fs/mailbox.fsiobservable.fs/observable.fsiThe very large control.fs/contro.fsi files in FSharp.Core have been split into async.fs/async.fsi, event.fs/event.fsi, eventmodule.fs/eventmodule.fsi, mailbox.fs/mailbox.fsi, and observable.fs/observable.fsi.
  • 我們新增了 .NET SDK 樣式版本的專案效能壓力測試成品。WE added .NET SDK-style versions of our project performance stress test artifacts.
  • 我們已從程式碼基底移除 Newtonsoft.Json,而且您現在至少有一個針對 OSS 參與者下載的套件。We removed Newtonsoft.Json from our codebase, and you now have one less package downloaded for OSS contributors.
  • 我們現在會使用 System.Collections.Immutable 和 System.Reflection.Metadata 的最新版本。We now use the latest versions of System.Collections.Immutable and System.Reflection.Metadata.

ASP.NET .NET Framework 祕密的支援ASP.NET .NET Framework Secrets Support

對於以 .NET Framework 4.7.1 或更高版本為目標的 ASP.NET .NET Framework 專案,您現在可以在 usersecrets.xml 中開啟及儲存原始程式碼中不想要的祕密,方法是以滑鼠右鍵按一下專案,然後選取 [受控使用者祕密]。For ASP.NET .NET Framework projects that target .NET Framework 4.7.1 or higher, you can now open and store secrets you do not want in your source code in usersecrets.xml by right clicking on the project and selecting "Managed User Secrets".

移轉本機 Azure 函式設定Migrate Local Azure Function Settings

可從發行摘要頁面取得的 [受控應用程式設定] 對話方塊,現在會顯示來自 local.settings.json 檔案的值,並可讓您將值移轉到裝載於 Azure 中的遠端 Azure Function 應用程式。The "Managed Application Settings" dialog available from the publish summary page now displays values from your local.settings.json file and enables you to migrate values to your remote Azure Function app hosted in Azure.

測試清單編輯器功能改進Test Explorer Improvement

測試清單編輯器現在會在選取了階層檢視的其中一個群組時,顯示提供更多資訊的測試狀態摘要窗格 (測試清單編輯器的下層窗格)。Test Explorer now displays a more informative test status summary pane (lower pane of test explorer) when one of the groupings in the hierarchy view is selected. 窗格現在會顯示該群組中,失敗、通過或未執行的測試數。The pane now displays how many tests failed, passed, or not run in that grouping.

新的擴充性功能New Extensibility Features

語言伺服器通訊協定Language Server Protocol

Visual Studio 現在具備語言伺服器通訊協定的原生支援。Visual Studio now has native support for the Language Server Protocol. 延伸模組作者可以建立延伸模組,使其與現有的語言伺服器通訊,以將額外語言支援新增到 Visual Studio。Extension authors can create extensions that communicate with existing language servers to add additional language support to Visual Studio. 延伸模組使用者可以安裝這些延伸模組,以開始在 Visual Studio 內使用最愛的語言,像是 RustExtension users can install these extensions to start using their favorite language inside Visual Studio like Rust.

AsyncPackage 範本AsyncPackage Template

延伸模組作者現在可以使用項目範本來建立 AsyncPackages,讓延伸模組發揮最高效能。Extension authors can now use item templates to create AsyncPackages to optimize their extension's performance. 若要深入了解如何使用 AsyncPackages,請閱讀我們的文件Read our docs to learn more about how to use AsyncPackages.

延伸模組套件Extension Packs

使用延伸模組套件,輕鬆地共用您最愛的延伸模組組合,或設定包含所有延伸模組的新 Visual Studio 安裝。Easily share your favorite set of extensions or set up a new install of Visual Studio with all your extensions by using extension pack. 延伸模組套件可讓您建立一份延伸模組清單、將其封裝在一個延伸模組中,還可用來快速地大量安裝這些延伸模組。Extension packs allow you to create a list of extensions, package them in an extension, and use it quickly to install those extensions in bulk.

命令列延伸模組發佈Command Line Extension Publishing

使用命令列,將您的延伸模組發佈到 Visual Studio Marketplace。Publish your extensions to the Visual Studio Marketplace using the command line.

意見反應與建議Feedback & Suggestions

我們很希望聽聽您的意見!We would love to hear from you! 若有任何問題,請透過安裝程式或 Visual Studio IDE 本身右上角的回報問題選項來通知我們。For issues, let us know through the Report a Problem option in the upper right-hand corner of either the installer or the Visual Studio IDE itself. 必須提供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. 您也可以透過我們的即時聊天支援取得免費的安裝協助。You can also get free installation help through our Live Chat support.


善用「開發人員工具部落格」網站中的見解與建議,讓您能夠隨時取得所有新版本的最新資訊,以及涵蓋各類功能的深入探討文章。Take advantage of the insights and recommendations available in the Developer Tools Blogs site to keep you up-to-date on all new releases and include deep dive posts on a broad range of features.

Developer Tools Blogs

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

如需舊版 Visual Studio 2017 的詳細資訊,請參閱 Visual Studio 2017 版本資訊歷程記錄頁面。For more information relating to past versions of Visual Studio 2017, see the Visual Studio 2017 Release Notes History page.

Top of Page