Visual Studio 2017 發佈

https://www.visualstudio.com/zh-cn/news/releasenotes/vs2017-relnotesjavascript

 

發佈日期:2017 年 3 月 7 日

摘要

開發:快速導航、編寫並修復代碼

  • 新的安裝體驗 - 下降了最小內存需求量以實現更快、更定製化的安裝,而且支持脫機安裝。
  • 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 工具實施了多項改進。

測試:使用全面的測試工具編寫高質量代碼

  • 實時單元測試 - 在編輯器中實現單元測試結果和代碼覆蓋率的實時可視化。
  • 測試工具 - 使用測試資源管理器將自動化與測試用例工做項關聯。

協做:使用版本控制、具有敏捷性且高效協做

擴展:構建本身的擴展,根據自身喜愛進行自定義

加強的工具

  • .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 開發人員工具。
  • 體系結構依賴關係的實時驗證 - 依賴關係驗證關係圖(又稱層關係圖)的實時通知。

其餘

Visual Studio 2017 中的新增功能

安裝體驗

咱們很高興推出新款全新設計的安裝程序:html

  • 減小 Visual Studio 的最小內存佔用量。
  • 安裝速度更快、系統影響更小和徹底卸載。
  • 方便你更輕鬆地選擇並僅安裝所需功能。

首次安裝 Visual Studio 2017 時,會得到新體驗:前端

The new installation experience in Visual Studio 2017

最小的安裝僅爲數百兆字節,但仍然支持針對超過&20; 種語言的基本代碼編輯(包括源代碼管理)。 大部分用戶會想安裝更多功能。 可添加一個或多個表明常見框架、語言和平臺的「工做負載」,涵蓋從 .NET 桌面開發到使用 Unity 的遊戲開發等一切事務。java

如何更新 Visual Studio

若要更新 Visual Studio,請運行 Visual Studio 安裝程序並單擊「更新」按鈕。node

對新的安裝程序提出反饋

可以使用標題欄右上角處新安裝程序客戶端的「報告問題」和「提供建議」命令來報告問題或給出好評。 咱們想知道你在安裝、卸載或修改安裝時是否遇到錯誤,是否遇到異常安裝時間(例如掛起)或意外錯誤消息。react

建立用於脫機安裝和新命令行安裝支持的佈局

系統管理員和其餘用戶如今能夠建立 Visual Studio 的脫機佈局,其中包含了安裝產品所需的全部內容,無需訪問 Internet。 此佈局能夠是完整的產品、工做負荷和/或組件的一個子集,以及一個或多個產品區域設置。 請注意,建立脫機佈局須要 Internet 訪問。 有關詳細信息,請參閱 Create an offline installation of Visual Studio 2017(建立 Visual Studio 2017 的脫機安裝)。jquery

安裝別名

Visual Studio Enterprise 和 Community(以及其餘產品)如今能夠並行安裝在同一臺計算機上。 若要使標識這些安裝更加容易,能夠指定短名稱或「別名」。 例如,若是要安裝 Visual Studio Enterprise,而後安裝 Visual Studio Community,這兩個程序在開始菜單上的顯示是同樣的。 能夠爲第二個程序提供別名,如「community」,開始菜單項中將顯示諸如「Visual Studio 2017 (community)」和「Visual Studio 2017 (community) 開發人員命令提示」這樣的名稱。git


Visual Studio IDE

IDE 改進

  • 已對 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 主機,並跟蹤未提交和未推送的工做。

Version Control - Unpublished commits example

Version Control - No pending changes example

登陸和標識改進

推出了一種新的標識服務,可用於跨 Microsoft 開發人員工具共享用戶賬戶。 在 Visual Studio 中,此共享包括團隊資源管理器、Azure Tools 和 Windows 應用商店發佈等功能。 如今,這些功能的登陸體驗共有且一致。github

除了改進 Visual Studio,咱們還在服務端部署了部分改進功能,讓用戶可安全保持登陸狀態,消除了每 12 小時便強制登陸的要求。 這解決了最常報告的登陸問題。 深刻了解如何減小 Visual Studio 提示web

起始頁

從新設計的起始頁擁有新的「打開」和「建立」功能:

  • 從 VSTS 獲取遠程存儲庫或使用咱們更加醒目的 MRU,以輕鬆地打開本地項目和解決方案。
  • 起始頁 MRU 會顯示在其餘計算機上克隆的存儲庫,所以可在當前計算機上輕鬆克隆這些庫。
  • 經過可搜索的模板和最近使用的模板列表,直接從起始頁新建項目。 最近使用的模板也會在具備個性化賬戶的 Visual Studio 實例間漫遊。
  • 經過起始頁上的「從 VSTS 簽出」選項,快速啓動 VSTS 體驗的新克隆。
  • 可刪除的「入門」部分。
  • 「新聞」部分現可摺疊:
    • 更新了新聞源中新添加的項上的徽章。
    • 在新聞源處於摺疊狀態時,若是出現新項,則對新聞源擴展器設置徽章。
  • 優化了視覺設計,由此解決了反饋的有關屏幕較小時元素截斷的問題,同時提高了空間利用率。

下方顯示了新的起始頁。

Start Page with Get Started and News

改進了代碼導航

Visual Studio 2017 中的代碼導航功能有了顯著改進:

  • 轉到所有。 (Ctrl + , 或 Ctrl + T)可快速查找並轉到代碼中的文件、類型、方法和其餘元素。 經過它可找到任何類型的項,甚至在大型基本代碼中亦可如此。 此外,若知道要查找的項類型,即可輕鬆進行篩選。 在 C# 和 Visual Basic 中,咱們還添加了模糊匹配,所以即便某個類型名稱拼寫錯誤,也仍然可得到結果。 還優化了「轉到行」(Ctrl + G)體驗。 「轉到」系列命令位於「編輯」菜單的頂部。

Go To Results Filtered

Go To Line

  • 「查找全部引用」(Shift+F12) 已大幅改進(當前針對 C#、Visual Basic 和 C++),可實現高級分組、篩選、分類、在引用結果中搜索以及結果着色(針對 C# 和 VB),讓用戶清晰瞭解引用並自信地找到所需的代碼行。 鼠標懸停在引用項上時,會顯示一個工具提示,其中顯示源代碼中該引用的上下文(針對 C# 和 VB)。 經過切換工具欄中的「保存結果」按鈕,「查找全部引用」的下一個調用將在新窗口中填充引用結果。 經過此操做,可將當前結果保留在現有窗口中。

Find All References

  • 結構參考線如今編輯器中繪製,以即可輕鬆可視化正在處理的代碼的結構。 鼠標懸停時,會顯示一個工具提示,其中包含當前代碼塊(相對於其上級塊)的上下文。 結構參考線當前支持 C#、Visual Basic 和 XAML 文件,以及經過 TextMate 語法支持的任何文件。 可經過取消選中「文本編輯器」 > 「常規」類別下的「顯示結構參考線」複選框,在「工具」>「選項」對話框中禁用此功能。

Structure Guide Lines

經過 .editorconfig 支持編碼約定

Visual Studio 編輯器現支持 EditorConfig,它容許開發人員定義編碼樣式約定並使其在不一樣編輯器和 IDE 之間保持一致。 請參閱文檔獲取更多詳細信息,請參閱 .NET 文檔獲取有關如何使用 .editorconfig 文件管理 .NET 代碼樣式的信息。 請參閱已知問題,瞭解此版本中有關 EditorConfig 支持的限制。

打開文件夾

「打開文件夾」是使用不含項目和解決方案的基本代碼的簡便方法。 經過「文件」>「打開」>「文件夾」打開文件夾視圖,而後選擇要導航的文件夾。

The new Open Folder feature in the Visual Studio IDE

可以使用解決方案資源管理器打開和編輯文件。 許多經常使用語言具備語法突出顯示和符號導航(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 中全局啓用。 若要全局啓用,可導航到「工具」>「選項」,選擇「項目和解決方案」下的「常規」,或經過使用「快速啓動」搜索「輕量級解決方案加載」。 可在解決方案屬性窗格中,爲單個解決方案開啓和關閉該功能。

The new Lightweight Solution load feature in the Visual Studio 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 項目中啓用。

Project Overview

使用鏈接的服務鏈接到服務

在之前的版本中,此功能被命名爲「服務功能」。 咱們已將該名稱更改成「鏈接的服務」。

鏈接的服務即 Visual Studio 2017 中新式的「添加鏈接的服務」功能或「添加服務引用」功能。 鏈接的服務功能可以使應用與服務間的鏈接更輕鬆。 解決方案資源管理器中提供了一個用於 Web 和移動項目類型的名爲「鏈接的服務」的新節點。 雙擊此節點會在 Visual Studio 中打開一個新的整頁選項卡,可在其中發現可鏈接到的熱門 Microsoft 服務。

在「鏈接的服務」頁上選擇一個服務將調用「鏈接的服務嚮導」,該向導會配置項目、下載必要的 NuGet 數據包,從而幫助快速輕鬆地根據服務須要進行編碼。

Connected Services

產品隨附的工具和功能

經過 Visual Studio 2017 可輕鬆獲取其餘工做負載和組件,而無需離開 IDE。 利用「快速啓動」可查找並啓動任何工做負荷或單個組件的 Visual Studio 安裝程序。

In-product acquisition via Quick Lauch

若是找不到正在尋找的模板,也能夠從「新建項目」對話框中打開 Visual Studio 安裝程序。

In-product acquisition via New Project Dialog


Visual C++

Visual Studio 2017 向 Visual C++ 環境引入了許多更新和修補程序。 感謝你報告 bug! 咱們修復了編譯器和工具中的 250 多個 bug 和已報告問題,其中不少是客戶經過 Microsoft Connect 提交的。 咱們在此版本中着手了 STL 的性能改進。 如今默認使用全新的基於 SQLite 的數據庫引擎。 這將提升數據庫操做(如「轉到定義」和「查找全部引用」)的速度,並將極大地縮短初始解決方案分析時間。 現提供原始 C++ 工做流的更細化的安裝體驗。 咱們添加了可選組件,使你可以僅安裝所需工具。 Visual Studio 中的 CMake 支持已準備好展示它的強大功能! 直接將 CMake 項目加載到 VS 中並當即開始編寫代碼。 改進了「打開文件夾」C++ 體驗,所以能夠直接將源代碼編入 VS 中,而無需建立任何 VS 解決方案和項目。 「導航到」現稱爲「轉到」,這個涵蓋性術語針對一組新的導航篩選器。 這使用戶可更輕鬆地找到正確結果,尤爲在較大代碼庫中。

C++ 代碼分析

用於強制執行 C++ 核心準則 的 C++ 核心檢查器現已經過 Visual Studio 分發。 只需在項目「屬性」頁的「代碼分析擴展」對話框中啓動檢查器,即會在運行代碼分析時包含擴展。

CppCoreCheck properties page

C++ 編譯器

咱們更新了 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++ 團隊博客

C++ 庫

  • [STL] basic_string 的性能改進。
  • [STL] 增添了 <any>、<string_view>、apply()、make_from_tuple()。
  • [STL] std::vector 已通過全面檢修,以提升正確性和性能。
  • [STL] 如今 STL 會避免取消引用 null 複雜精緻指針。
  • [STL] 增添了 <optional>、<variant>、shared_ptr::weak_type 和 <cstdalign>。
  • [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++ IDE

現針對 C++ 本機項目和 C++ /CLI 項目有了更佳的配置更改性能,後者的性能增長更爲明顯。 第一次激活解決方案配置時,如今的速度會更快,且此解決方案配置的全部後續激活幾乎可瞬時完成。

如今默認使用全新的基於 SQLite 的數據庫引擎。 這將提升數據庫操做(如「轉到定義」和「查找全部引用」)的速度,並將極大地縮短初始解決方案分析時間。 設置已移至「工具」>「選項」>「文本編輯器」>「C/C++」>「高級」下(以前位於...「C/C++」>「實驗」下)。

咱們改進了不使用預編譯標頭的項目和文件的 IntelliSense 性能 - 爲當前文件中的標頭建立自動預編譯標頭。

其餘更新包括:

  • 還爲錯誤列表中的 IntelliSense 錯誤添加了錯誤篩選和幫助。 單擊錯誤列如今容許進行篩選。 此外,單擊特定錯誤或按 F1 將啓動錯誤消息的聯機搜索。

Error List

Error List Filtered

  • 增添了按類型篩選「成員列表」項的功能。

Member List Filtering

  • 添了新的實驗性預測 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 Open Folder

C++ 安裝工做負荷

  • 使用 C++ 的 Windows 桌面開發:

    • 現提供原始 C++ 工做流的更細化的安裝體驗。 咱們添加了可選組件,使你可以僅安裝所需工具。 請注意,在安裝程序用戶界面中列出的組件的安裝大小的指示並不許確,並且它低估了整個大小。

    • 若要在 C++ 桌面工做負載中成功建立 Win32 項目,則必須安裝工具集和 Windows SDK。 安裝推薦(選中)的組件「VC++ 2017 v141 工具集(x8六、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 平臺工具集。

Clang/C2 平臺工具集

Visual Studio 2017 附帶的 Clang/C2 工具集如今支持 /bigobj 開關,這對生成大項目來講相當重要。 它還在編譯器的前端和後端進行了多項重要的 bug 修復。


C# 和 Visual Basic

語言擴展

此版本引入了對 C# 7.0 和 Visual Basic 15 語言功能的支持,包括:

對於 C#:

  • 相似任務的異步方法返回類型:這可從異步方法中返回任何相似任務的類型。 之前,這些返回類型限制爲 Task<T> 和 Task
  • 值元組 引入使用元祖臨時對一組類型化的值分組的語言支持。 若要了解詳細信息,請查看 GitHub 上的 設計說明
  • 嵌套的本地函數 對語言進行了擴展,以支持在塊範圍內聲明函數。
  • 模式匹配擴展 經過函數式語言帶來了代數數據類型和模式匹配的許多優點。
  • 引用返回 使函數能夠按引用返回值。

對於 Visual Basic:

  • 值元組引入使用元組臨時對一組類型化的值分組時的語言支持:Dim point As (x As Integer, y As Integer) = GetOffset()
  • ByRef 返回消耗可擴展語言,支持使用具備 ByRef 返回的庫中的函數和屬性。
  • 二進制文本和數字組分隔符容許二進制數的本機表示形式。 這對位掩碼和標誌枚舉很是方便:&B1001_0011

有關詳細信息,請關注咱們在 CSharpLang GitHub 和 VBLang GitHub 上的語言設計,以詳細瞭解這些設計及其餘建議的語言擴展。

快速操做和重構

Visual Studio 提供許多重構,幫助提升工做效率並使代碼更易讀。 下面列出了部分重構:

  • 使用初始值設定項簡化對象初始化:

Use object initializer

  • 利用新的 C#7 功能之內聯方式移動 out 變量聲明:

Move out variable inline

  • 利用新的 C#7 功能,使用 null 合併運算符簡化 null 檢查和引起表達式:

Use throw expression with null-coalescing operator

  • 將類型移動到匹配文件:經過 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 檢查。
  • 須要大括號。

注意:其中部分代碼樣式規則在編輯器中默認配置爲「建議」。

Configure code style preferences and enforcement from EditorConfig

IntelliSense 改進

此版本還改進了 IntelliSense,可幫助在處理較大解決方案或不熟悉的代碼庫時提升工做效率。 咱們爲 IntelliSense 添加了圖標任務欄,可供你按類型(如方法、屬性、類等)篩選成員列表。 每一個篩選器切換都具備關聯的鍵盤快捷方式,能夠經過將鼠標懸停在該圖標上來發現。 若要啓用此功能,請轉到「工具」>「選項」>「文本編輯器」>「[C# / Basic]」>「IntelliSense」,選中篩選選項並突出顯示。

IntelliSense Completion Filtering

其餘編輯器改進

  • 你如今能夠經過定位遊標中間字符串並按 Enter 鍵,將一個長字符串拆分爲多個串聯字符串。
  • 咱們投入了大量工做來提升存在用於計算診斷和 CodeLens 信息的後臺操做時的 IDE 響應。

F# 

對 F# 4.1 語言功能的支持:

  • 與 C# 7/VB 15 元組互操做的結構元組。
  • 支持使用 C# 7 ref 返回的 Byref 返回。
  • 使用 [<Struct>] 屬性的結構記錄支持(由 Will Smith 完成)。
  • 帶 [<Struct>] 屬性的結構可區分聯合支持。
  • 新的 Result<'TSuccess, 'TFailure> 類型,帶有 FSharp.Core 中的支持函數(由 Oskar Gewalli 完成)。
  • fixed 關鍵字,其支持在堆棧上本地固定指針類型。
  • 數值文本中的下劃線(由 Avi Avni 完成)。
  • 調用方信息屬性參數(由 Lincoln Atkinson 和 Avi Avni 共同完成)。
  • 同一文件中經過 namespace rec 和 module rec 的相互引用類型和模塊。
  • 模塊上與類型共享同一名稱的隱式「Module」後綴。

對 F# 編譯器和 FSharp.Core 進行了許多改進,大部分都是由 F# 社區完成:

基於 Roslyn 工做區的新編輯器具備許多新的 IDE 功能,由優秀的 F# 社區完成:

此外,社區還提供瞭如下內容:

對 .NET CLI 中的 F# 的支持也是由 Enrico Sada 構建的。

最後,咱們要特別感謝整個 F# 社區爲 VS 2017 中 F# 工具版本進行內部測試、歸檔 bug、促進討論以及實現 bug 修復和功能所做出的努力。 沒有 F# 社區,就不會有 VS 2017 的成功。 若要查看完整的參與者列表,請參閱此處


JavaScript 和 TypeScript

TypeScript 2.1

TypeScript 2.1 適用於 Visual Studio 中的全部 TypeScript 項目。 TypeScript 2.1 提供下層 async/await、更好的類型推理、本地對象擴展及更多功能! 若要詳細瞭解此版本,請查看 發佈博客文章完整更改日誌

JavaScript 語言服務

提供新的 JavaScript 語言服務,並默認啓用。 新服務提供更強大的 IntelliSense,並增添了對 JSDoc 註釋批註、ES6 和常見 JS 模塊格式的 IntelliSense 支持。 此外,它還支持 JSX 語法和 ES2016 的功能,如生成器、模塊和修飾器。 有關詳細信息,請參閱此博客文章或 GitHub 上的 JavaScript IntelliSense 文檔

Rich JavaScript IntelliSense for jQuery

性能改進

改進性能是此版本的一個重點所在。 除對提升內存和響應做出一些優化外,整個 JavaScript/TypeScript 語言服務也已移到 devenv.exe 以外的附屬進程,從而下降較大 VS 項目的內存佔用。 如此一來,在處理較大的 JavaScript 項目時,Visual Studio 進程的內存消耗更低,內存崩潰的可能性更小。 若要閱讀有關這些改進的詳細信息,請參閱此博客文章


調試和診斷

運行時單擊

只需在調試運行到此行時單擊代碼行旁邊的圖標。 無需再設置臨時斷點,也沒必要再執行多個步驟來執行代碼和在所需行中止。 如今,調試器下停在中斷狀態時,「運行時單擊」圖標會在鼠標懸停位置的代碼行旁邊巧妙顯示。 將鼠標移動到圖標,而後單擊按鈕,代碼即會運行並在下次於代碼路徑中命中時停在該行。 可經過「調試」>「選項」>「啓用‘運行時單擊’」將其關閉。

Run to Click Icon

「附加到進程」篩選器

在「附加到進程」對話框中輕鬆搜索,快速查找要將調試器附加到的進程。 將對正在運行的進程列表進行篩選,以篩選出與搜索條件匹配的項。 搜索篩選器具備記憶功能,會在從新打開對話框時提供以前的搜索內容。

Attach to Process Filter

從新附加到進程

現可快速從新附加到以前調試的進程。 觸發新的「調試/從新附加到進程」(Shift+Alt+P) 命令會當即嘗試將調試器附加到經過「附加到進程」對話框調用的上一個調試會話的最後若干進程中。 調試器將經過先嚐試匹配上一個進程 ID,而後匹配上一個進程名稱,再次附加到進程。 若是沒有找到匹配項,或找到多個具備相同名稱的進程,則會出現「附加到進程」對話框,可經過它選擇所需的進程。

新的異常幫助器

新的「異常幫助窗口」可用於查看異常信息,該信息顯示在非模式對話框中,可對內部異常進行即時訪問。 診斷 NullReferenceException 時,現可從異常幫助器的右側快速查看哪些內容是 null。 現可在引起的異常處中止時單擊複選框添加條件,排除特定模塊引起的異常類型。 請閱讀此博客文章,更詳細地瞭解新的異常幫助器優點。

The New Exception Helper dialog

將條件添加到異常設置

若是你將調試程序設置爲在引起時中斷,則能夠添加條件,以便調試程序僅在指定模塊中引起異常時才中斷。

Edit Conditions dialog box

調試器輔助功能的改進

現可更有效地將多個調試器窗口(調用堆棧、局部變量、自動、監視和快速監視)與屏幕閱讀器配合使用以及用於知足其餘輔助功能須要。

.NET Core 的 IntelliTrace 事件

IntelliTrace 如今支持 ASP.NET Core 應用的 MVC、ADO.NET 和 HttpClient 事件。 這些事件將顯示在「診斷工具」窗口中的「事件」選項卡中。

「診斷工具」窗口更新

啓動調試會話後,將在「診斷工具」窗口中看到應用程序新的「摘要」視圖。 今後處,將可以:

Summary tab in Diagnostics Tools Window

性能探查器更新

性能探查器現可附加到正在運行的進程。 CPU 使用率工具、GPU 使用率工具和性能嚮導現可附加到正在運行的進程。

CPU 使用率工具更新

對 CPU 使用率工具做出了幾處改進:

  • 更佳的外部代碼支持。 CPU 工具如今可使你更深刻地瞭解庫和框架函數被用戶代碼調用時的成本。
  • 「函數」視圖。 經過函數的 CPU 成本對函數進行排名的視圖。

Functions List

  • 「調用方/被調用方」視圖。 可用於調查進出所選函數的函數調用的成本。Caller / Callee View

  • 「源」視圖。 在 CPU 工具中選擇函數時顯示函數的源代碼。

Chrome 調試支持

當開始調試 ASP.NET 項目並選擇 Google Chrome 做爲瀏覽器後,Visual Studio 將調試在 Chrome 中運行的 JavaScript。 若是想要改成使用瀏覽器內的開發工具,能夠在「工具」>「選項」>「調試」下禁用此功能。


實時單元測試

Visual Studio 2017 Enterprise 版中的實時單元測試功能會在編輯器中實時顯示單元測試結果和代碼覆蓋率。 它支持 MSTest、xUnit 和 Nunit for C# 以及面向 .NET Framework 的 VB 項目。

Live Unit Testing

有關詳細信息,請參閱 Live Unit Testing 博客


測試工具

使用測試資源管理器將自動化與測試用例工做項關聯

如今可經過在測試資源管理器中選擇一種測試方法將自動化和測試用例工做項關聯。 經過這種新體驗還可查看所選擇的測試方法的現有關聯。

只需在測試資源管理器中右鍵單擊測試,

Test Explorer Associate Automation

並提供測試用例 ID 便可建立關聯。

Associate Automation

在 Visual Studio 的先前版本中,可以使用工做項窗體完成此操做。 可以使用「工具」|「選項」打開兼容模式來啓用基於工做項窗體的體驗。

Work Item Form Compatibility mode


團隊資源管理器

新增 Git 功能

咱們已在 Visual Studio 2017 中添加了新的 Git 功能,用戶如今可在不離開 IDE 的狀況下執行更多端到端工做流。 可輕鬆查看傳出提交的差別、執行強制推送來完成變基或推送修改提交、復原上游分支以及從 VS 繼續修補程序變基。 此外,遷移到了 git.exe。 這使咱們可提供最新功能。 咱們支持 SSH、尊重你的配置選項,並在團隊資源管理器中精確顯示命令行中所示的內容。 若要了解有關這些功能的詳細信息,請查看博客文章

鏈接到 VSTS/TFS

在 Visual Studio 起始頁和團隊資源管理器中,已個性化和簡化了在 VSTS/TFS 中鏈接到項目和克隆存儲庫的過程,從而使得可以更快速且更輕鬆地找到要鏈接到的項目和存儲庫。 全新的「鏈接」頁面僅顯示已在全部 VSTS/TFS 服務器中映射和克隆的項目和存儲庫(而非顯示每一個項目的每一個存儲庫)。 此外,你在克隆存儲庫前再也不須要鏈接到某個項目。

當啓動對話框以鏈接到 VSTS 和 TFS 時,將看到通過從新設計的用戶體驗。 能夠看到添加的 TFS 服務器,而後是所選用戶賬戶的全部 VSTS 服務器、項目和存儲庫。 結果以樹形列出,以改善導航效果。 除了存儲庫外,還能夠鏈接到集合或項目。 有關詳細信息,請參閱 Connect to Team Projects(鏈接到團隊項目)。

工做項窗體

若是從 Visual Studio 2017 鏈接到 Visual Studio Team Services 並打開工做項,Web 瀏覽器中會顯示工做項窗體。 不過,若是你鏈接到的是 Team Foundation Server 2015 或更早版本,則看到的是舊版工做項窗體。

Work Item Form in Team Explorer


Visual Studio 擴展性

新的擴展性格式

藉助 Visual Studio 2017 中新的安裝程序技術,用戶可更好地掌控所安裝的工具。 一些用戶可能僅安裝核心 Visual Studio 編輯器,而另外一些可能安裝若干工做負荷。 如今,擴展做者可在清單中指定擴展所需的單獨組件,以便確保安裝了擴展所需的必備功能。

若是擴展不是使用新的 VSIX 格式生成的,用戶在嘗試安裝此擴展時,將會收到警告。 舊的 VSIX 格式不會指定所需實現的先決條件,所以當 Visual Studio 2017 中不具有這些先決條件時,該格式可能沒法正常工做。 新的 VSIX 格式是向後兼容的,適用於 Visual Studio 2012 及以前的全部版本。

更新了 VSIX 清單設計器,以反映對清單的更改。 在先決條件選項卡中,擴展開發人員可找到用於指定爲擴展先決條件的已安裝組件的列表。

Prerequisite

在擴展安裝期間,VSIX 安裝程序將指示缺乏哪些組件,並會將其與擴展一併安裝。

VSIXInstaller

批量修改擴展

在「擴展和更新」對話框中,現可計劃在須要從新啓動 Visual Studio 以前,要進行安裝、更新和卸載的多個擴展。 右下角有一個計劃任務的摘要。 若要刪除計劃內修改,請單擊當前計劃安裝的擴展旁邊的 X 符號。

Extensions and Updates Dialog

當 VSIX 安裝程序檢測到全部 Visual Studio 窗口已關閉後,便會啓動以完成計劃的修改。

Batched Modification Installer

Ngen 支持

現可選擇使用 Ngen 安裝程序集。

NGEN Properties

  • Ngen - 是否對程序集使用 Ngen。
  • Ngen 應用程序 - 經由 /ExeConfig 切換傳遞到 Ngen 的應用程序。
  • Ngen 體系結構 - 本機映像的目標體系結構。 選項有:x8六、x64 以及所有。
  • Ngen 優先級 - Ngen 優先級別。

在擴展目錄外安裝文件

如今,可選擇將文件安裝到位於擴展目錄以外的一系列所選文件夾。

VSIX Properties

  • 包括在 VSIX 中 - - 將文件包括在 VSIX 中。
  • 安裝根目錄 - 要將文件安裝在其中的根目錄。 選項包括:默認(安裝在擴展目錄內)、PublicAssemblies、ReferenceAssemblies、MSBuild、Schemas、Licenses、RemoteDebugger 和 VSTargets。
  • 目標路徑 - 要安裝在用戶計算機上的文件的名稱。
  • VSIX 子路徑 - 根目錄下安裝文件時所用的子路徑。

漫遊擴展管理器

在新的 Visual Studio 2017 中,漫遊擴展管理器可幫助跟蹤開發環境中你喜歡的全部擴展。 漫遊擴展可在雲中建立同步列表,從而跟蹤已安裝的擴展。

登陸到 Visual Studio 時,從「工具」>「擴展」和「更新」,單擊「漫遊擴展管理器」可快速查看擴展列表。 它可跟蹤已安裝的擴展,並讓你選擇要添加到漫遊列表的擴展。 庫中的新擴展與日俱增,此工具可以讓你快速輕鬆地使用鍾愛的擴展設置每一個開發環境。

The new Roaming Extension Manager in the Visual Studio IDE

使用此功能時將注意到 3 種圖標類型:

  • 「漫遊」圖標「漫遊」圖標。 表示存在於漫遊列表中但此計算機上並未安裝的擴展。 可經過「下載」按鈕安裝這些擴展。
  • 「漫遊且已安裝」圖標「漫遊且已安裝」圖標。 表示存在於漫遊列表中且已在此環境中安裝的全部擴展。 若是你肯定不但願漫遊,可經過「中止漫遊」按鈕刪除它們。
  • 「已安裝」圖標「已安裝」圖標。 表示此環境中已安裝、但不屬於漫遊列表的全部擴展。 擴展可經過「開始漫遊」按鈕添加到漫遊列表。

這些圖標將顯示列表當前的狀態。 可以使用處於任何狀態的任何擴展,所以可自定義你心中所想的內容! 或者,讓咱們爲你代勞! 登陸時下載的全部擴展都將做爲「漫遊且已安裝」的內容添加到列表,所以將包含在漫遊列表中,使你可在任意計算機上進行訪問!

發現項目和項模板

自 Visual Studio 2017 起,突破性地改進了 Visual Studio 使用項目和項模板的方式,提高了模板發現的性能。 新的發現機制如今要求全部項和項目模板均遵循模板清單文件中定義的如下「vstemplate」架構。 模板清單文件中未定義的 Visual Studio 模板在「新建項目」或「新建項」對話框中將再也不可見。 新的擴展性工具將在 VSIX 生成期間生成清單;若是你具有隨附 MSI 包發佈的 Visual Studio 模板,則必須爲這些模板手動生成模板清單文件。 有關詳細信息,請參閱 Upgrading Custom Project and Item Templates for Visual Studio 2017(升級 Visual Studio 2017 的自定義項目和項模板)MSDN 頁面。


.NET Core 和 ASP.NET Core

這包含新的基於 MSBuild 的 .NET Core 工具的 1.0 最終版本。 使用 Visual Studio 2017 可建立 .NET Standard 庫、.NET Core 應用/庫和使用新 csproj 格式的 ASP.NET web 項目。

在安裝程序中,.NET Core 工具自動包含在「ASP.NET 和 Web 開發」工做負載中,且在「.NET 桌面開發」工做負載中做爲可選組件。 若是僅要開發跨平臺使用的 .NET Core 應用程序,可以使用安裝程序的「其餘工具集」部分中的「.NET Core 跨平臺開發」工做負載來僅安裝 .NET Core 和 ASP.NET Core 工具。

此版本中的高級功能包括:

  • .NET Core 項目的 MSBuild 支持和簡化的 csproj 項目格式,使用該格式可輕鬆實現手動編輯,而無需卸載項目。
  • 編輯 .NET Core .csproj 文件很是簡單,只需在解決方案資源管理器中右鍵單擊項目而後選擇「編輯」便可。
  • 支持項目文件中的文件通配符,可無需枚舉全部源代碼文件名,從而使 csproj 文件大小保持精簡。
  • NuGet 包引用如今是 csproj 文件的一部分,這樣可將全部項目引用合併在一個文件中。
  • NET Core、.NET Standard 和 .NET Framework 項目之間的互操做。 例如,.NET Core 項目可向 .NET Standard 項目添加項目到項目引用。
  • 一個項目中跨目標的多個目標框架。
  • 現有 project.json .NET Core 項目在 Visual Studio 中打開時會自動遷移到 csproj,或者可 使用 .NET 命令行接口 (CLI) 手動遷移。
  • 輕鬆配置 ASP.NET Core 應用程序與 Docker 支持的持續生成集成和配置從 Visual Studio IDE 內部到 Azure 容器服務的持續生成交付。

請參閱 .NET 博客以瞭解更多詳細信息。


通用 Windows 應用開發工具

更新了 .NET Native 工具鏈

此更新的 .NET Native 工具鏈添加了好幾個優化功能,可提升 Visual Studio 中託管的 UWP 應用的運行時性能。 此版本包含 600 多個 bug 修復和功能,不只解決了客戶的主要反饋問題,並且還提升了工具鏈的整體質量。

5.3.0 Microsoft.NETCore.UniversalWindowsPlatform 包

.NET Core NuGet 框架庫的這次更新解決了客戶報告的許多關鍵問題。 現有的 UWP 項目可使用 NuGet 引用管理器更新到此新版本。 此外,新的 .NET Core 包中包含 .NET Native 工具鏈。

Windows 10 週年更新 SDK 和仿真器

此版本中包括 Windows 10 週年更新的 Windows SDK 和 Windows Phone 仿真器。

  • 現可以使用較少的 XAML 標記從工具箱建立 UI 元素,讓 XAML 更簡潔、更易讀。
  • 經過 XAML 設計器上的新選項工具,開發人員可選擇要在設計圖面上預覽的 UI 主題和高對比度設置。
  • 「屬性」窗口中的值編輯器現接受簡單的數學公式,如「60 +&20;」。 將當即計算公式(本例中等於 80),生成的值放入 XAML。

用於建立視覺資產的清單設計器功能

清單設計器進行了可視化刷新,現還可生成 UWP 應用的視覺資產。 現可以使用單個源映像建立各類尺寸的磁貼、徽標、圖標和初始屏幕,以適合應用針對的每種設備的大小。

Manifest Visual Asset Generator

UI 分析

如今,通用 Windows 平臺工具可檢測一些與輔助功能和性能相關的常見問題。 經過在「診斷工具」窗口的「選擇工具」菜單中啓用「UI 分析」工具,可報告這些問題,並隨附有關闡釋問題緣由和解決方法的有用文章的連接。 開發時啓用 UI 分析可以使 UI 性能和輔助功能處於應用程序開發前沿。


Xamarin

Visual Studio 2017 中包括 Xamarin 4.3。 除了 bug 修復外,該版本還添加了對 tvOS 的支持,提高了 iOS 資產目錄支持,改進了 XML 編輯體驗,並在建立 iOS 應用時添加了 SSL/TLS 和 HttpClient 實現的選擇器。 有關更多信息,請參閱 Xamarin 發行說明


Visual Studio 用於 Apache Cordova 的工具

此 Visual Studio 2017 版包括如下改進:

  • Cordova 模擬。 基於瀏覽器的新模擬器可實現快速編碼並即時在瀏覽器中查看結果。 實時從新加載、插件模擬和 Ionic 框架支持使 Visual Studio 擁有市場中最快的開發人員工做流。

Cordova simulate

  • 支持 iOS 10 和 XCode 8。 用於 iOS 開發的 remotebuild 服務器代理的更新現包括 XCode 8 支持。

  • 錯誤着色。 診斷生成故障常常須要開發人員通讀生成輸出,所以咱們開始在生成輸出窗格中將錯誤着色,讓讀取變得更輕鬆。 此外,還添加了標頭來描述生成進度中的步驟,幫助開發人員識別生成進度中出現故障的位置。

Pretty printing

  • 產品隨附。 除了用於加速 Cordova 應用構建的輕量級安裝,如今添加了來自 Visual Studio 內的路徑以在開發過程當中獲取額外的生成塊。 若是未安裝 Android 或 Windows 組件,可經過部署欄獲取它們,部署欄將啓動 Visual Studio 安裝程序,在安裝過程當中爲用戶提供指導。

In-product acquisition

  • 快速可靠的生成。 新的 Visual Studio 安裝程序,結合通過徹底驗證的第三方組件工具鏈的脫機安裝,可加快生成速度,且這些生成更易於進行故障排除和修復。
重要事項

適用於 Android 和 Windows 的生成工具和仿真程序如今是可選的。 可經過生成/部署菜單欄動態獲取它們。 此版本的 Visual Studio 不支持 Windows Store 8.1 項目。 建議你以 Windows 10 爲目標來更新 Cordova 項目。 最低的受支持 Cordova 版本提高至 6.0.0。 面向低於 6.0.0 的 Cordova 版本的項目只有在 config.xml 中升級其項目才能在 Visual Studio 2017 中進行生成和部署。


適用於 Visual Studio 的 Node.js 工具

適用於 Visual Studio 的 Node.js 工具將 Visual Studio 變成功能強大的 Node.js 開發環境。 此版本側重穩定性、性能和整體產品質量,包括:

  • 優化了與新的 Salsa JavaScript 語言服務之間的集成。
  • 下降了內存和 CPU 使用率,縮短了項目加載時間。
  • Pug 模板文件支持。
  • 更多最新式的項目模板。
  • Mocha 3.x 測試框架支持。
  • 大量 Bug 修復。

感謝你與全部參與者們爲此版適用於 Visual Studio 的 Node.js 工具的推出所作出的積極貢獻。 有關詳細信息,請查看開放源 GitHub 上的 Node.js 工具項目


適用於 Unity 的 Visual Studio 工具

使用 Visual Studio 編寫和調試適用於全部平臺的 Unity 遊戲。 Visual Studio Tools for Unity 3 現已可經過新的 Visual Studio 2017 安裝程序中的「使用 Unity 的遊戲開發」工做負載進行安裝。 Visual Studio Tools for Unity 3 側重於改進 Unity 開發人員的代碼編輯和調試體驗,以及整體產品質量,包括:

  • Unity 消息的 Intellisense 支持。
  • Unity 消息的代碼着色。
  • 改進了 Unity 調試器中的表達式計算。
  • 改進了 Unity 消息嚮導,支持全部可接收消息 Unity 類型。
  • 大量 Bug 修復和優化。

Code completion session for Unity messages


Redgate

Visual Studio 附帶 Redgate 開發人員工具 Core Edition

爲了將 Visual Studio 2017 DevOps 功能擴展到 SQL Server 數據庫開發,Redgate SQL Prompt、Redgate SQL 搜索和 Redgate ReadyRoll 現可用於數據存儲和處理工做負載。

  • Visual Studio Enterprise 2017 中包含的 Redgate ReadyRoll 有助於開發遷移腳本、使用源控件管理數據庫更改,並安全地自動部署 SQL Server 數據庫更改和應用程序更改。
  • Visual Studio Enterprise 2017 附帶 Redgate SQL Prompt,可幫助你編寫和重構 SQL 代碼,並設置代碼格式。 在智能代碼完成功能的幫助下可更快更準確地編寫 SQL。 SQL Prompt 可自動完成數據庫、系統對象和關鍵字,並在你鍵入時提供列建議。 無需記住每一個列名或別名,所以代碼更簡潔,錯誤更少。
  • Visual Studio 2017 各個版本中包含的 Redgate SQL 搜索可幫助用戶在多個數據庫之間快速找到 SQL 片斷和對象,從而提升工做效率。

NuGet

Visual Studio 2017 包括 NuGet 4.0。 此版本側重於支持大多數項目類型的包引用、質量改進和性能改進:

  • 在 WPF、WindowsForms 和 UWP 項目中,現可以使用包引用對包進行管理。
  • 已改進輕量級解決方案還原的 NuGet 還原支持。 如今無需加載任何項目便可執行還原。
  • 在 .NET Core 和 ASP.NET Core 項目中,現使用包引用管理包。
  • 在 Visual Studio 2017 及更高版本中,計算機範圍內的 NuGet.config 現位於 %PROGRAMFILES(X86)%\NuGet\Config\NuGet.config。 從此 nuget.exe v4.0.0 + 也將考慮爲計算機範圍內的配置使用新位置。 將再也不隱式引用程序數據中的 NuGet.config 或考慮將其用於 nuget.config 的層次結構合併。

用於 XAML 應用的工具

XAML 編輯和繼續

Visual Studio 中如今容許在運行 WPF 或通用 Windows 應用的同時編輯 XAML。 在 Visual Studio 中調試應用時,可在 XAML 代碼編輯器中對標記做出更改,且所作的更改會反應在運行的應用中,而無需從新進行編譯。

加強 XAML 編輯器的生產力

  • IntelliSense 篩選:鍵入 XAML 時,完成列表將僅顯示匹配的類型,且選中匹配度最高的項。
  • IntelliSense for x:Bind:綁定到路徑和事件時對 x:Bind 啓用了 IntelliSense 完成。
  • 命名空間完成:若是不存在命名空間引用,則在鍵入時不會得到 IntelliSense 支持。 鍵入完成後會得到燈泡建議支持,可爲鍵入內容生成和插入前綴並在 XAML 文檔中添加命名空間定義。
![IntelliSense_without namespace](media/intelliSense_without namespace.PNG "IntelliSense_without namespace") * 對於須要前綴的類型,若是已存在對命名空間的引用,IntelliSense 將自動完成前綴。 
 
  • 命名空間前綴重命名重構:可從上下文菜單或在光標位於前綴上時使用鍵盤快捷方式 Ctrl+R+R 調用重命名操做。 還可在應用更改以前預覽更改。

    命名空間前綴重命名

  • 刪除命名空間和對其進行排序:現可從上下文菜單或經過鍵盤快捷方式 Ctrl+R+G 刪除沒必要要的命名空間並對其進行排序。 若是 XAML 文檔具備沒必要要的命名空間,還將看到一個可用於刪除這些命名空間的燈泡標記。

    lightbulb_remove 沒必要要的命名空間

  • 對 XAML 編輯器的 .editorconfig 支持:可在 .editorconfig 文件中定義 indent_style、indent_size 和 tab_width 的設置,將用此設置替代「工具」>「選項」中定義的設置。

  • 用於 XAML 編輯器的結構可視化工具:結構可視化工具(即縮進參考線)現已內置到 Visual Studio 中,無需單獨擴展。 此功能提供當前所處理的代碼塊的上下文,一眼便能看到,無需滾動。

    用於 XAML 編輯器的結構可視化工具

XAML 性能改進

  • 改進了 XAML 選項卡切換性能:XAML 選項卡切換性能獲得顯著改進。 在示例客戶項目中,咱們已看到切換時間縮短了超過 90%。
  • 解決 XAML 編輯器鍵入延遲問題:如今,XAML 鍵入變得史無前例的快速。 咱們在下降 XAML 編輯器鍵入延遲方面做出了許多努力,如今大多數開發人員會發現 XAML 編輯器和 XAML IntelliSense 響應性更高。 在使用第三方控件或大型控件庫的項目中編輯 XAML 文件時,這一點很是明顯。

Data Tools 和 SQL Server

SQL Server Data Tools

Visual Studio 2017 包含了 SQL Server Data Tools 的最新更新,該更新支持 Azure SQL 數據庫和 SQL Server 2016 的最新功能。

此版本經過使用 Visual Studio,在全部 SQL Server 支持版本和數據庫平臺上(本地和雲),聚集開發、測試和部署數據庫的簡便性於一體。 版本還包括了數據庫可編程性外圍應用加強功能,並改善了 SQL Server Data Tools 中的 SQL 鏈接體驗。如今只需輕鬆地單擊一下,便可自動發現可鏈接到的 SQL Server 和 Azure SQL 數據庫。

此外,Visual Studio 2017 解決了新的 Azure SQL Database 身份驗證類型、Azure Active Directory 集成和密碼身份驗證問題。


開發人員分析工具

Visual Studio 2017 包括開發人員分析工具 v8.6,其中包含如下改進:

  • 如今 CodeLens 可顯示將數據發送到 Application Insights 資源的項目中的調試和實時遙測數據。
  • 異常的 CodeLens 連接到應用程序分析,可顯示異常對用戶的影響。
  • 在使用 Application Insights SDK 的項目中,CodeLens 可顯示來自本地調試會話的請求。
  • 如今 Visual Basic 項目可提供請求和異常的 CodeLens。
  • 從 Visual Studio 發佈應用後,實時指標如今會顯示在消息條通知中。
  • 「配置」窗口中如今可顯示 Application Insights 訂價的信息。
  • 「搜索和趨勢」工具如今可顯示可用性事件。
  • 「搜索和診斷」工具中的「事件」如今可基於 SDK 中的自適應採樣顯示事件發生頻率的計數。
  • CodeLens 顯示使用 Application Insights SDK 本地調試項目的會話期間所發生的異常。
  • 「Application Insights 配置」窗口的新設計。
  • CodeLens 發現的異常如今有一個指向 Application Analytics 的連接,可查看異常已對用戶產生的影響。
  • 將 Application Insights 添加到項目時,如今會添加用於收集頁面視圖遙測的 Application Insights JavaScript SDK。
  • 從 Visual Studio 發佈應用時,發佈註釋如今會發送到 Application Insights 資源中。
  • 如今會對紅色和黃色 Application Insights CodeLens 指示器顯示滾動條標記。

有關詳細信息,請參閱 Microsoft Azure 文檔中的技術發行說明


Visual Studio 的 Office 開發工具

此版包含了附帶最新功能和更新的 Office 開發人員工具,具體以下:

  • 新增了特定於 Excel、Word、PowerPoint 和 Outlook 的新 Office 外接程序模板。
  • 支持新增的 Office 外接程序功能,如外接程序命令、Fabric UI 和 Office.js 的新版本。
  • 模板中新增了起始代碼,用於展現如何開始使用新的 Office 外接程序功能。
  • 支持 SharePoint 解決方案中的 SharePoint 2016 和外接程序模板。

體系結構依賴關係的實時驗證

若是在 Visual Studio Enterprise 中設置了依賴關係驗證關係圖(又稱層關係圖),則在代碼編輯器中鍵入代碼時可實時得到體系結構依賴關係規則的任何違反行爲的通知。 「錯誤列表」中顯示錯誤,文本編輯器中的波形曲線顯示此違反行爲的精確位置。 如今下降了引入非必需依賴關係的可能性。

Live Architecture Dependency validation


開發人員命令提示符

重構了 Visual Studio 2017 開發人員命令提示符腳本,支持新的安裝體驗:

  • 環境變量僅影響已安裝的工做負載。
  • Visual Studio 開發人員命令提示符快捷方式應與之前的版本兼容。
  • 如今,你能夠經過命令行參數來配置開發人員命令提示符腳本:
    • 在命令提示符處,調用 common7\tools\vsdevcmd.bat -help(從 Visual Studio 安裝目錄)以獲取詳細信息。

用於 .NET 的 Azure SDK

現可以使用新的 Visual Studio 安裝程序安裝 Azure SDK for .NET Visual Studio。 若是之前已使用 Web 平臺安裝程序安裝 Azure SDK for .NET,現則可以使用新的 Visual Studio 安裝程序安裝 Azure 工做負荷以獲取相同組件。 安裝的包與 SDK 2.9.5 版本具備相同的功能級別。 對於此版本和全部將來版本的 Visual Studio,只能經過 Visual Studio 安裝程序得到 Azure SDK for .NET。


加強的 Visual Studio 反饋工做流

Visual Studio 2017 包括升級反饋體驗,可改善信息跟進和協做。 做爲這次升級的一部分,你將注意到 Visual Studio 中「問題報告」體驗的協做性加強,且補充了複合式 Web 門戶,造成徹底端對端反饋解決方案。 如今,能夠搜索、關注、投票並獲取以前經過 Visual Studio IDE 的「報告問題」功能提供的全部反饋的最新更新。 這些加強的體驗針對咱們收到的衆多用戶反饋,且讓用戶可以與咱們的團隊進行雙向交流。


已知問題

如下是有關此版本中的已知問題和可用解決方法的說明。


安裝問題

Windows 10 SDK 安裝失敗,返回代碼爲 -2147023293

  • 問題:

    在某些狀況下,Windows SDK 安裝可能會失敗,並返回代碼 -2147023293。 安裝日誌 dd_setup__errors.log 會顯示以下相似錯誤:包 'Win10SDK_10.0.14393.795,version=10.0.14393.79501' 安裝失敗。 (詳細信息)返回代碼:-2147023293 返回代碼詳情:安裝時發生嚴重錯誤。 請注意,確切的包名稱取決於已選擇安裝的 Windows 10 SDK。

     

  • 解決方法:

    致使此問題的緣由可能有多個。 若要解決該問題,請嘗試如下步驟:

    1. 獨立於 Visual Studio 安裝 Windows 10 SDK。 可從 Windows 開發人員中心下載 Windows 10 SDK。
    2. 在低於 Windows 10 的 Windows 版本上進行安裝時,某些狀況下,安裝失敗多是因爲缺乏通用 C 運行時所致使。 對於 Windows 10 1507 運行時和 Windows 10 1511 運行時,可分別使用 KB2999226 和 KB3118401 進行安裝。
      有關詳細信息,另請參閱 Visual Studio 開發人員社區門戶

編輯器和 IDE 問題

XML 文件不支持 EditorConfig

  • 問題:

    編輯 XML 文件時,未應用 .editorconfig 中定義的編碼樣式約定。

  • 解決方法:

    目前沒有解決方法。

尚不支持 EditorConfig insert_final_newline 屬性和 trim_trailing_whitespace 屬性

  • 問題:

    .editorconfig 文件中定義的 insert_final_newline 屬性和 trim_trailing_whitespace 屬性不起做用。

  • 解決方法:

    目前沒有解決方法。

JavaScript IntelliSense 中止運行

  • 問題:

    打開 JavaScript 代碼超過 25Mb 的項目時,將顯示錯誤「已對項目 禁用語言服務,由於它包含大量 .js 文件。 請考慮使用 'tsconfig.json' 文件的 'exclude' 部分排除文件。」

     

  • 解決方法:

    使用以下代碼向項目根添加 tsconfig.json

    {
          "compilerOptions": {
              "allowJs": true,            // These settings apply to .js files as well as .ts files
              "noEmit":  true             // Do not compile the JS (or TS) files in this project on build
          },
          "exclude": [
              "node_modules",             // Don't include any JavaScript found under "node_modules" or "bower_components"
              "bower_components"
          ]
      }
     

    Add additional folders with JavaScript code libraries. Another common one is Scripts/Office/1 if you're using office-js.

TypeScript 在 ASP.NET Core 項目中沒法識別

  • 問題:

    ASP.NET Core 項目中的 TypeScript 文件不具備任何 IntelliSense 且當前未在生成中編譯。

  • 解決方法:

    向項目根添加一個空的 tsconfig.json 文件。

NuGet 問題

當有多個項目引用解決方案中的另外一項目時,NuGet 還原可能會失敗

  • 問題:

    若是解決方案中對同一項目的項目引用的大小寫或路徑不一樣,則 NuGet 還原可能會不起做用。 NuGet#4574

  • 解決方法:

    將全部項目引用的大小寫和相對路徑更新爲均相同。

使用包管理器控制檯時,「Enter」鍵可能不起做用

  • 問題:

    有時沒法在包管理器控制檯中使用 Enter 鍵。 若是看到此內容,請在修補程序上籤出進程,並提供有關重現步驟的其餘任何有用信息。 NuGet#4204 NuGet#4570

  • 解決方法:

    打開該解決方案以前,重啓 Visual Studio 並打開 PMC。 或者,請嘗試刪除 project.lock.json 而後再還原。

在 .NET Core 項目中,所用包具備帶無效簽名的程序集時,可能會出現無限還原循環

  • 問題:

    有時,所用包具備帶無效簽名的程序集或包版本設置有「DateTime」貼標時,會致使包自動還原無限循環運行。 NuGet#4542

  • 解決方法:

    目前沒有解決方法。

將沒法使用 Nuget 包管理器查看、添加或更新 DotNetCLITools

  • 問題:

    NuGet 包管理器不顯示,且不容許添加/更新 DotNetCLITools。 NuGet#4256

  • 解決方法:

    必須在項目文件中手動編輯 DotNetCLIToolReferences。

若是對項目設置 PackageId 屬性,則 NuGet 包還原會失敗

  • 問題:

    對於 .NET Core 項目,Visual Studio 中的 NuGet 還原不聽從項目的 PackageId 屬性。 NuGet#4586

  • 解決方法:

    使用命令行運行還原。

項目不包含 'obj' 文件夾時,包還原可能失敗

  • 問題:

    'obj' 文件夾被刪除後 Visual Studio 沒法還原 PackageReferences。 NuGet#4528

  • 解決方法:

    手動建立 'obj' 文件夾後應可正常進行還原。

在控制檯中使用 Update-Package 手動更新包可能會失敗

  • 問題:

    在控制檯中手動使用 Update-Package 對剛剛轉換的 PackageReferences 項目僅適用一次。 NuGet#4431

  • 解決方法:

    目前沒有解決方法。

對目標框架版本重定目標可能會致使 Intellisense 不完整

  • 問題:

    在 Visual Studio 中對目標框架版本重定目標可能會致使 Intellisense 不完整。 將 PackageReferences 用做包管理器格式時可能出現這種狀況。 NuGet#4216

  • 解決方法:

    手動進行還原。

面向 .NET461 的項目引用面向 .NETStandard 的另外一項目時 msbuild /t:restore 出現失敗

  • 問題:

    面向 .NET461 且基於 PackageReference 的項目引用另外一個基於 PackageReference 但面向 .NETStandard 的項目時,msbuild /t:restore 失敗。 NuGet#4532

  • 解決方法:

    目前沒有解決方法。

實時單元測試問題

實時單元測試不適用於 .NET Core 項目

  • 問題:

    .NET Core 項目不支持實時單元測試。

  • 解決方法:

    目前沒有解決方法。

Web 工具已知問題

運行時 MVC4 項目不鏈接到 SQL Server LocalDB

  • 問題:

    在 Visual Studio 中運行 MVC4 項目時,若是使用 SQL Server Express LocalDB 2012,則經過應用程序訪問數據庫可能會失敗。 失敗的緣由是因爲 MVC4 項目默認依賴於 SQL Server Express LocalDB 2012,而其未與 Visual Studio 2017 一併安裝。

  • 解決方法:

    升級項目以使用 SQL Server Express LocalDB 2016,或者在計算機上手動下載並安裝 SQL Server Express LocalDB 2012

.NET Core 工具問題

有關 .NET Core 和 ASP.NET Core 工具的當前問題列表,請參閱 GitHub 頁面。

「打開文件夾」問題

編輯 launch.vs.json 或 tasks.vs.json 時 IntelliSense 不可用

  • 問題:

    編輯 launch.vs.json 或 tasks.vs.json 文件時,IntelliSense 不可用。

  • 解決方法:

    安裝「ASP.NET 和 Web 開發」工做負載。

C# 重構可能會生成不一致的結果

  • 問題:

    在文件夾模式下,重構 C# 或 VB 代碼可能會生成不一致的結果。

  • 解決方法:

    在解決方案模式下加載 C# 或 VB 項目。

在文件夾模式下 F10 沒法啓動調試器

  • 問題:

    在文件夾模式下熱鍵 F10 沒法啓動調試器。

  • 解決方法:

    使用 F5 或 F11,並在應用程序入口點設置一個斷點。

對 launch.vs.json 的未保存編輯可能會丟失

  • 問題:

    從上下文菜單選擇「調試和啓動設置」時,對 launch.vs.json 的未保存編輯將丟失。

  • 解決方法:

    從上下文菜單選擇「調試和啓動設置」以前請保存對文件所做的任何更改。

重載已經在文件夾模式下編輯的項目可能會失敗,並出現一個對話框

  • 問題:

    若是已在文件夾模式下編輯過一個項目文件,則以後從解決方案模式重載時可能會失敗。

  • 解決方法:

    嘗試再次重載項目。 若是仍然沒法加載,請重載解決方案。

測試工具問題

未能發現 UWP 項目,且 Visual Studio VS2017 中建立了 UITestMethod

  • 問題:

    未能發現 UWP 項目,且 Visual Studio VS2017 中建立了經過 UITestMethod 屬性修飾的測試方法。

  • 解決方法:

    將 MSTest.TestAdapter NuGet 包升級到最新版本 (1.1.12)。

經過 DeploymentItem 屬性修飾測試時,未能從 Visual Studio 中運行測試。

  • 問題:

    若是測試項目在 Visual Studio 建立且具備經過 DeploymentItem 屬性修飾的測試,則這些項目將沒法運行,進而引起 FileNotFound 異常。

  • 解決方法:

    還要在 test method\containing 測試類上添加如下 DeploymentItem:[DeploymentItem("Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll")]。 此問題將在即將推出的 MSTest.TestFramework 和 MSTest.TestAdapter 版本中進行修復。

未能從 Visual Studio 中分析測試,出現 MissingMethodException

  • 問題:

    未能從 Visual Studio 中分析測試方法,引起 MissingMethodException。

  • 解決方法:

    沒有針對此問題的解決方法。

輕量級解決方案加載問題

啓用輕量級解決方案加載後,某些擴展可能會發生意外行爲

  • 問題:

    啓用輕量級解決方案加載後,某些擴展可能會發生意外行爲。

  • 解決方法:

    禁用輕量級解決方案加載並重載解決方案。

啓用輕量級解決方案加載後,沒法使用「編輯並繼續」

  • 問題:

    啓用輕量級解決方案加載後,可能沒法按預期使用「編輯並繼續」。

  • 解決方法:

    使用「編輯並繼續」以前,請禁用輕量級解決方案加載並重載解決方案。

啓用輕量級解決方案加載後,F# 項目不會生成或支持符號導航

  • 問題:

    啓用輕量級解決方案加載後,F# 項目可能沒法正確生成,且符號在「轉到」中可能不徹底可用。

  • 解決方法:

    爲包含 F# 項目的解決方案禁用輕量級解決方案加載。

啓用輕量級解決方案加載時會複製警告

  • 問題:

    在啓用輕量級解決方案加載的狀況下生成解決方案時,生成所發出的項目文件警告可能會重複出如今錯誤列表中。

  • 解決方法:

    禁用輕量級解決方案加載並重載解決方案。

擴展性問題

添加自定義命令或自定義工具窗口時出錯

  • 問題:

    向包含 XAML 文件的項目嘗試添加自定義命令或自定義工具窗口時,可能會致使未能向項目添加自定義命令或工具窗口。 可能會出現包含文本「序列包含多個匹配元素」的錯誤。

  • 解決方法:

    1. 關閉全部打開的 XAML 文件。
    2. 關閉 Visual Studio。
    3. 啓動 Visual Studio 並打開項目。
    4. (在加載 XAML 文件以前)向項目添加自定義命令或自定義工具窗口。

Application Insights 問題

右鍵單擊項目時 Application Insights 可擴展提供程序加載失敗

  • 問題:

    在 Visual Studio 中右鍵單擊項目時 Application Insights 可擴展提供程序加載失敗。 這是由於在加載解決方案後,可擴展提供程序會在後臺線程中從 NuGet 加載二進制文件。 某些可擴展提供程序(如適用於 PHP 和 Azure Service Fabric 的可擴展提供程序)已經安裝了,所以它們不存在這個問題。 Visual Studio 2017 初始版本後不久將經過自動更新對此問題進行修復。

  • 解決方法:

    使用管理員權限打開命令提示符,而後根據 Visual Studio 版本運行如下命令:

    • Visual Studio Enterprise

      • "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\VsRegEdit.exe" set "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise" HKCU AppInsightsGettingStarted UseBackgroundThreadToFetchProjectInfo string Disabled
    • Visual Studio Professional

      • "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\VsRegEdit.exe" set "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional" HKCU AppInsightsGettingStarted UseBackgroundThreadToFetchProjectInfo string Disabled
    • Visual Studio 社區

      • "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VsRegEdit.exe" set "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community" HKCU AppInsightsGettingStarted UseBackgroundThreadToFetchProjectInfo string Disabled

某些 ASP.NET Core 項目沒法爲頁面視圖集合添加 Application Insights JavaScript 代碼段

  • 問題:

    使用不是經過 Visual Studio 2017 建立的 Application Insights 配置的 ASP.NET Core 項目將沒法運行。 嘗試運行此類應用會出現錯誤「InvalidOperationException:未註冊 'Microsoft.ApplicationInsights.AspNetCore.JavascriptSnippet' 類型的服務。」

  • 解決方法:

    使用 Application Insights 配置以後,向文件 Views/Shared/_Layout.cshtml 添加一個 JavaScript 代碼段。 有兩種解決方法,具體取決因而否要 Application Insights 從應用收集頁面視圖:

    1. 收集頁面視圖。 向 Program.cs 中的 WebHostBuilder 添加 ".UseApplicationInsights()"。
    2. 不收集頁面視圖。 從 Views/Shared/_Layout.cshtml 刪除如下行:
      • @inject Microsoft.ApplicationInsights.AspNetCore.JavaScriptSnippet JavaScriptSnippet
      • @Html.Raw(JavaScriptSnippet.FullScript)

團隊資源管理器問題

若是存在孤立的 index.lock,則更改索引的 Git 命令可能會失敗

  • 問題:

    若是存在孤立的 Git index.lock,則執行更改索引的 Git 命令會失敗,該問題起初報告爲 Git 撤消和取消暫存失敗。 Git 使用此文件來向其餘 Git 進程指示,該存儲庫已鎖定要進行編輯。 若是編輯進程崩潰或終止,則 index.lock file 可能會滯後並阻止其餘 Git 進程編輯存儲庫。

  • 解決方法:

    出現此問題時,請查看存儲庫的 .git/ 文件夾,檢查是否存在 index.lock 文件。 若是存在,且你當前並未運行活動的 Git 命令,則請刪除該文件。

經過 SSH 克隆失敗

  • 問題:

    在團隊資源管理器中經過 SSH 克隆失敗。 將來更新中將提供此問題的修補程序。

  • 解決方法:

    如要使用 SSH,請從命令行克隆,而後在團隊資源管理器中將存儲庫添加到本地存儲庫列表。 也可在團隊資源管理器中經過 HTTP 克隆,而後在「設置」>「存儲庫設置」>「遠程」中將遠程設置爲使用 SSH。

在團隊資源管理器中取消 Git 命令不起做用

  • 問題:

    在團隊資源管理器中取消 Git 命令(例如克隆命令)不起做用,相反,仍會完成操做。 此問題不影響其餘團隊資源管理器操做。

  • 解決方法:

    目前沒有解決方法。

託管的工做負載開發問題

.NET 2.0/3.0/3.5 項目生成具備不正確目標的程序集

  • 問題:

    在未首先從各個組件中選擇 .NET Framework 3.5 開發工具的狀況下,在新計算機上安裝 Visual Studio 2017 並生成 .NET 2.0(或 3.0/3.5)項目後,即便項目面向 .NET 2.0,生成後的某些程序集(例如資源)也被標記爲 .NET4.0。 這是由於 Visual Studio 2017 默認再也不安裝 .NET Framework 3.5 SDK,而因爲此 SDK 缺失,生成進程會默認爲 .NET 4.X SDK。

  • 解決方法:

    .NET 3.5 SDK 如今僅爲可選組件,所以若是開發面向 .NET 3.5 產品 (2.0/3.0/3.5),則安裝期間仍需從各個組件選項卡中選擇「.NET Framework 3.5 開發工具」。 這會在生成進程期間所使用的計算機上安裝所需的 .NET 3.5 SDK。

其餘問題

在 x86 計算機上沒法鏈接到 (LocalDB)\MSSQLLocalDB

  • 問題:

    這是一個間歇性的 localDB 2014 已知問題,出現此問題時在 x86 計算機上沒法鏈接 (LocalDB)\MSSQLLocalDB。

  • 解決方法:

    在命令提示符中運行如下命令:

    1. sqllocaldb stop mssqllocaldb。
    2. sqllocaldb delete mssqllocaldb。
    3. sqllocaldb start mssqllocaldb。

沒法在 SharePoint 工做流中建立函數斷點

  • 問題:

    Visual Studio 的「斷點」窗格之前容許建立類型爲「工做流」的斷點。 此功能已被刪除。

  • 解決方法:

    經過右鍵單擊菜單在「設計器」視圖中建立斷點。

在工做流設計器中,SharePoint 工做流活動可能沒法正確加載

  • 問題:

    若是使用工做流和 SharePoint 活動建立新的 SharePoint 外接程序或解決方案項目,在生成項目後,可能會在工做流設計器中看到以下錯誤:「因爲 XAML 中存在的錯誤,致使沒法加載活動」。 默認狀況下,新的 SharePoint 外接程序項目面向 .NET Framework 4.5.2。 爲了在工做流中使用 SharePoint 活動,項目必須面向 .NET Framework 4.5。

  • 解決方法:

    1. 從解決方案資源管理器中的上下文菜單或經過項目菜單訪問項目屬性。
    2. 在「應用程序」選項卡上,將「目標框架」設置爲 .NET Framework 4.5。

使用動態值時,可能沒法生成包含工做流的 SharePoint 項目

  • 問題:

    可能沒法生成包含工做流的 SharePoint 項目,並出現如下錯誤:「命名空間 'Microsoft' 中不存在類型或命名空間名稱 'Activities' (是否缺乏程序集引用?)」。

  • 解決方法:

    1. 在解決方案資源管理器中選擇文件後,請在解決方案資源管理器中展開工做流節點,並經過按 F7 或經過上下文菜單查看項目中 workflow.xaml 文件的代碼。
    2. 將如下引用添加到 部分: Microsoft.Activities。

SharePoint 外接程序項目嚮導可能沒法正確檢測項目面向的 SharePoint 的版本

  • 問題:

    建立 SharePoint 外接程序項目時,新建項目對話框將基於你提供的站點 URL 嘗試檢測 SharePoint 的正確版本。 可是,若是還安裝了 Visual Studio 2015 或舊版 SharePoint 客戶端組件,則新建項目對話框可能會錯誤地斷定項目面向的是 SharePoint 2016 而非 SharePoint Online。

  • 解決方法:

    對於新項目,在建立新 SharePoint 外接程序項目時,請確保並驗證新項目對話框的最後一頁已選擇項目所面向的 SharePoint 的正確版本。 對於現有項目,能夠經過執行如下操做更改項目所面向的 SharePoint 的版本:

    1. 從解決方案資源管理器中的上下文菜單或經過項目菜單訪問項目屬性。
    2. 在 SharePoint 選項卡上,將目標 SharePoint 版本設置爲項目所面向的 SharePoint 的正確版本。

Office Web 外接程序項目可能在錯誤列表中包含警告

  • 問題:

    _officeintellisense.js 文件包含對 Office 對象的聲明,該對象與 office.d.ts 文件中聲明的對象衝突。

  • 解決方法:

    這些警告不會影響項目,你能夠刪除這些警告,刪除方式是註釋掉 Scripts\Office\ _officeintellisense.js 文件中額外的「var Office」聲明或在解決方案資源管理器中使用「從項目排除」上下文菜單從項目中排除此文件。

Visual Studio 生成工具 SKU 的 Web 開發工具工做負載中不包含面向 .NET 的包

  • 問題:

    Visual Studio 生成工具 SKU 中的 Web 開發工具工做負載不包含任何面向 .NET 的包。 這意味着 .NET 二進制文件僅可生成爲面向 4.6。

  • 解決方法:

    從 Microsoft 手動下載面向 .NET 的包並將其安裝到生成計算機。

經過通配包含的文件若是位於項目根目錄外,將不會顯示在解決方案資源管理器中

  • 問題:

    對於 .NET Core 和 ASP.NET Core 項目,由通配模式包括的任何文件只有包含在項目根目錄下才會顯示在解決方案資源管理器中。 不會顯示位於項目根目錄以外的任何文件。 打開「顯示全部文件」不能解決此問題。 也沒法經過「搜索」、「在文件中查找」、「轉到」或「轉到定義」導航到這些文件。

  • 解決方法:

    對於在解決方案資源管理器中顯示缺乏的文件或導航到這些文件,目前沒有已知的解決方法。 可是,生成和調試這些項目應該不會遇到任何問題。 在大多數狀況下,經過手動打開這些文件便可正常編輯它們。 建議暫時使用單獨連接的文件來代替外部通配模式。

VS Test Professional 2017 SKU 不具有團隊資源管理器,限制了對 Excel-based/SSRS-based reports from TFS Warehouse/Cube 的訪問

  • 問題:

    VS 團隊資源管理器再也不隨附 VS Test Professional SKU 一併安裝,該管理器用於訪問 Excel-based/SSRS-based based reports from TFS Warehouse/Cube。 此問題不會影響到 Microsoft 測試管理器 (MTM) 客戶端 – 它將繼續工做,不會產生任何已知問題。

  • 解決方法:

    在咱們推出 VS 團隊資源管理器以前,你可安裝並使用此處提供的 VS Enterprise 2017 RC 訪問團隊資源管理器。 安裝 VS Enterprise 2017 RC 將致使 MTM 客戶端許可證進入預覽版狀態,該狀態將在 2017 年 7 月前有效,其失效以前將推出 VS 團隊資源管理器。 若是卸載 VS Enterprise 2017 RC,MTM 客戶端許可證將在幾天後到期。 經過從 Visual Studio 安裝程序中修復 VS Test Professional 2017 安裝問題,會將 MTM 客戶端還原爲 RTW 軟件狀態,進而解決許可證到期問題。

相關文章
相關標籤/搜索