Visual Studio 2017 發布


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

 

發布日期: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 中的新增功能

安裝體驗

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

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

首次安裝 Visual Studio 2017 時,會獲得新體驗:

The new installation experience in Visual Studio 2017

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

如何更新 Visual Studio

若要更新 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 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 應用商店發布等功能。 現在,這些功能的登錄體驗共有且一致。

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

起始頁

重新設計的起始頁擁有新的“打開”和“創建”功能:

  • 從 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 工具集(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 平台工具集。

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 體系結構 - 本機映像的目標體系結構。 選項有:x86、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

     

    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 軟件狀態,進而解決許可證到期問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM