我們非常榮幸地宣布 Visual Studio 2017 現已推出! 此次發布提供新的輕量模塊式安裝體驗,可根據自身實際需求進行調整。
使用 Visual Studio 2017 開發適用于 Android、iOS、Windows、Web 和云的應用。 快速編碼、輕松調試和診斷、時常測試,并且可以放心地進行發布。 還可通過構建自己的擴展,以便擴展和自定義 Visual Studio。 此新版本發布之后,可使用版本控制、更具敏捷性且可高效協作!
下載:Visual Studio Enterprise 2017
若要了解有關其他相關下載的詳細信息,請參閱下載頁。 另請參閱Visual Studio 2017 系統要求和Visual Studio 2017 平臺目標以及兼容性。
我們期待你的寶貴意見和建議! 有關安裝程序或 Visual Studio IDE 本身的問題,請通過右上角的報告問題選項告知我們。 在開發人員社區門戶網站上跟蹤自己的反饋。 如有任何建議,請通過UserVoice告知我們。
請參閱已知問題部分。
若要深入了解此發布版中已解決的問題,請訪問開發人員社區門戶。
新的安裝體驗- 降低了最小內存需求量以實現更快、更定制化的安裝,并且支持脫機安裝。
Visual Studio IDE- 大幅改進了 Visual Studio 2017,包括減少啟動和解決方案加載時間、改進登錄和標識、改進代碼導航以及增添打開文件視圖和鏈接的服務,實現了應用和任意本地服務或云端服務之間的連接。
Visual C++- 版本 2015 和 2017 之間沒有重大更改。 更佳的 C++14 一致性級別、CMake 支持、生成吞吐量和編輯器效率。
C# 和 Visual Basic- 擴展對新的 C# 7.0 和 Visual Basic 15 語言功能的支持,引入新的重構以便能夠通過一個操作來整理源代碼。
F#- 支持 F# 4.1 語言功能、對 F# 編譯器和 FSharp.Core 的改進,以及基于 Roslyn 工作區的新編輯器。
JavaScript 和 TypeScript– TypeScript 2.1 可用于 Visual Studio 中的所有 TypeScript 項目。 提供新的 JavaScript 語言服務,并默認啟用。
調試和診斷- 對異常幫助器進行了大改造,且可以通過“運行時單擊”更快地導航代碼。 此外,“診斷工具”窗口中增添了應用程序事件摘要,并對 CPU 工具實施了多項改進。
實時單元測試- 在編輯器中實現單元測試結果和代碼覆蓋率的實時可視化。
測試工具- 使用測試資源管理器將自動化與測試用例工作項關聯。
團隊資源管理器中的新增 Git 功能并增強了連接體驗- 在 Visual Studio 2017 中可使用 Git 完成更多工作,并可輕松找到要連接到的項目和存儲庫。
Visual Studio 擴展- 通過構建自己的擴展來按照自身喜好對 Visual Studio 進行自定義。
項目和項模板的可發現性- 突破性地改進了 Visual Studio 使用項目和項模板的方式,提升了模板發現的性能。
.NET Core 和 ASP.NET Core- 這包含新的基于 MSBuild 的 .NET Core 工具的 1.0 最終版本。 使用 Visual Studio 2017 可創建 .NET Standard 庫、.NET Core 應用/庫和使用新 csproj 格式的 ASP.NET web 項目。
通用 Windows 應用開發工具- 更新包括新版本的 .NET Native 工具鏈、.NET Core NuGet 框架、新的效率工具以及對 Windows 10“創意者更新”SDK 的支持。
Xamarin- Xamarin 4.3 添加了對 tvOS 的支持,同時改進了 iOS 資產目錄支持和 XML 編輯體驗。
Visual Studio Tools for Apache Cordova- 基于瀏覽器的新模擬器可實現快速編碼并即時查看結果。
針對 Visual Studio 的 Node.js 工具- 更新側重于穩定性、性能和總體產品質量。
Visual Studio Tools for Unity- 現可通過新的 Visual Studio 安裝程序中的“使用 Unity 的游戲開發”工作負載安裝 Visual Studio Tools for Unity 3。
Redgate 開發人員工具 Core Edition- 為了將 DevOps 功能擴展到 SQL 數據庫開發,Visual Studio 現在包含 Redgate 開發人員工具 Core Edition,其中包括 Redgate ReadyRoll、SQL 搜索和 SQL Prompt。
NuGet- NuGet 現在支持將包依賴項信息作為包引用直接存儲在項目文件中,同時保持包引用的可傳遞優勢。
用于 XAML 應用的工具- 現在可以通過 XAML 運行時工具欄跟蹤焦點。 通過 XAML“編輯并繼續”功能、XAML 編輯器改進和性能優化,提升了 XAML 的工作效率。
Data Tools 和 SQL Server- SQL Server Data Tools 的最新更新實現了對 Azure SQL 數據庫和 SQL Server 2016 的最新功能的支持。
開發人員分析工具- Visual Studio 2017 包括開發人員分析工具 v8.6,對 Visual Studio 中的 Application Insights 和 HockeyApp 功能做出了許多改進。
Visual Studio 的 Office 開發人員工具- 包含了附帶最新功能和更新的 Office 開發人員工具。
體系結構依賴關系的實時驗證- 依賴關系驗證關系圖(又稱層關系圖)的實時通知。
開發人員命令提示符- 重構了腳本以支持新的安裝體驗。
用于 .NET 的 Azure SDK- 現可通過新的 Visual Studio 安裝程序獲取。
增強的 Visual Studio 反饋工作流- 報告問題協作性更佳。 搜索、跟進和投票,獲取所有反饋的最新更新。
我們很高興推出新款全新設計的安裝程序:
減少 Visual Studio 的最小內存占用量。
安裝速度更快、系統影響更小和完全卸載。
方便你更輕松地選擇并僅安裝所需功能。
首次安裝 Visual Studio 2017 時,會獲得新體驗:
最小的安裝僅為數百兆字節,但仍然支持針對超過&20; 種語言的基本代碼編輯(包括源代碼管理)。 大部分用戶會想安裝更多功能。 可添加一個或多個代表常見框架、語言和平臺的“工作負載”,涵蓋從 .NET 桌面開發到使用 Unity 的游戲開發等一切事務。
若要更新 Visual Studio,請運行 Visual Studio 安裝程序并單擊“更新”按鈕。
可使用標題欄右上角處新安裝程序客戶端的“報告問題”和“提供建議”命令來報告問題或給出好評。 我們想知道你在安裝、卸載或修改安裝時是否遇到錯誤,是否遇到異常安裝時間(例如掛起)或意外錯誤消息。
系統管理員和其他用戶現在可以創建 Visual Studio 的脫機布局,其中包含了安裝產品所需的所有內容,無需訪問 Internet。 此布局可以是完整的產品、工作負荷和/或組件的一個子集,以及一個或多個產品區域設置。 請注意,創建脫機布局需要 Internet 訪問。 有關詳細信息,請參閱Create an offline installation of Visual Studio 2017(創建 Visual Studio 2017 的脫機安裝)。
Visual Studio Enterprise 和 Community(以及其他產品)現在可以并行安裝在同一臺計算機上。 若要使標識這些安裝更加容易,可以指定短名稱或“別名”。 例如,如果要安裝 Visual Studio Enterprise,然后安裝 Visual Studio Community,這兩個程序在開始菜單上的顯示是一樣的。 可以為第二個程序提供別名,如“community”,開始菜單項中將顯示諸如“Visual Studio 2017 (community)”和“Visual Studio 2017 (community) 開發人員命令提示”這樣的名稱。
已對 Visual Studio 進行優化以減少啟動時間和解決方案加載時間。 首次啟動 Visual Studio 提速 50%。
Visual Studio 現可監視影響啟動、解決方案加載或編輯的擴展性能。 通過 IDE 中的通知欄,將收到有關執行效果不佳的擴展的警報。 借助新的性能中心(也可通過“幫助”>“管理 Visual Studio 性能”使用),可查看影響性能的擴展,還可發現影響啟動性能的工具窗口并更改其啟動加載行為。
可在新的 Visual Studio 安裝程序中選擇 Visual Studio 適用的 GitHub 擴展。
已將“重載所有項目”替換為“重載解決方案”,以在切換 VS 外部分支時獲得更佳性能。 使用 Git 命令行切換分支時,請在切換分支后選擇“重載解決方案”以最大程度地提升性能。
增強了用于 .NET Core 和 ASP.NET Core 項目的文件通配功能。 請參閱項目文件通配,以獲取更多詳細信息。
即將自動轉到克隆后的存儲庫的文件夾視圖。 可查看文件或使用新解決方案選擇列表在解決方案資源管理器中打開解決方案。
引入了新的外部服務主機,它將替代 VSHub。 此新的服務主機是一個外部進程,將在任務管理器中顯示為 ServiceHub.Host.CLR.*.exe 和 ServiceHub.Host.Node.x86.exe。 此主機將最終消除與 VSHub 一起引入的 localhost http 流量,前者應可解決用戶報告的產生干擾的 Fiddler 問題。
預發布許可證到期消息更明確地說明了當前的許可證狀態。
現在,屏幕閱讀器可以更輕松地訪問“帳戶設置”對話框。
現在,通過從 Visual Studio 安裝程序中安裝幫助查看器組件,可使用脫機幫助。
現在可以使用 Visual Studio 安裝程序的“語言包”選項卡隨時添加和刪除多個用戶界面語言。 可以使用“工具”>“選項”>“國際設置”,在那些已安裝的用戶界面語言之間選擇當前的用戶界面語言。
通過版本控制狀態欄,你可以更輕松地將本地存儲庫發布到 SCC 主機,并跟蹤未提交和未推送的工作。
推出了一種新的標識服務,可用于跨 Microsoft 開發人員工具共享用戶帳戶。 在 Visual Studio 中,此共享包括團隊資源管理器、Azure Tools 和 Windows 應用商店發布等功能。 現在,這些功能的登錄體驗共有且一致。
除了改進 Visual Studio,我們還在服務端部署了部分改進功能,讓用戶可安全保持登錄狀態,消除了每 12 小時便強制登錄的要求。 這解決了最常報告的登錄問題。深入了解如何減少 Visual Studio 提示。
重新設計的起始頁擁有新的“打開”和“創建”功能:
從 VSTS 獲取遠程存儲庫或使用我們更加醒目的 MRU,以輕松地打開本地項目和解決方案。
起始頁 MRU 會顯示在其他計算機上克隆的存儲庫,因此可在當前計算機上輕松克隆這些庫。
通過可搜索的模板和最近使用的模板列表,直接從起始頁新建項目。 最近使用的模板也會在具有個性化帳戶的 Visual Studio 實例間漫游。
通過起始頁上的“從 VSTS 簽出”選項,快速啟動 VSTS 體驗的新克隆。
可刪除的“入門”部分。
“新聞”部分現可折疊:
更新了新聞源中新添加的項上的徽章。
在新聞源處于折疊狀態時,如果出現新項,則對新聞源擴展器設置徽章。
優化了視覺設計,由此解決了反饋的有關屏幕較小時元素截斷的問題,同時提升了空間利用率。
下方顯示了新的起始頁。
Visual Studio 2017 中的代碼導航功能有了顯著改進:
轉到全部。 (Ctrl + , 或 Ctrl + T)可快速查找并轉到代碼中的文件、類型、方法和其他元素。 通過它可找到任何類型的項,甚至在大型基本代碼中亦可如此。 此外,若知道要查找的項類型,便可輕松進行篩選。 在 C# 和 Visual Basic 中,我們還添加了模糊匹配,因此即使某個類型名稱拼寫錯誤,也仍然可獲得結果。 還優化了“轉到行”(Ctrl + G)體驗。 “轉到”系列命令位于“編輯”菜單的頂部。
“查找所有引用”(Shift+F12) 已大幅改進(當前針對 C#、Visual Basic 和 C++),可實現高級分組、篩選、分類、在引用結果中搜索以及結果著色(針對 C# 和 VB),讓用戶清晰了解引用并自信地找到所需的代碼行。 鼠標懸停在引用項上時,會顯示一個工具提示,其中顯示源代碼中該引用的上下文(針對 C# 和 VB)。 通過切換工具欄中的“保存結果”按鈕,“查找所有引用”的下一個調用將在新窗口中填充引用結果。 通過此操作,可將當前結果保留在現有窗口中。
結構參考線現在編輯器中繪制,以便可輕松可視化正在處理的代碼的結構。 鼠標懸停時,會顯示一個工具提示,其中包含當前代碼塊(相對于其上級塊)的上下文。 結構參考線當前支持 C#、Visual Basic 和 XAML 文件,以及通過 TextMate 語法支持的任何文件。 可通過取消選中“文本編輯器” > “常規”類別下的“顯示結構參考線”復選框,在“工具”>“選項”對話框中禁用此功能。
Visual Studio 編輯器現支持EditorConfig,它允許開發人員定義編碼樣式約定并使其在不同編輯器和 IDE 之間保持一致。 請參閱文檔獲取更多詳細信息,請參閱.NET 文檔獲取有關如何使用 .editorconfig 文件管理 .NET 代碼樣式的信息。 請參閱已知問題,了解此版本中有關 EditorConfig 支持的限制。
“打開文件夾”是使用不含項目和解決方案的基本代碼的簡便方法。 通過“文件”>“打開”>“文件夾”打開文件夾視圖,然后選擇要導航的文件夾。
可使用解決方案資源管理器打開和編輯文件。 許多常用語言具有語法突出顯示和符號導航(GoTo)支持。 此外,某些語言可直接由文件夾獲得高級 IntelliSense 和調試支持:
C++ (CMake)。
Node.js - JavaScript/TypeScript。
C# 和 VB。
可使用 F5 和解決方案資源管理器中的文件上下文菜單實現生成或調試操作。 要獲得最佳體驗,請確保安裝所使用語言的工作負荷。
文件夾視圖也支持以下操作:
使用 GoTo (Ctrl+,) 在文件夾中的代碼中進行搜索。
將解決方案資源管理器文件夾視圖的范圍設置為子文件夾。
在資源管理器中或解決方案資源管理器的命令提示符下打開文件夾。
利用解決方案選擇下拉列表,在打開的文件夾/存儲庫的解決方案之間輕松切換。
使用 launch.vs.json 配置調試和啟動設置。 右鍵單擊可調試的文件并選擇“調試和啟動設置”。
使用 tasks.vs.json 配置任務和自定義生成。 右鍵單擊任何文件,并選擇“配置任務設置”。
Launch.vs.json 和 tasks.vs.json 在 JSON 編輯器中具有 IntelliSense。
大幅提升了打開文件夾和在文件夾視圖與解決方案視圖之間切換時的效果。
輕量級解決方案加載可讓大型解決方案的加載速度更快。 它可大幅節省大型解決方案的加載時間和內存使用量。 此功能并非默認啟用,可按解決方案逐一啟用,也可在 IDE 中全局啟用。 若要全局啟用,可導航到“工具”>“選項”,選擇“項目和解決方案”下的“常規”,或通過使用“快速啟動”搜索“輕量級解決方案加載”。 可在解決方案屬性窗格中,為單個解決方案開啟和關閉該功能。
輕量級解決方案加載最適合包含 C# 項目或包含混用 C# 和 C++ 的項目的大型解決方案。 如果檢測到正在使用大型解決方案,系統可能會提示啟用此功能。 有關此功能的更多詳細信息,可訪問Visual Studio 博客。
大幅改進了完整解決方案生成的性能,現在與常規的解決方案加載擁有同等性能。
基于在 Visual Studio 2015 更新中添加的支持,Visual Studio 2017 現支持對更多語言進行語法著色和自動完成。 此外,這些語言中的其中一些語言也支持通過“導航到”(Ctrl+) 和/或代碼段導航。
以下所示的語言文件支持新“Visual Studio 核心編輯器”中的這些功能(即使并未安裝顯式支持有問題的語言的工作負載)。 如果安裝了提供語言支持的工作負載(例如 .NET 桌面應用程序開發工作負載、使用 C++ 的 Windows 桌面應用開發工作負載等),會提供更廣泛的語言支持,包括 IntelliSense 和其他高級語言功能(例如燈泡)。
按支持級別列出的語言文件類型:
僅支持語法著色和自動完成:
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。
支持代碼段(除了語法著色和自動完成以外):
CMake、C++、C#、Go、Groovy、HTML、Java、Javadoc、JavaScript、Lua、Perl、PHP、R、Ruby、Shellscript、Swift、XML。
支持導航到(除了語法著色和自動完成以外):
C++、C#、Go、Java、JavaScript、PHP、TypeScript、Visual Basic。
針對新創建的項目,我們引入了全新的入門體驗。 我們已將當前的入門頁替換為新應用配置設計器中的“概述”選項卡,此頁面側重于能夠讓你快速入門并開始運行的操作!
在 ASP.NET 4.x ASP.NET Core 項目中啟用。
在 Cordova 項目中啟用。
在以前的版本中,此功能被命名為“服務功能”。 我們已將該名稱更改為“連接的服務”。
連接的服務即 Visual Studio 2017 中新式的“添加連接的服務”功能或“添加服務引用”功能。 連接的服務功能可使應用與服務間的連接更輕松。 解決方案資源管理器中提供了一個用于 Web 和移動項目類型的名為“連接的服務”的新節點。 雙擊此節點會在 Visual Studio 中打開一個新的整頁選項卡,可在其中發現可連接到的熱門 Microsoft 服務。
在“連接的服務”頁上選擇一個服務將調用“連接的服務向導”,該向導會配置項目、下載必要的 NuGet 數據包,從而幫助快速輕松地根據服務需要進行編碼。
通過 Visual Studio 2017 可輕松獲取其他工作負載和組件,而無需離開 IDE。 利用“快速啟動”可查找并啟動任何工作負荷或單個組件的 Visual Studio 安裝程序。
如果找不到正在尋找的模板,也可以從“新建項目”對話框中打開 Visual Studio 安裝程序。
Visual Studio 2017 向 Visual C++ 環境引入了許多更新和修補程序。 感謝你報告 bug! 我們修復了編譯器和工具中的 250 多個 bug 和已報告問題,其中很多是客戶通過Microsoft Connect提交的。 我們在此版本中著手了 STL 的性能改進。 現在默認使用全新的基于 SQLite 的數據庫引擎。 這將提高數據庫操作(如“轉到定義”和“查找所有引用”)的速度,并將極大地縮短初始解決方案分析時間。 現提供原始 C++ 工作流的更細化的安裝體驗。 我們添加了可選組件,使你能夠僅安裝所需工具。 Visual Studio 中的 CMake 支持已準備好展現它的強大功能! 直接將 CMake 項目加載到 VS 中并立即開始編寫代碼。 改進了“打開文件夾”C++ 體驗,因此可以直接將源代碼編入 VS 中,而無需創建任何 VS 解決方案和項目。 “導航到”現稱為“轉到”,這個涵蓋性術語針對一組新的導航篩選器。 這使用戶可更輕松地找到正確結果,尤其在較大代碼庫中。
用于強制執行C++ 核心準則的 C++ 核心檢查器現已通過 Visual Studio 分發。 只需在項目“屬性”頁的“代碼分析擴展”對話框中啟動檢查器,即會在運行代碼分析時包含擴展。
我們更新了 C++ 編譯器和標準庫,不僅增強了對 C++11 和 C++14 功能的支持,還引入了對預期推出的某些 C++17 標準功能的初步支持。 編譯器支持通用 constexpr 和聚合的 NSDMI,具有 C++14 標準版中的全部新增功能。 請注意,編譯器仍缺少 C++11 和 C++98 標準版中的一些功能。 Visual Studio 2017 允許結合使用 /sdl 和 /await。 刪除了協同程序的 /RTC 限制。
此版本在優化和代碼生成方面做出了若干改進。 顯著改進包括:
改進了循環的代碼生成:支持常量整數除法的自動矢量化,優化了 memset 模式的識別。
提高了代碼安全性:改進了緩沖區溢出編輯器診斷的顯示,/guard:cf 現可保護生成轉移表的切換語句。
/Debug:fastlink 選項得到改進,相較 Visual Studio 2015,大組件上的鏈接速度提升了 30%。
使用協同例程時,實驗關鍵字 "yield"(在 /await 開關下可用)已被刪除。 應更新你的代碼,以改為使用 "co_yield”。 有關詳細信息,請參閱Visual C++ 團隊博客。
[STL] basic_string 的性能改進。
[STL] 增添了 、、apply()、make_from_tuple()。
[STL] std::vector 已經過全面檢修,以提高正確性和性能。
[STL] 現在 STL 會避免取消引用 null 復雜精致指針。
[STL] 增添了 、、shared_ptr::weak_type 和 。
[STL] 在 min/max/minmax(initializer_list) 和 min_element/max_element/minmax_element() 中啟用了 C++14 constexpr。
[STL] 將 std::string/std::wstring 的移動構造函數的性能提升了超過 3 倍。
[STL] 有關 STL 改進的完整列表,請參閱:Visual C++ 團隊博客。
[ATL] 還進行了另一組名稱查找一致性修復。
[ATL] 現有的移動構造函數和移動賦值運算符現已正確地標記為非引發。
[ATL] 取消禁止有關 atlstr.h 中本地靜態變量的線程安全初始化的有效警告 C4640。
[ATL] 在[使用 ATL 和生成 DLL] 時,本地靜態變量的線程安全初始化在 XP 工具集中自動關閉。 這種情況不會再出現。 如果需要關閉線程安全初始化,則可以在項目設置中添加 /Zc:threadSafeInit-。
[AMP] 審核了庫并修復了拼寫錯誤。
[VCRuntime] 控制流防護符號新增了標頭“cfguard.h”。
現針對 C++ 本機項目和 C++ /CLI 項目有了更佳的配置更改性能,后者的性能增加更為明顯。 第一次激活解決方案配置時,現在的速度會更快,且此解決方案配置的所有后續激活幾乎可瞬時完成。
現在默認使用全新的基于 SQLite 的數據庫引擎。 這將提高數據庫操作(如“轉到定義”和“查找所有引用”)的速度,并將極大地縮短初始解決方案分析時間。 設置已移至“工具”>“選項”>“文本編輯器”>“C/C++”>“高級”下(之前位于...“C/C++”>“實驗”下)。
我們改進了不使用預編譯標頭的項目和文件的 IntelliSense 性能 - 為當前文件中的標頭創建自動預編譯標頭。
其他更新包括:
還為錯誤列表中的 IntelliSense 錯誤添加了錯誤篩選和幫助。 單擊錯誤列現在允許進行篩選。 此外,單擊特定錯誤或按 F1 將啟動錯誤消息的聯機搜索。
增添了按類型篩選“成員列表”項的功能。
添了新的實驗性預測 IntelliSense 功能,此功能可根據上下文篩選成員列表中的所示內容。
在新的“查找所有引用”UI 中,可了解是否要從 C++ 代碼結果中的變量進行讀取或向其寫入。
已將“點到箭頭”IntelliSense 功能從實驗級提升為高級,且現在為默認啟用。 編輯器功能“展開作用域”和“展開優先級”也已從實驗級提升為高級。
實驗性的重構功能“更改簽名”和“提取函數”現默認可用。
我們啟用了用于 C++ 項目的新實驗性功能“快速項目加載”。 下次打開 C++ 項目時,加載速度將更快,而再下一次的加載速度甚至還會更快!
改進了“打開文件夾”體驗。 通過“打開文件夾”加載源,可編輯、生成和調試非 MSBuild C++ 項目。 通過以下 json 文件自定義體驗:
使用 CppProperties.json 可自定義 IntelliSense 和瀏覽體驗。
使用 Tasks.vs.json 可自定義生成步驟。
使用 Launch.vs.json 可自定義調試體驗。
無需在根文件夾中創建 CppProperties.json 文件,C++ IntelliSense 便可正常工作。 此外,我們增添了一個新的下拉列表,允許用戶在分別由 CMake 和 CppProperties.json 文件提供的配置之間輕松切換。 “打開文件夾”中的 CMake 支持:在使用“打開文件夾”打開 CMake 項目時會自動配置用于 C++ 編輯、生成和調試的環境。
通過 CMakeLists.txt 文件所在的同一文件夾中的 CMakeSettings.json 文件提供進一步的配置支持。
CMake 支持:
有關 CMake 支持的概述,請參閱:Visual C++ 團隊博客。
通過 10 分鐘時長的CMake 視頻了解 CMake 支持。
有關使用 C++ 進行 Linux 開發的信息,請觀看Linux 視頻。
使用 C++ 的 Windows 桌面開發:
現提供原始 C++ 工作流的更細化的安裝體驗。 我們添加了可選組件,使你能夠僅安裝所需工具。 請注意,在安裝程序用戶界面中列出的組件的安裝大小的指示并不準確,而且它低估了整個大小。
若要在 C++ 桌面工作負載中成功創建 Win32 項目,則必須安裝工具集和 Windows SDK。 安裝推薦(選中)的組件“VC++ 2017 v141 工具集(x86、x64)”和“Windows 10 SDK (10.0.14393)”可以確保正常運行。 如果未安裝所需工具,將無法成功創建項目,且向導將掛起。
使用 C++ 的 Linux 開發:
熱門擴展“用于 Linux 開發的 Visual C++”現已納入 Visual Studio。 此安裝提供開發和調試運行在 Linux 環境中的 C++ 應用程序所需的一切信息。
使用 C++ 的游戲開發:
以 DirectX 或 Cocos2d 為后盾,利用 C++ 的強大功能構建專業游戲。
使用 C++ 的移動開發(Android 和 iOS):
現可利用 Visual Studio 創建和調試面向 Android 和 iOS 的移動應用。
通用 Windows 平臺開發:
C++ 是通用 Windows 平臺開發工作負荷的可選組件。 當前必須手動完成 C++ 項目的升級。 如果在 Visual Studio 2017 中打開面向 v140 的 UWP 項目,且如果沒有安裝 Visual Studio 2015,則需要在項目屬性頁中選擇 v141 平臺工具集。
Visual Studio 2017 附帶的 Clang/C2 工具集現在支持 /bigobj 開關,這對生成大項目來說至關重要。 它還在編譯器的前端和后端進行了多項重要的 bug 修復。
此版本引入了對 C# 7.0 和 Visual Basic 15 語言功能的支持,包括:
對于 C#:
類似任務的異步方法返回類型:這可從異步方法中返回任何類似任務的類型。 以前,這些返回類型限制為Task和Task。
值元組引入使用元祖臨時對一組類型化的值分組的語言支持。 若要了解詳細信息,請查看 GitHub 上的設計說明。
嵌套的本地函數對語言進行了擴展,以支持在塊范圍內聲明函數。
模式匹配擴展通過函數式語言帶來了代數數據類型和模式匹配的許多優勢。
引用返回使函數可以按引用返回值。
對于 Visual Basic:
值元組引入使用元組臨時對一組類型化的值分組時的語言支持:Dim point As (x As Integer, y As Integer) = GetOffset()。
ByRef 返回消耗可擴展語言,支持使用具有 ByRef 返回的庫中的函數和屬性。
二進制文本和數字組分隔符允許二進制數的本機表示形式。 這對位掩碼和標志枚舉非常方便:&B1001_0011。
有關詳細信息,請關注我們在CSharpLang GitHub和VBLang GitHub上的語言設計,以詳細了解這些設計及其他建議的語言擴展。
Visual Studio 提供許多重構,幫助提高工作效率并使代碼更易讀。 下面列出了部分重構:
使用初始值設定項簡化對象初始化:
利用新的 C#7 功能以內聯方式移動out變量聲明:
利用新的 C#7 功能,使用 null 合并運算符簡化 null 檢查和引發表達式:
將類型移動到匹配文件:通過Ctrl+.單擊一下,提取某文件中的類型并將其置于帶匹配名稱的另一文件。
同步文件和類型名稱:如果文件和類型名稱不同步,可使用Ctrl+.。
將String.Format轉換為字符串插值:借助此“快速操作”利用C# 6 語言功能。
將缺少的大小寫添加到 C# 開關或 Visual Basic Select。
將屬性轉換為方法,反之亦然。
添加包引用:可對無法識別的類型自動檢索和安裝 NuGet 包(以及添加 using/Import)。 若要啟用此功能,請轉到“工具”>“選項”>“文本編輯器”>“[C# / Basic]”>“高級”>“建議對引用程序集中的類型使用 using”/“建議對 NuGet 包中的類型使用 using”。
根據需要同步異步方法。
支持對拼寫錯誤的類型執行“模糊”匹配。
以 Visual Studio 對EditorConfig的支持為基礎,我們與社區協作,將 .NET 代碼樣式設置添加到了文件格式。 這意味著你可以配置團隊的代碼樣式約定、將其簽入源控件,并在開發人員鍵入時讓沖突實時顯示在編輯器中。 可以在 Roslyn 存儲庫的.editorconfig中或此文檔中查看所有代碼樣式選項。 可通過“工具”>“選項”>“文本編輯器”>“[C#/Basic]”>“代碼樣式”繼續配置特定于計算機的代碼樣式設置,并且這些規則會在 EditorConfig 存在且與之沖突時被覆蓋。
我們還添加/更新了樣式分析器,以幫助你自定義和強制執行團隊的編碼約定,包括:
命名樣式規則。
使用“var”或顯式類型。
對訪問成員 使用“this.” 或“Me.”。
使用表達式主體或塊。
對 'cast' 和 'null' 檢查使用模式匹配。
使用顯式元組名稱。
通過引發表達式、條件委托、合并表達式和 null 傳播簡化 null 檢查。
需要大括號。
注意:其中部分代碼樣式規則在編輯器中默認配置為“建議”。
此版本還改進了 IntelliSense,可幫助在處理較大解決方案或不熟悉的代碼庫時提高工作效率。 我們為 IntelliSense 添加了圖標任務欄,可供你按類型(如方法、屬性、類等)篩選成員列表。 每個篩選器切換都具有關聯的鍵盤快捷方式,可以通過將鼠標懸停在該圖標上來發現。 若要啟用此功能,請轉到“工具”>“選項”>“文本編輯器”>“[C# / Basic]”>“IntelliSense”,選中篩選選項并突出顯示。
你現在可以通過定位游標中間字符串并按Enter鍵,將一個長字符串拆分為多個串聯字符串。
我們投入了大量工作來提高存在用于計算診斷和 CodeLens 信息的后臺操作時的 IDE 響應。
對 F# 4.1 語言功能的支持:
與 C# 7/VB 15 元組互操作的結構元組。
支持使用 C# 7 ref 返回的 Byref 返回。
使用[]屬性的結構記錄支持(由Will Smith完成)。
帶[]屬性的結構可區分聯合支持。
新的Result<'TSuccess, 'TFailure>類型,帶有 FSharp.Core 中的支持函數(由Oskar Gewalli完成)。
fixed關鍵字,其支持在堆棧上本地固定指針類型。
數值文本中的下劃線(由Avi Avni完成)。
調用方信息屬性參數(由Lincoln Atkinson和Avi Avni共同完成)。
同一文件中通過namespace rec和module rec的相互引用類型和模塊。
模塊上與類型共享同一名稱的隱式“Module”后綴。
對 F# 編譯器和 FSharp.Core 進行了許多改進,大部分都是由 F# 社區完成:
改進了錯誤消息(由Steffen Forkmann、Isaac Abraham、Libo ZengGauthier Segay和Rick Minerich等完成)。
F# 編譯器中的性能改進(由 Microsoft、Gusty、Steffen Forkmann和Libo Zeng等完成)。
FSharp.Core 中的性能改進(由 Microsoft、Jack Mott、Steffen Forkmann、Libo Zeng、Paul Westcott、Zp Bappi、Victor Baybekov等完成)。
F# 和 C# 之間的互操作改進(由 Microsoft 和Eirik Tsarpalis完成)。
大幅改進了靜態解析的類型參數。
支持生成可移植的 PDB。
基于 Roslyn 工作區的新編輯器具有許多新的 IDE 功能,由優秀的 F# 社區完成:
IntelliSense 篩選器和標志符號改進(由Vasily Kirichenko完成)。
多種 IntelliSense 改進(由Vasily Kirichenko完成)。
對新的“轉到”功能的支持(由Vasily Kirichenko完成)。
查找所有引用支持(由Vasily Kirichenko完成)。
重新啟用了多個 F# 項目支持(由Ahn Dung Phan完成)。
Roslyn 上的 QuickInfo(輸入懸停)支持(由Vasily Kirichenko完成)。
編輯器中的模塊和命名空間著色(由Vasily Kirichenko完成)。
重新啟用和改進的導航欄支持(由Vasily Kirichenko完成)。
標記的語義突出顯示(由Vasily Kirichenko完成)。
對新結構化參考線的支持(由Vasily Kirichenko和Jared Hester完成)。
重新啟用的 F1 幫助服務(由Robert Jeppesen完成)。
QuickInfo 和簽名幫助中的著色(由Vladimir Matveev完成)。
代碼縮進改進(由Ahn Dung Phan完成)。
IDE 中的錯誤報告改進(由Ahn Dung Phan完成)。
內聯重命名(臨時禁用)(由Vasily Kirichenko完成)。
“轉到定義”的改進(由Vasily Kirichenko和Ahn Dung Phan完成)。
斷點解析改進(由Vasily Kirichenko和Steffen Forkmann完成)。
關于EditorBrowsable(EditorBrowsableState.Never)屬性(由Vasily Kirichenko完成)。
XML 文檔生成(由Ahn Dung Phan完成)。
刪除尾隨分號分析器和 codefix(由Vasily Kirichenko完成)。
用于記錄標簽和聯合大小寫分析器以及 codefix 的大寫標識符(由Steffen Forkmann完成)。
實現接口分析器和 Codefix(由Ahn Dung Phan完成)。
未知標識符 Codefix 的替換(由Steffen Forkmann完成)。
使用下劃線分析器和 Codefix 替換未使用的值或為其添加前綴(由Vasily Kirichenko完成)。
添加new關鍵字分析器和 Codefix(由Vasily Kirichenko完成)。
添加open語句分析器和 Codefix(由Vasily Kirichenko完成)。
簡化名稱分析器和 Codefix(由Vasily Kirichenko完成)。
灰顯未使用的值(由Vasily Kirichenko完成)。
此外,社區還提供了以下內容:
解決方案加載性能改進(由Saul Rennison完成)。
基礎結構改進(由Jack Pappas、Enrico Sada、Saul Rennison、Alfonso Garcia-Caro和Zip Bappi完成)。
著色 FSI(由Saul Rennison完成)。
F# 項目系統修復(由Saul Rennison完成)。
對.NET CLI 中的 F#的支持也是由Enrico Sada構建的。
最后,我們要特別感謝整個 F# 社區為 VS 2017 中 F# 工具版本進行內部測試、歸檔 bug、促進討論以及實現 bug 修復和功能所作出的努力。 沒有 F# 社區,就不會有 VS 2017 的成功。 若要查看完整的參與者列表,請參閱此處。
TypeScript 2.1 適用于 Visual Studio 中的所有 TypeScript 項目。 TypeScript 2.1 提供下層 async/await、更好的類型推理、本地對象擴展及更多功能! 若要詳細了解此版本,請查看發布博客文章或完整更改日志。
提供新的 JavaScript 語言服務,并默認啟用。 新服務提供更強大的 IntelliSense,并增添了對 JSDoc 注釋批注、ES6 和常見 JS 模塊格式的 IntelliSense 支持。 此外,它還支持 JSX 語法和 ES2016 的功能,如生成器、模塊和修飾器。 有關詳細信息,請參閱此博客文章或 GitHub 上的JavaScript IntelliSense 文檔。