本文包含有關 Visual Studio 2017(版本 15.3)最新發布的信息。 單擊此按鈕下載。html
有關詳細信息,請參閱安裝指南。node
反饋
咱們期待你的寶貴意見和建議! 可經過安裝程序或 Visual Studio IDE 中的報告問題選項報告問題。 圖標位於右上角。 可在開發人員社區門戶中跟蹤本身的反饋。 若有任何建議,請經過 UserVoice 網站告知咱們。python
發佈日期:2017 年 8 月 14 日 - Visual Studio 2017(版本 15.3)
此版本中的新增功能git
- 輔助功能的改進。
- Visual Studio IDE 改進。
- CMake 工具。
- Visual Studio 編輯器
- C++ 語言服務。
- Visual C++ 工具集和庫。
- C# 7.1 語言支持。
- Xamarin。
- .NET Core 和 ASP.NET Core 改進。
- NuGet 改進。
- .NET Framework 4.7。
- 調試與診斷。
- Application Insights。
- Redgate 數據工具。
- Azure Function 工具。
- JavaScript 和 TypeScript。
- Node.js。
- 鏈接的服務中的 Microsoft Graph 提供程序。
- Python。
- R 工具。
此版本中已修復的主要問題
咱們專心聆聽開發人員社區的需求。 此列表提供得票數最高且已在此版本中修復的問題。
安裝 F# 後深色主題加載失敗。
Visual Studio 安裝程序更新致使無限循環。
最近項目的列表未正確顯示。
沒法向新的自定義配置文件添加名稱。
將 DSL 擴展從 VS 2015 移動到 VS 2017 時出現運行時錯誤。
Try...catch 塊引起「TextBuffer 編輯操做,但另外一個編輯正在進行中」錯誤消息。
Chrome 58 中不接受 Visual Studio 自簽名證書。
因爲「生成中的全部生成提交必須使用來自同一個項目集合的項目實例」,發佈失敗。
每次啓動 VS 2017 時都會運行「掃描新的和更新的 MEF 組件」,減緩啓動速度。
在本地調試 VS 2017 時頁面加載速度慢。
若是在不使用管理員權限的狀況下運行 VS Community 2017,會出現拒絕訪問錯誤消息。
設置操做失敗。
沒法將最近項目從起始頁上的最近列表中刪除。
沒法調試 T4 文本模板。
全部新的/現有 HTTPS 網站在 Chrome 中出現證書錯誤
程序集版本更改時不更新 MEF 緩存。
Editorconfig 支持將「charset = utf-8」解釋爲帶簽名的 UTF-8
RTM 忽略項目依賴項且生成失敗。
單擊文件選項卡時,Visual Studio 會凍結。
PerfWatson2.exe 阻止擴展安裝超過 1 分鐘。
Web 發佈預覽僅可上傳文件的子集。
調試程序安裝不正確。
版本 15.2 升級丟失窗口布局設置。
來自 HRESULT: 0xD00000F3 的 System.Runtime.InteropServices.COMException 異常。
C++ 自動完成 Enter
插入新行,而不是完成標識符。
發佈預覽不容許選擇性發布文件。
SSDT 安裝錯誤:進程沒法訪問文件「C:...IntelliTraceCollection.cab」,由於另外一進程正在使用它。
生成沒法啓動。
Intellisense:沒法經過 Tab
操做自動完成。
Visual Studio 2017 在附加到進程期間崩潰。
PerfWatson2.exe 在關閉 VS2017 後會運行幾分鐘,阻止 VSIX/擴展安裝程序。
Node.js 和 Python 安裝失敗。github
詳細瞭解版本 15.3 中已解決的客戶所報問題。web
此版本中的新增功能
輔助功能的改進
咱們解決了此版本中的 1700 多個輔助功能問題,使 Visual Studio 比以往任什麼時候候都更容易訪問。redis
-
現可訪問「藍(額外對比度)」主題(圖 1),該主題對某些顏色進行了微調,使編碼時想使用高一點的對比度的用戶感到顏色對比更加溫馨sql
(圖 1)「藍(額外對比度)」主題 -
現可藉助 Visual Studio 編輯器,經過新的「顯示行註釋」命令集發現並在文本修飾之間導航。 可在編輯器上下文菜單(圖2)中找到該新功能。 請參閱 Visual Studio 編輯器部分,瞭解詳細信息。typescript
(圖 2)顯示行註釋
Visual Studio IDE 的改進
- 在「幫助」菜單下添加了「鍵盤輔助功能」菜單命令。 這爲得到有關輔助功能提示和技巧的聯機文檔提供了便利。
-
如今,診斷系統會經過「信息欄」通知用戶可能涉及 Visual Studio 意外終止的擴展(圖 3)。 「信息欄」提供有關終止的信息,並詢問是否要禁用可疑擴展。shell
(圖 3)信息欄通知 -
在打開文件夾方案中,能夠經過專用 UI 選擇所需的調試程序。
-
已中止在 Visual Studio 2017 的不一樣並行安裝之間共享某些設置(如工具窗口布局),方法是將「%userprofile%\Documents\Visual Studio 2017\Settings」中的「CurrentSettings.vssettings」文件位置更改成相似於「%localappdata%\Microsoft\VisualStudio\15.0_xxxxxxxx\Settings」的特定於安裝的文件夾。
注意:在全新安裝時可以使用特定於安裝的新設置。 將現有 Visual Studio 2017 安裝升級到最新更新時,其會使用現有共享位置。 若是如今已擁有 Visual Studio 2017 的並行安裝,並決定升級且但願使用特定於安裝的新設置文件位置,請參閱如下步驟:1. 升級以後,使用「導入\導出」設置嚮導將全部現有設置導出到「%localappdata%\Microsoft\VisualStudio\15.0_xxxxxxxx」文件夾以外的某個位置。
- 打開已升級的 Visual Studio 安裝的開發者命令提示符並在其中運行
devenv resetuserdata
。 - 啓動 Visual Studio,並從導出的設置文件中導入保存的設置。
- 打開已升級的 Visual Studio 安裝的開發者命令提示符並在其中運行
-
修復了致使 Visual Studio 在主窗口出現前掛起的「隱藏窗口」bug。
- 擴大了可點擊目標區域,以便更輕鬆地消除通知提示。
.NET IDE 改進
- 添加了若干新重構和快速修補程序,例如「解決合併衝突」、「添加 null 檢查」、「添加參數」等。 請查看 Visual Studio 中的重構、代碼生成和快速操做頁面,查看完整列表。
- 對 IntelliSense 中的變量名稱提出了建議,有助於用戶快速命名變量,例如
Person person
。 - 「編輯並繼續」如今支持 C# 7.0 功能(本地函數除外)。
- 針對 .NET Core,增長了對項目文件夾外的文件通配支持。
登陸和標識改進
- 修復了賬戶選取器控件,「從新輸入憑據」運行更可靠。 (在某些狀況下,賬戶選取器會在從新輸入憑據時清除賬戶。 此修補程序應能解決此問題。)
起始頁
- 擴大了「開始」頁面 MRU「固定」的可點擊目標區域,以便更輕鬆地將關注的項固定到 MRU 頂部。
輕量級解決方案加載
- 提升了生成速度和穩定性。
- 減小了加載的項目數。
- 咱們添加了一個新選項(圖 4),該選項容許 Visual Studio 肯定什麼最適合用戶的解決方案。
- 咱們添加了文件搜索結果解決方案,搜索延遲項目,而不只僅是加載項目。
- 對此有一些限制:
- 搜索不會擴展到文件中,而且不包括漸進式結果,如類和方法。
- 屬於項目的文件顯示爲簡單列表。 若是文件屬於一個文件夾,除了文件名,還會顯示相對路徑。
- 搜索視圖中沒有文件項的上下文菜單。
- 加載項目時,會刷新全部現有的搜索,以添加進度結果。
- 對此有一些限制:
- 如今,GoTo All 和 GoTo Files 在工做區中顯示外部項中的內容。
- 咱們改進了使用 LSL 的項目中的 Batch 生成。
安裝
- 如今,Visual Studio 安裝程序支持級別小於 150% 的高 DPI 縮放。
vswhere.exe
可執行文件已更新爲在默認狀況下排除預覽實例,而當命令行上包含--prerelease
時,包含預覽實例。- CLI 能處理
--verify``--fix
和--clean
。--verify
會驗證佈局並通知用戶缺失和無效的負載。--fix
會驗證佈局並從新下載缺失或無效的包。--clean
會刪除已過期的包並容許用戶將佈局剪裁到特定的版本範圍。
- 已移除了安裝程序工具提示中的驅動器大小(圖 5)。
打開文件夾和 CMake 工具
- 提升了文件夾和解決方案之間切換的穩定性。
- 打開文件夾擴展程序控件可將源控件圖標添加到文件夾。 這樣一來,用戶可快速查看解決方案資源管理器中文件的源控件狀態,該操做目前由 SVN 實現。
- Visual Studio 中的 CMake 體驗已更新,現可以使用 CMake 3.8。
- 對於使用 MinGW 或 Cygwin 的 C++ 項目,改進了「打開文件夾」中的編輯、生成和調試支持。
- 添加了支持,以定義「CppProperties.json」和「CMakeSettings.json」中的全局和特定於配置的環境變量。 「launch.vs.json」中定義的調試配置和「tasks.vs.json」中的任務可使用這些環境變量。
- 加強了 Visual Studio 的 CMake 工具以提供對 CTest 集成的支持。
- 現可以使用 CMake 的 Ninja 生成器,以及經過 IntelliSense 輕鬆面向 64 位平臺、生成、調試和編輯的功能。
Visual Studio 編輯器
- 修復瞭如下問題:若是其餘工具提示處於活動狀態,IntelliSense 會消失。
- 修復了添加大量錯誤時,難以進行手動滾動和選擇的錯誤。
- 添加了「藍色」主題的新變體,知足了但願在 Visual Studio 編輯器中使用更高對比度的用戶須要。 若是不但願使用或不須要徹底高對比度模式,此主題可提供比常規「藍色」主題更高的對比度。 能夠經過「工具」->「選項」->「環境」->「通用」,嘗試使用此主題。
- 若是使用屏幕閱讀器,現可經過使用新的「顯示行註釋」命令在修飾之間導航。
- 若要激活,可在「編輯器」上下文菜單上選擇「顯示行註釋」(
Ctrl+K
、Ctrl+M
)。 此時編輯器中會出現一個描述行上修飾的彈出窗口。 - 使用
Ctrl+K
、Ctrl+ Right/Left Arrow
,在行上的多個註釋之間導航。 - 還可經過「顯示結構」命令
Ctrl+K
、Ctrl+G
在代碼中輕鬆查找上下文。 它會在插入點所在的彈出窗口中顯示代碼行的結構上下文,且可由屏幕閱讀器讀取。
- 若要激活,可在「編輯器」上下文菜單上選擇「顯示行註釋」(
持續交付工具
已將這些功能從 CD4VS 擴展移至 Visual Studio:
- 爲包含面向 Azure 應用服務的 ASP.NET 項目的解決方案,配置持續交付。
- 爲包含面向 Azure 應用服務的 ASP.NET Core 項目的解決方案,配置持續交付。
容器開發工具
- 如今,Visual Studio 2017 版本 15.3 支持跨使用 Windows 容器的現有 .NET Framework 應用、使用 Windows 的 .NET Core 和 Linux 支持的容器開發範圍。 最近的改進包括對運行 Nano 服務器的容器中的 .NET Core 應用程序的支持,以及對容器中 .NET Framework 應用程序的調試改進。
Service Fabric 工具
- 此版本提供新的有狀態 ASP.NET Core 項目模板、對 Service Fabric 2.5 和 2.6 SDK(以及相應運行時)的支持以及若干 bug 修補程序。
C++ 語言服務
- IntelliSense 引擎改進
- C++ IntelliSense 支持與批編譯器版本相匹配的新的 C++17 功能。
- 已將 C++ 編輯器中的上下文菜單選項添加到 Rescan 文件中,可在 IntelliSense 沒法正常工做時使用此選項。
- 減小了運行 C++ 代碼的「查找全部引用」或「調用層次結構」時的 CPU 使用。
- 咱們改進了 C++ IntelliSense 引擎整體體驗。
- 項目和代碼嚮導改進
- 咱們按照簽名對話框樣式從新編寫了多個項目和代碼嚮導。
- 「添加類」如今直接啓動「添加類嚮導」。 之前此處的其餘全部項如今位於「添加」>「新建項」。
- Win32 項目如今位於「新建項目」對話框中的「Windows 桌面」類別下。
- Windows 控制檯和桌面應用程序模板如今能夠在不顯示嚮導的狀況下建立項目。 在相同的類別下有一個新的 Windows 桌面嚮導,顯示和之前相同的選項。
- 實驗性選項下的「啓用更快的項目加載」選項已重命名爲「啓用項目緩存」並移至「VC++ 項目設置」下。 舊屬性值不會傳播到新選項。
Visual C++ 工具集和庫
- Visual Studio 開發者命令提示符(和 Visual C++ 命令提示符)已添加對經過
-vcvars_ver=14.0
參數初始化面向 Visual C++ 2015 工具集 (v140) 的命令提示符環境的支持。 - Visual C++ Redist 文件目錄已重命名爲 Microsoft.VC141.,以經過工具集 (14.1x) 匹配版本控制。 在 VS 2017 RTM 中,這些目錄被錯誤命名爲 Microsoft.VC150.。
- Visual C++ 文件版本和目錄 (VS 2017 15.3):
- VC++ 工具集文件版本:14.11.25506.0 或 19.11.25506.0
- VC++ 工具目錄:VC\Tools\MSVC\14.11.25503(預覽版中鎖定目錄位置)
- VC++ Redist 目錄 [a]:VC\Redist\MSVC\14.11.25325(除 MFC 和 OneCore 以外的全部運行時)
- VC++ Redist 目錄 [b]:VC\Redist\MSVC\14.11.25415(MFC 和 OneCore 運行時)
C# 7.1 語言支持
- 添加了使用 C# 7.1 語言功能的功能。
- C# 7.1 添加對異步 Main 方法、泛型模式匹配、「默認」文本和推斷元組名稱的支持。
- 在項目中使用 C# 7.1 功能時,燈泡圖標會提示將項目語言版本升級到「C# 7.1」或「最新」。
- 請參閱 C# 語言功能狀態頁,瞭解完整詳細信息。
.NET Core 和 ASP.NET Core 改進
- 現可經過單獨的下載安裝 .NET Core 2.0 SDK,以便在 Visual Studio 2017 版本 15.3 中啓用 .NET Core 2.0 開發。 請參閱 .NET 博客帖子,瞭解詳細信息。
- Visual Studio 現提供對多個 .NET Core SDK 的並行支持。 可試用 .NET Core SDK 最新的每日內部版本,同時使用 SDK 的最新公開發布版本進行開發。 有關詳細信息,請查看 .NET 博客。
- 經過 Visual Basic 支持可在 Visual Basic 中建立 .NET Core 控制檯應用程序,以及 .NET Core 和 .NET Standard 類庫。
- 經過 .NET Framework 和 .NET Standard/Core 互操做可從 .NET Framework 項目中引用 .NET Core/.NET Standard 庫,反之亦然。 無需手動添加互操做 NuGet 包 - Visual Studio 會自動執行此操做。
- 經過多個目標框架支持加強可爲多個目標框架 (TFM) 生成項目,並使用「調試/運行」中的 TFM 選取器選取要運行的 TFM。
- 咱們添加了 Windows Nano 映像支持,將 ASP.NET Core 應用容器化爲 Windows Nano 映像。 現可選擇 Nano 做爲容器平臺。 能夠在「文件」->「爲 ASP.NET Core 項目新建項目」下執行此操做。 對於現有的項目,可使用「項目上下文菜單」進行添加。
- 本地 IIS 支持:現可以使用 Visual Studio 中的 IIS 進行開發和調試。
- .NET Framework 上的 ASP.NET Core - 在此版本中,若要建立面向完整 .NET Framework(僅 Windows) 的 ASP.NET Core 項目,使用 One ASP.NET 對話框上的下拉列表。
-
現可爲 .NET Standard、.NET Core 和 ASP.NET Core 項目啓用 Live Unit Testing 功能。
NuGet 改進
- 安裝包或添加的項目到項目引用不兼容時,NuGet 如今會顯示改進的警告和錯誤。
-
NuGet 如今容許用戶禁止特定或全部警告,或者經過生成屬性將其提高至錯誤。
.NET Framework 4.7
- 如今,Visual Studio 2017 版本 15.3 將 .NET Framework 4.7 開發工具提供給全部受支持的平臺(其中包括 4.7 運行時)。 .NET Framework 4.7 提供多個新功能和改進,以及大量可靠性、穩定性、安全性和性能修復。 可在這些文章中找到有關 .NET 4.7 的更多詳細信息:
- .NET Framework 4.7 RTM 博客。
- .NET Framework 中的新增功能。
- .NET Framework 4.7 發佈更改備註。
- .NET Framework 4.7 的已知問題。
- .NET Framework 4.7 中的應用程序兼容性。
- .NET Framework API 差別。
調試和診斷
Visual Studio Team Services 符號服務器的調試程序支持
- 現可從 Visual Studio Team Services 符號服務器查詢和下載符號(圖 6)。 可使用「工具」->「選項」->「調試程序」->「符號」頁,選擇 Visual Studio Team Services 符號路徑並將其添加到 Visual Studio 環境。 若要設置 Visual Studio Team Services 符號服務器,請遵循這些說明。
- 使用「開始調試」(
F5
) 或「附加到進程」(Ctrl+Alt+P
) 調試時,如今支持 SetThreadDescription API。 經過此 API 設置的線程名稱如今出如今「線程窗口」和「調試位置」工具欄的「線程」下拉列表中。 尚不支持在轉儲調試時使用此功能。 - 「輸出窗口」如今顯示調試時「窗口容器」中運行的應用程序的控制檯輸出。
- 添加了基於 Nano 服務器調試在「窗口容器」中運行的 .NET Core 應用的新支持。
指向並單擊「設置下一語句」
- 如今,可在調試期間,在斷點處中止時按住
Ctrl
鍵。 代碼行旁的「運行到單擊處」(運行執行到此處)圖標更改成「設置下一語句」功能(圖 7)。 單擊此處將黃色指令指針移動到該行,並設置調試程序要執行的下一語句。
Windows PDB 文件格式的源連接支持
- 除可移植 PDB 外,Windows PDB 文件格式如今也支持源連接。 支持它的編譯器能夠將必需信息放在 Windows PDB 文件格式中,調試程序能夠基於該信息檢索源文件。
「打開文件夾」調試改進
使用「打開文件夾」新模板時的調試體驗更加輕鬆。 若是已安裝核心調試程序,使用新模板可選擇要使用的調試程序類型。 在解決方案資源管理器的「調試和啓動設置」菜單選項中,能夠在「選擇調試程序」對話框中選擇「託管」、「本機」或「混合」。 若是已安裝 C++ MDD 體驗(Android C++、Linux 調試等),如今能夠在相同菜單選項中看到使用 GDB 進行附加和啓動的 MinGW 和 Cygwin 支持選項。
「所有刷新」在變量窗口中嵌套值
- 單擊「監視」、「自動」和「局部變量」窗口中變量或表達式的父節點的「刷新」按鈕時,該節點的全部可見子變量和子表達式也會刷新並從新計算。 再也不須要單擊每個子節點的「刷新」按鈕。
.NET Core 的 Live Unit Testing 支持
- 如今能夠爲 .NET Standard、.NET Core 和 ASP.NET Core 項目啓用 Live Unit Testing 功能。
Xamarin
- 屬性頁和應用清單從新設計 - 咱們不斷努力提升 iOS 和 Android 項目的屬性頁的易用性。
- 新權利編輯器 - 添加了用於編輯應用權利的獨立編輯器。
有關這些更改的完整概述,請訪問 developer.xamarin.com,獲取更多詳細信息。
.NET Core
- 爲 .NET Core 項目添加了 Live Unit Testing 支持。
- 可使用 Visual Basic 建立 .NET Core 控制檯應用程序,以及 .NET Core 和 .NET Standard 類庫。
- Visual Studio 如今支持建立和運行 .NET Core 2.0 應用(若是已單獨安裝 SDK)。 可從 .NET Core 2.0 SDK 頁安裝最新內部版本。
請查看 .NET Core 2.0 博客,獲取更多詳細信息。
Application Insights 搜索中的相關事件聚類分析
- 已將相關事件的羣集添加到 Application Insights 搜索工具的搜索查詢結果中。 這些羣集能夠幫助用戶發現應用程序行爲使人意外的模式,例如來自一個國家/地區、版本或用戶的大量異常。
Redgate 數據工具
Redgate ReadyRoll Core
已更新到版本 1.13.23.3402 以添加:
- 圖標改進,具有高 DPI 支持和工具欄更好的響應性。
- 「項目設置」選項卡的可用性改進。
- 「入門」視圖、「部署摘要」和「登陸窗口」的可用性改進。
- 目標數據庫不存在時的視圖。
- 「工具」菜單下的 ReadyRoll 項。
- 對打開 SSMS 時的 SQL 身份驗證的支持。
Redgate SQL Prompt Core
- 已更新到版本 7.5.1.1087 以改進對 SQL Server 2016 的語法支持,並修復名稱限定和 Azure 鏈接性問題。
Redgate SQL Search
- 已更新到版本 2.4.2.1321 以添加高 DPI 支持的圖標。
Azure Function 工具
- 用於開發 C# Azure Functions 的工具添加到了「Azure 開發」工做負載中。
- 可開發使用預編譯 C# 類庫的 Azure Function 以及用於指定觸發器的屬性。
- 可在本地開發計算機上生成、運行和調試。
- 現可直接從 Visual Studio 發佈到 Azure。
JavaScript 和 TypeScript
- 咱們從 64 位節點切換到了 32 位節點,從而啓動 tsserver,並將語言服務內存消耗減半。
- 導入語句中的文件路徑 IntelliSense 如今更快。
- TypeScript 版本如今能夠獨立於 Visual Studio 更新安裝,並基於每一個項目選擇(有關詳細信息,請查看此處)
Node.js
- 添加了對 Node 8 調試的支持。
- 加強了單元測試運行程序的性能。
- 簡化了 npm 包安裝程序 UI。
鏈接的服務中的 Microsoft Graph 提供程序
- 在鏈接的服務中啓用了對 Microsoft Graph API 的支持。
Python
- 咱們解決了許多故障和意外錯誤,使體驗更穩定。
- 咱們改進了屏幕閱讀器、鍵盤導航和高對比度的輔助功能。
- 咱們改進了本地化,非英語用戶在 UI 中看到的英文文本更少了。
R 工具
- 改進的 IntelliSense
- 對阻止 ping 的計算機具備更好的 Azure 鏈接性
- 遠程服務安裝再也不須要服務管理權限
- 輔助功能和本地化的修復和改進