2019Logo Visual Studio 2019 版本16.10 版本 資訊



開發人員社群 |系統需求 |相容性 |可散發程式代碼 |授權條款 |Blog |最新版本的已知問題 |Visual Studio 檔的新功能


按一下按鈕以下載最新版的 Visual Studio 2019。 如需安裝和更新 Visual Studio 2019 的指示,請參閱將 Visual Studio 2019 更新至最新版本。 此外,請參閱如何離線安裝上的指示。

Community Download Button Professional Download Button Enterprise Download Button


Visual Studio 2019 16.10 版的新功能

Visual Studio 2019 16.10 版版本

Visual Studio 2019 封存版本資訊

Visual Studio 2019 部落格

Visual Studio 2019 部落格 是由 Visual Studio 工程小組發行的官方產品見解。 您可以在下列文章中找到有關 Visual Studio 2019 版的深入資訊:


16.10.5 Visual Studio 2019 版本16.10。5

2021年8月10日發行

本版 Visual Studio 2019 16.10.5 版的新功能摘要

此版本的 Visual Studio 2019 僅可透過 Windows Software Update Service (WSUS) 取得。

本版修正的前幾個主要問題

  • IOS 遠端模擬器現在可與已安裝 Xcode 12.4 或12.5 的配對 Mac 裝置正常搭配運作。 下列 Xcode 模擬器功能在與已安裝 Xcode 12.4 或更新版本的 Mac 裝置配對時無法使用:
    • 模擬的記憶體警告
    • 模擬位置

資訊安全諮詢注意事項

CVE-2021-26423 .Net Core 拒絕服務弱點

有一項拒絕服務弱點存在,其中提供 WebSocket 端點的 .NET (Core) 伺服器應用程式在嘗試讀取單一 WebSocket 框架時,可能會被欺騙到無限迴圈。

CVE-2021-34485 .Net Core 資訊洩漏弱點

當工具所建立的傾印收集損毀傾印和隨選傾印時,會在 Linux 和 macOS 上建立具有全域讀取權限的資訊洩漏弱點。

CVE-2021-34532 ASP.NET Core 資訊洩漏弱點

如果無法剖析 JWT 權杖,就會在其中記錄 JWT 權杖的資訊洩漏弱點存在。

16.10.4 Visual Studio 2019 版本16.10。4

于2021年7月20日發行

本版 Visual Studio 2019 16.10.4 版的新功能摘要

本版修正的前幾個主要問題

  • 移除 memset 中不允許的暫存器的使用。
  • 修正牽涉到涉及位 not 運算子之複雜嵌套運算式的 codegen bug。
  • VS 圖形分析器的修正著色器偵錯工具
  • 修正在類別樣板特製化中處理靜態資料成員時所發生的 IntelliSense 損毀。
  • X64 VC 可轉散發套件在搭配/installer/passive 參數執行時,不會再移除執行時間檔案。
  • 修正了包含搜尋順序在「包含目錄」前置詞時可能不正確的問題。
  • 我們修正了其中一個檢查程式擴充功能所造成的效能問題和誤報,以找出誤用變體的 bug。
  • 我們修正了其中一個檢查程式擴充功能所造成的效能問題,這些延伸模組會找出將列舉值誤用為索引的 bug。
  • 引進 Live Share 語言服務修正程式,可還原共同作業會話參與者的主要程式碼編輯功能, (程式碼完成、語法醒目提示、錯誤等等 )
  • 並行分析程式應該不會再產生錯誤警告 C26110 (無法取得具有自動鎖定模式的鎖定) 。
  • c # 和 Visual Basic 編譯器修正了 InternalsVisibleTo 衝突與其他元件層級屬性相關的損毀。
  • 我們已修正客戶使用 Windows 應用程式封裝專案封裝專案所遇到的問題,例如 WPF NetCore 應用程式和 Project 的留尼旺島應用程式:

找不到錯誤資產檔案「...\obj\wappublish\win10-x86\project.assets.js開啟」。 執行 NuGet 套件還原,以產生此檔案。 App4 (套件) C:\Program Files\dotnet\sdk\5.0.302\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets 242

此問題是因為封裝 Project 在 project.assets.js的目錄中尋找檔案,win10-$ (configuration) ,但它應該要查看 win-$ (configuration) 。

開發人員社群的問題


16.10.3 Visual Studio 2019 版本16.10。3

2021年6月29日發行

本版 Visual Studio 2019 16.10.3 版的新功能摘要

本版修正的前幾個主要問題

  • 修正從模組匯入之符號的 [移至定義] 的問題,有時會移至模組檔案的開頭,而不是符號的定義。
  • 修正了視覺效果受損的開發人員在螢幕上識別焦點的問題,因為文字方塊的框線色彩亮度比例小於3:1。
  • 固定資料庫 Project:將檔案從 [方案 explorer] 拖曳至開啟的檔案時,會從檔案系統中刪除該檔案。
  • 修正了在資料庫專案中使用 merge 語句會導致組建錯誤的問題。
  • 報告已安裝的擴充功能時,不會再傳送磁片上的路徑。
  • 修正嘗試關閉 [快速啟動] 視窗時,可能會導致 Visual Studio 損毀的問題。
  • 修正顯示工具視窗有時會損毀的問題和
  • 當應用程式中載入不相關的 G + +/GCC 產生的符號時,修正使用者程式碼中的 c + + 編輯後繼續。
  • 從 iAd 架構修正私用選取器的使用方式。
  • 修正了當 XAML 設計工具中發生錯誤時,VS 中的損毀結果
  • 修正了參考 netcoreapp 專案的 Windows 應用程式封裝專案時,會產生 msixbundle 的問題。
  • 修正無法在 WAP 專案上進行快速的最新檢查,這會導致建立這些專案 (而非略過) ,即使專案是最新且不需要修改,也會進一步導致 IDE 中的累加組建時間增加。

開發人員社群的問題


16.10.2 Visual Studio 2019 版本16.10。2

2021年6月15日發行

本版 Visual Studio 2019 16.10.2 版的新功能摘要

本版修正的前幾個主要問題

  • 程式碼分析中的平行存取檢查更聰明。 使用複雜的控制流程難以欺騙。
  • 此修正程式會略過外部標頭的分析,並隱藏外部標頭的警告,來還原外部標頭的行為。
  • 修正了 .aspx/.ascx 檔案,其中使用者可能會看到不完整的 IntelliSense 或經驗效能變慢。
  • 修正在處理大型專案時,Unity CodeLens 提供者的擴充性問題。
  • Azure 服務驗證選項頁面中的已復原轉譯字串。
  • 修正使用 Resharper 延伸模組時的間歇性視覺效果程式碼顯示問題。
  • 修正了某些工具視窗、編輯器和設計工具轉譯得太小而無法顯示任何內容的問題。
  • 修正在執行應用程式或嘗試將它發佈至 App Store 時,Xamarin iOS 遺失應用程式圖示問題。
  • 使用 AOT + LLVM 建立專案時,不會再發生 XA3001 錯誤。
  • 升級至 Visual Studio 2019 16.10 版之後,在某些情況下發布 UWP 應用程式可能會失敗,並出現錯誤訊息「在影像檔案中找不到指定的資源名稱」。 現在已修正此問題。
  • 修正導致 Visual Studio 2019 在裝置設定變更時停止回應的問題。
  • 修正 MSBuild 中的三個問題:
    • 在 Azure DevOps 中建立時,避免發生 MSB4017 錯誤。
    • $ ([MSBuild] :: MakeRelative () ) 再次保留其輸入中的尾端斜線。
    • 再以尾端的 * * 模式排除 glob,然後再排除不含的檔案。 字元

開發人員社群的問題


16.10.1 Visual Studio 2019 版本16.10。1

2021年6月8日發行

本版 Visual Studio 2019 16.10.1 版的新功能摘要

本版修正的前幾個主要問題

  • 修正了 IntelliSense 編譯器造成損毀的問題。
  • 修正了在解決方案中開啟 Test Explorer 時,可能導致 Visual Studio 2019 實例無法關閉的問題。
  • 修正開發人員從命令列建立部分方案時的失敗。
  • 修正了針對 .net Core 應用程式 ClickOnce 發佈失敗。
  • 修正 [呼叫堆疊] 視窗可能會損毀 Visual Studio 2019 的問題。
  • 建立 iOS 系結專案時,修正組建錯誤「找不到中繼資料檔 ' * * * \bin\Debug\NativeLibrary.dll '」。

資訊安全諮詢注意事項

CVE-2021-31957 ASP.NET 拒絕服務弱點

當 ASP.NET Core 不當處理用戶端中斷連線時,就會發生阻絕服務弱點。

開發人員社群的問題


16.10.0 Visual Studio 2019 版本16.10。0

2021年5月25日發行

本版 Visual Studio 2019 16.10.0 版的新功能摘要

C++

  • 所有 c + + 20 功能現在都可在此參數下使用 /std:c++latest 。 雖然 MSVC 的 c + + 20 標準的執行 (目前由 ISO 所發行) 已完成功能,但某些重要的 c + + 20 程式庫功能應該會由即將發行的瑕疵報表修改, (ISO c + + 20 bug 修正) 可能會以 ABI 不相容的方式變更它們。 如需詳細資訊,請參閱 Microsoft/STL 問題 #1814
    • 16.10 中新增的 c + + 20 立即函式 & constinit 支援
    • 最後的部分 <chrono> :新的時鐘、閏秒、時區和剖析
    • <format>適用于文字格式設定的實作為
  • /openmp:llvm 除了 x64 之外,現已可在 x86 和 ARM64 上使用
  • 您現在可以使用自訂編譯警告層級和程式碼分析設定,將 Include 目錄指定為 external。
  • 已新增 /await:strict 參數,以在舊版語言模式中啟用 C + 20 樣式的協同程式。
  • 的偵錯工具視覺效果 std::coroutine_handle<T> 現在會顯示原始的協同程式函式名稱和簽章,以及目前的暫止點。
  • 新增對 CMakePresets的支援。
  • 在 Visual Studio 中加入新的遠端連線時,您現在必須接受或拒絕伺服器所呈現的主機金鑰指紋。
  • /external 將參數新增至 MSVC,以指定要視為警告用途的標頭。

Docker 工具改進

  • 能夠建立啟動設定檔,以設定要在您的撰寫檔中啟動的服務。
  • 標記影像的能力。
  • 已新增容器的 [磁片區] 索引標籤。
  • 新增容器的 [標籤] 索引標籤。
  • 新增影像的標籤索引標籤。
  • 容器現在依組合專案分組。

編輯器

  • 對於想要使用較不擁擠體驗的人員,可以在 Visual Studio 搜尋 (Ctrl + Q) 中搜尋「行距」來修改行距。 此選項位於 Text Editor\General。
  • [檔案中尋找] 和 [尋找所有參考] 都有控制項可以保留結果。 根據我們的社區意見反應,我們新增了一個選項,預設會將 [保持結果] 選項切換為 [開啟]。 您可以在 Visual Studio 搜尋 (Ctrl + Q) 中搜尋「預設保持搜尋結果」,以找到這個選項。 選項位於 [Environment\Find 和 Replace] 下。 請注意,使用者目前的 [檔案中尋找] 和 [尋找所有參考] 會有5個結果限制為5個結果。
  • [在檔案中尋找] 的新選項可讓使用者執行其他搜尋,並將這些結果附加至先前的搜尋。

編輯器擴充性

  • 管理 IntraTextAdornmentTags 之程式碼的行為已變更。 透過這種變更,您就必須在基礎標記變更時引發標記變更事件,就像使用任何其他ITagger一樣。 否則,您的標記可能永遠不會更新。

& 診斷的偵錯工具

  • 記憶體傾印的診斷分析現在包含受控 Linux 核心傾印。

Git 生產力

  • 使用深層連結跳至網路,以建立新的提取要求,並在 GitHub 或 Azure DevOps 從 Git 功能表中查看 pr。
  • 使用分支選擇器中的單一 select,簽出本機和遠端分支。
  • 透過操作功能表,從存放庫選擇器移除專案。
  • 開啟 Git 存放庫透過 Git 開啟 Git 儲存機制時,開啟解決方案的自動載入 > 設定。
  • 按兩下以從 git 儲存機制視窗透過 Git > 設定來查看分支的行為。
  • 從 Git 的 [變更視窗溢位] 功能表中,同步處理 (提取,然後推送) 具有多個遠端的分支。
  • 自訂可見的 Git 變更視窗工具列動作 (從溢位功能表中提取、提取、推送、同步) 。
  • 在瀏覽器中,從 Git 的 [變更視窗溢位] 功能表開啟您的儲存機制。
  • 從狀態列搜尋和簽出本機和遠端分支。
  • 從狀態列的本機 Git 存放庫進行搜尋和切換。
  • 修正了 Git 功能表中的本機儲存機制清單未在 Visual Studio 啟動時載入的問題。
  • 開啟存放庫時,將嵌套專案子存放庫新增至您的本機存放庫清單。
  • 透過 Git 切換存放庫 > 設定,讓解決方案保持開啟狀態。
  • 透過 Git 開啟存放庫時,請關閉開啟的資料夾 > 設定。
  • 從狀態列中的 [未推送認可] 按鈕,以及從 Git 功能表中的 [同步] 命令,同步處理您的分支與遠端。
  • 即使沒有任何傳入的認可,也可以從 Git 儲存機制的 [歷程記錄] 窗格提取和提取。
  • 查看認可詳細資料,以及內嵌于 Git 存放庫視窗中的檔案變更比較。
  • 開啟 Azure DevOps Git 存放庫時,自動重新連線或提示建立初始 Azure DevOps 連接。
  • 使用可見的分支名稱合併和重設基底,以取代混淆的來源/目標術語。
  • 改善方案總管中原始檔控制圖像的效能和可靠性。
  • 在 Git 存放庫視窗中保留傳入/傳出區段(即使空白的話)。
  • 將 Git 中的多個遠端的 Fetch/Pull/Push 下拉式清單變更為單一動作功能表。

.NET 生產力

  • 方法呼叫中的引數完成
  • EditorConfig UI
  • 以視覺化方式檢查和流覽繼承鏈
  • 轉換、索引子和運算子的 IntelliSense 完成
  • 來源產生器的偵錯工具支援
  • Visual Basic 的程式碼清理支援
  • 編輯後繼續 (EnC) 更新
  • 移除未使用的參考
  • 智慧型斷路線
  • 簡化 LINQ 運算式重構
  • 列舉值的 IntelliSense 完成
  • IntelliSense 完成模式設定
  • 新行的程式碼樣式喜好設定
  • 尋找來源產生器的所有參考支援

Razor (ASP.NET Core) 預覽編輯器

  • IntelliSense 完成更新
  • 移至一般元件的定義支援
  • 索引標籤和空間的新程式碼樣式設定
  • 工具選項中的 razor 文字編輯器現在稱為 razor (ASP.NET Core)

測試體驗協助工具改善

  • 主控台. Writeline 現在會顯示在測試瀏覽器中
  • 測試輸出現在可以保留標籤,讓超連結和 stacktrace 連結可從記錄檔中流覽。
  • 當輸出的長度超過300個字元,或有超過10個附加至測試結果的檔案時,就會為單一測試結果建立記錄檔。
  • 記錄檔現在也可以在預覽中開啟,以便更輕鬆地管理您的索引標籤。
  • 記錄檔和測試瀏覽器支援 Ctrl PgUp/>pgdn,以流覽游標和 Shift + Ctrl PgUp/>pgdn 來進行選取。
  • 記錄檔編輯器現在會使用 IVsTextView 介面,這表示它現在可以開啟非常大的文字檔。 這應該不需要讓使用者 Copy All 截斷記錄,並在不同的編輯器(例如記事本)中開啟記錄檔。 針對 MSTest,我們現在也包含單一記錄檔來匯總所有輸出,而不只是每個資料列都有個別的記錄檔。
  • 您現在可以使用 dotnet cli 在 Ubuntu 和 Alpine 的命令列取得跨平臺程式碼涵蓋範圍。 如果使用者想要在以這些平臺為目標的電腦上取得程式碼涵蓋範圍,您現在可以新增您通常會在 windows 上使用的相同程式碼涵蓋範圍收集命令。 請參閱更多 dotnet 測試檔。
  • 現在 [測試瀏覽器] 中的 [全部折迭] 按鈕旁邊會有 [全部展開] 按鈕。 您可以透過鍵盤快速鍵使用此命令, (Ctrl + A、Ctrl + 向右鍵) ,但更多意見反應指出新增按鈕值得額外的 UI。 如同往常,感謝您讓我們知道您的想法 https://developercommunity.visualstudio.com/
  • 測試瀏覽器顯示「過期」的方式也有些微變更。 「過期」是灰色或「淡出」的測試結果,表示結果不是來自最新的測試回合。 如果結果不是最新測試回合的一部分,則會顯示為過時。 之前,新的測試探索 (或甚至是重新探索) 的舊測試結果也會以純圖示顯示。 這會造成某些「未執行」測試太淡的原因,以及其他人不會造成的混淆。 這項變更會降低過期的複雜度。
  • 使用持續性測試結果功能 (在16.2 版中新增) 您可以看到上次測試回合的測試結果,即使您已關閉並重新開啟 Visual Studio 也是一樣。 這可協助使用者記住它們離開的位置,並提供更多的內容,而不需要執行另一次測試。 我們也修改了保存的結果行為,使其一律會過時。 這樣更好的表示它們不是在目前 Visual Studio 會話期間執行的測試回合。

Web 工具

  • 切換至 API 的 V2 以進行 Azure AD 布建
  • Azure 應用程式組態為已連線的服務現在支援動態設定

Windows應用程式封裝 Project 相依性樹狀結構

  • 已將「相依性樹狀結構」新增至 WAP Project

XAML 工具改進

  • 改進了 Xamarin 客戶的 XAML IntelliSense 和 XAML 熱重新載入
  • 針對 WPF 中的 select ItemsControls 引進XAML 範例資料
  • 新增燈泡,以快速存取常用的編輯屬性
  • 在 XAML 編輯器中新增燈泡,以協助建立視圖模型

Service Fabric 工具

  • Service Fabric 應用程式 StartupServices.xml 簡介

Visual Studio 2019 16.10 版的新功能詳細資料

Docker 工具

容器工具視窗

在此版本中,我們新增了 [容器] 工具視窗,讓您更輕鬆地查看容器和映射並與之互動。 您只需流覽至 View > 其他 Windows > 容器,即可試用新功能。

  • 容器現在依組合專案分組。 這可讓您輕鬆地分辨哪些容器代表您的應用程式。 此外,我們在 容器 中新增了 [標籤] 索引標籤,讓您可以輕鬆地查看在開發期間使用的標籤。

[撰寫群組] 選項和 [容器標籤] 索引標籤

  • 我們也新增了影像的 [標籤] 索引標籤。

影像標籤索引標籤

  • [新增磁片區] 索引標籤可讓您查看執行中容器的磁片區,甚至可以在 Visual Studio 中開啟檔案。

容器磁片區索引標籤

  • 我們現在支援從 [容器] 工具視窗標記影像的能力。 從 影像 中,以滑鼠右鍵按一下影像,然後選取 [ 標記]。

標記影像

撰寫
  • Visual Studio 中的 Docker Compose 工具現在可讓您執行撰寫檔案中定義之服務的任何組合。 開啟 [偵錯工具] 下拉式清單,或以滑鼠右鍵按一下您的 docker 撰寫專案,然後選取 [管理] Docker Compose 啟動設定以開始著手。

管理 Docker Compose 啟動設定

Git 生產力

  • 為了讓您在 Visual Studio 時可以更輕鬆地建立提取要求,我們新增了可讓您建立 PR 或查看存放庫 pr 清單的功能表項目。 此功能表會根據您的儲存機制是在 GitHub 或 Azure DevOps 而動態。

從 Git 功能表在 web 上建立 PR 並查看 Pr 清單

  • 在 [狀態列] 和 [Git 變更] 視窗中,分支選擇器現在會在您單一選取分支時,簽出本機或遠端分支。 您可以在內容功能表中找到其他動作。

按一下滑鼠左鍵以查看分支,然後以滑鼠右鍵按一下其他動作

  • 狀態列中的新存放庫選擇器具有快顯功能表,可讓您從清單中移除專案。

透過內容功能表從存放庫選擇器清單中移除專案

  • 使用存放庫選擇器或 Git 功能表本機存放庫清單時,開啟存放庫將不再自動載入解決方案。 您可以改為在可選取的清單中看到資料夾檢視和方案。 您可以切換核取方塊,透過 Git > 設定來變更此行為。

  • 您可以在 [Git 存放庫] 視窗中按兩下分支名稱,以選擇要簽出分支。 如果您想要變更此行為,請切換 Git > 設定中的核取方塊。

設定切換自動 .sln 載入和分支簽出。

  • 您現在可以在 [Git 變更] 視窗中執行更多動作。 工具列圖示可以自訂,而且您可以選擇要顯示的動作。 您可以從溢位功能表同步處理多個遠端。 您可以在瀏覽器中開啟存放庫的遠端網頁。

Git 會變更具有要同步處理、在瀏覽器中開啟和工具列動作的標記的溢位功能表。

  • 搜尋本機和遠端分支,然後從狀態列分支選擇器執行常見分支動作。

狀態列中的分支選擇器。

  • 從狀態列存放庫選擇器搜尋並切換本機 Git 存放庫。

狀態列中的存放庫選擇器。

  • 修正了 Git 功能表中的本機儲存機制清單未在 Visual Studio 啟動時載入的問題
  • 我們在 Git > 設定中新增了兩個新選項,以管理您開啟和切換存放庫的方式。 您現在可以在切換至另一個存放庫時,讓目前的解決方案保持開啟

設定以保持解決方案開啟。

  • 開啟存放庫時,您也可以選擇不要載入儲存機制的根資料夾。

設定以開啟資料夾

  • 同步 (提取,然後從狀態列中的 [未推送認可] 按鈕或從 Git 功能表中的 [同步] 命令,推送) 您的分支。

狀態列中的 [同步處理] 按鈕。

  • 即使沒有任何傳入的認可,也可以從 Git 儲存機制的 [歷程記錄] 窗格提取和提取。 從狀態列或鍵盤快速鍵 Ctrl + 0 + Y 存取這些區段。

Git 存放庫視窗中的內送區段,其中包含用來提取和提取按鈕的標注。

  • 在 [Git 存放庫] 視窗中選取認可,以查看其詳細資料和檔案變更的比較,而不需要流覽到其他視窗。 選取兩個認可,然後以滑鼠右鍵按一下,在同一個視窗中比較它們。 將詳細資料快顯到它們自己的視窗,以取得可深入探索變更的全螢幕可見度。

Git 存放庫視窗中的內嵌認可詳細資料和檔案比較。

  • 查看檔案中的刪除和插入次數,並變更比較的版面配置。

使用工具列中的檔案變更和版面配置視圖按鈕的標注來彈出認可視窗

  • 開啟 Azure DevOps Git 存放庫時,自動重新連線或提示建立初始 Azure DevOps 連接。 這可讓您存取開啟的儲存機制的工作專案和組建。

[Git 變更] 視窗中的 [資訊列] 會提示您連線到目前存放庫的 Azure DevOps。「>

  • 當解決重訂基底或合併衝突時,[合併編輯器] 和 [內容] 功能表會顯示目前和傳入分支的分支名稱。 這會修正 混淆的來源和目標術語

解決衝突時的內容功能表會顯示分支名稱。

重訂基底和合併編輯器會在標題中顯示分支名稱。

.NET 生產力

  • 我們新增了 [移除未使用的參考] 命令,可讓您清除專案參考,以及 NuGet 沒有使用方式的封裝。 此選項預設為關閉,因此您將需要在 [工具 > 選項 > 文字編輯器 > c # > Advanced ] 中啟用它,然後選取 [方案總管 (實驗) 中顯示 [移除未使用的參考] 命令。 啟用此選項後,[ 移除未使用的參考 ] 命令將會出現在 [專案名稱] 或 [相依性] 節點的滑鼠右鍵功能表中方案總管:

移除未使用的參考命令

選取 [ 移除未使用的參考 ] 會開啟一個對話方塊,您可以在其中查看即將移除的所有參考,其中包含保留您要保留的選項:

移除未使用的參考對話方塊

  • 我們新增了新的命令,稱為 智慧型斷路線,會自動插入一組大括弧,並在使用 Shift + Enter 作為認可字元時,將插入號放在這些大括弧內。 智慧斷路線適用于所有需要大括弧的型別宣告,以及屬性、事件、欄位和物件建立運算式。 下列範例顯示類別和欄位上所使用的智慧型分隔線。 如果欄位結尾沒有分號,則輸入 Shift + Enter 會藉由新增一組大括弧,將欄位轉換為屬性。 您可以 + 再按一次 Shift enter 來復原認可,這也會自動在欄位結尾加上分號:

智慧型斷路線

  • 現在有一個重構可 簡化 LINQ 運算式 ,這會移除對可列舉的不必要呼叫 。其中 () 方法來協助改善效能和可讀性。 將游標放在 LINQ 運算式上。 按下 (Ctrl+ + . ),以觸發 [快速動作與重構] 功能表。 選取 [ 簡化 LINQ 運算式]。

簡化 LINQ 運算式

  • 現在即使未輸入 列舉 名稱,也會在已知型別時,列舉 值的 IntelliSense 完成。

列舉值的 IntelliSense 完成

  • 我們新增了 IntelliSense 完成模式設定,讓您能夠設定預設的完成選項。 這項新設定可在 [工具 > 選項 > 文字編輯器 > > ] Advanced Default IntelliSense 自動完成模式 中使用,您可以從下列選項中選擇: [上次使用 時間] 會保留您使用 Ctrl Alt 空格鍵的最後一項設定、僅限 tab 鍵(只會在索引標籤上 + + 完成)和 [自動 ] (目前在 標點符號和特殊字元上完成的預設行為)。

IntelliSense 完成模式設定

  • 我們為新行加入了新的程式碼樣式喜好設定。 您可以使用 EditorConfig 檔案,或在 工具 > 選項 > 文字編輯器 > c # 程式 > 代碼樣式 的 > 新行喜好設定 (實驗性) 中設定這些喜好設定。

新行的程式碼樣式選項

例如,您可以設定程式碼樣式喜好設定來報告診斷並提供程式碼修正,以移除額外的空白行:

程式碼修正移除額外的空白行

  • 現在可找到 來源 產生器的所有參考支援,可讓您在來源產生的檔中尋找參考。

  • 現在有一個完成選項,可在撰寫方法呼叫時自動插入引數。 這項功能預設為關閉,因此您必須在工具 > 選項 > 文字編輯器中啟用它 > c # > IntelliSense,然後選取 Tab 鍵兩次以插入引數 (實驗) 。 開始撰寫方法呼叫,並按 tab 鍵兩次 (tab + tab) 。 請注意,方法呼叫包含以方法的預設值為基礎的引數。 然後,您可以使用 [參數資訊] 來迴圈顯示您想要插入的引數清單,方法是按向上鍵和向下鍵。 您也可以開始鍵入引數來開啟 IntelliSense 完成清單,然後輸入分號來認可引數,並在方法呼叫的結尾加上分號。

方法呼叫引數完成

  • 我們已建立 EditorConfig 的 UI。 從您的方案開啟任何 c # 或 Visual Basic EditorConfig 檔案。 請注意,新的 UI 會開啟 c # 和 Visual Basic 的 [程式碼樣式] 和 [程式碼品質] 設定選項。

EditorConfig UI

  • 現在有一個視覺標記法,可供導覽和檢查繼承鏈。 此選項預設為關閉,因此您必須在 [工具 > 選項] > 文字編輯器中開啟此選項 > c # > Advanced],然後選取 [顯示繼承邊界]。 啟用繼承邊界會將新的圖示新增至代表程式碼的執行和覆寫的邊界。 按一下 [繼承邊界] 圖示,就會顯示您可以選取以流覽的繼承選項。

繼承邊界圖示

  • 現在,轉換、索引子和運算子的 IntelliSense 完成。

轉換、索引子和運算子的 IntelliSense 完成

  • 現在有針對來源產生器的偵錯工具支援。 您需要先從 Visual Studio 安裝程式安裝 .NET Compiler Platform SDK 元件。 然後,您必須將 <IsRoslynComponent> true 屬性新增 </IsRoslynComponent> 至您的專案檔。 接下來,在 [Project 屬性] 偵錯工具頁面中,啟用 [Roslyn 元件] 偵錯工具選項,然後選取適當的目標專案。 接下來,在產生器專案上按 F5,此專案會啟動建立目標專案的 CSC.exe/VBC.exe,讓您能夠對產生器程式碼進行偵錯工具。

來源產生器偵錯工具

來源產生器偵錯工具目標專案

在此版本中,我們也為 Visual Studio 中的 [編輯後繼續] (EnC) 的偵測體驗新增了下列增強功能:

  • 現在可以在部分類別內的程式碼中套用變更。
  • 您現在可以在產生) 檔案的 來源 中套用變更。
  • 您現在可以加入和/或變更 using 指示詞。
  • 改進可靠性和較低的記憶體耗用量。

所有三項變更都可以在目前支援 EnC 的任何地方使用,並同時使用 c # 和 Visual Basic 原始程式檔。

偵錯工具 & 診斷

  • 我們開發了數個分析器來協助您攔截受控記憶體傾印的常見問題。 此分析現在可以在受控 Linux 核心傾印上執行。

自動分析記憶體傾印

感謝您

最後的重要事項:由衷「感謝」本月度為 .NET 生產力有所貢獻的下列人員 (別名 Roslyn):

Razor (ASP.NET Core) 預覽編輯器

新的預覽 Razor 編輯器現在支援下列 Razor 編輯功能:

  • IntelliSense 完成現在會針對 HTML 元件、TagHelper 元素和 c # 屬性進行篩選:

Razor IntelliSense 篩選

  • C # 覆寫的 IntelliSense 完成。
  • 移至一般 componenets 的定義支援。
  • 索引標籤與空格的新程式碼樣式設定選項。 當您輸入、格式化和建立新的 Razor 檔案時,將會遵守這些程式碼樣式。 您可以在 [工具] 中設定索引標籤和空間 > 選項 > 文字編輯器 > Razor (ASP.NET Core) ] 索引標籤。
  • [工具] 選項中的 Razor 文字編輯器已從 ASP.NET Core razor 語言服務 重新命名為 razor (ASP.NET Core)

若要啟用新的預覽 Razor 編輯器,請移至 [工具 > 選項 > 環境 > 預覽功能],選取 [啟用實驗性 Razor 編輯器],然後重新開機 Visual Studio。

測試體驗協助工具改善

  • 主控台. Writeline 現在會顯示在 Test Explorer 中! 長輸出會顯示為 [測試詳細資料摘要] 窗格中的可折迭區段。 特定長度的輸出會顯示前幾行,然後使用在另一個視窗中開啟測試記錄檔的選項來截斷。 如果有超過20個框架,則會截斷 stacktrace,然後才會顯示第一個和最後10個畫面格。 截斷設計的重要部分也著重于 當測試回合有大量輸出時,減少 VS 凍結。 具有大型輸出的測試將不會再封鎖 UI 執行緒。

測試輸出包含 Console. Writeline

  • 測試輸出現在可以保留標籤,讓超連結和 stacktrace 連結可從記錄檔中流覽。 這些連結現在也方便鍵盤。

測試輸出會保留超連結和 stacktraces

測試記錄也會保留超連結和 stacktraces

  • 當輸出的長度超過300個字元,或有超過10個附加至測試結果的檔案時,就會為單一測試結果建立記錄檔。 記錄檔現在也可以在預覽中開啟,以便更輕鬆地管理您的索引標籤。 記錄檔和測試瀏覽器支援 Ctrl PgUp/>pgdn,以流覽游標和 Shift + Ctrl PgUp/>pgdn 來進行選取。

使用鍵盤快速鍵可讓您更輕鬆地選取測試記錄

  • 記錄檔編輯器現在會使用 IVsTextView 介面,這表示它現在可以開啟非常大的文字檔。 這應該不需要讓使用者 Copy All 截斷記錄,並在不同的編輯器(例如記事本)中開啟記錄檔。 針對 MSTest,我們現在也包含單一記錄檔來匯總所有輸出,而不只是每個資料列都有個別的記錄檔。

測試控管

  • 您現在可以使用 dotnet cli 在 Ubuntu 和 Alpine 的命令列取得跨平臺程式碼涵蓋範圍。 如果使用者想要在以這些平臺為目標的電腦上取得程式碼涵蓋範圍,您現在可以新增您通常會在 windows 上使用的相同程式碼涵蓋範圍收集命令。 請參閱更多 dotnet 測試檔。
  • 現在 [測試瀏覽器] 中的 [全部折迭] 按鈕旁邊會有 [全部展開] 按鈕。 您可以透過鍵盤快速鍵使用此命令, (Ctrl + A、Ctrl + 向右鍵) ,但更多意見反應指出新增按鈕值得額外的 UI。 如同往常,感謝您讓我們知道您的想法 https://developercommunity.visualstudio.com/
  • 測試瀏覽器顯示「過期」的方式也有些微變更。 「過期」是灰色或「淡出」的測試結果,表示結果不是來自最新的測試回合。 如果結果不是最新測試回合的一部分,則會顯示為過時。 之前,新的測試探索 (或甚至是重新探索) 的舊測試結果也會以純圖示顯示。 這會造成某些「未執行」測試太淡的原因,以及其他人不會造成的混淆。 這項變更會降低過期的複雜度。
  • 使用持續性測試結果功能 (在16.2 版中新增) 您可以看到上次測試回合的測試結果,即使您已關閉並重新開啟 Visual Studio 也是一樣。 這可協助使用者記住它們離開的位置,並提供更多的內容,而不需要執行另一次測試。 我們也修改了保存的結果行為,使其一律會過時。 這樣更好的表示它們不是在目前 Visual Studio 會話期間執行的測試回合。

上次 Visual Studio 會話的持續性測試結果會顯示為淡出

Web 工具

動態 設定可讓您使用中介軟體自動重新整理設定資源。 應用程式設定為聯機服務現在可以自動將動態設定整合到您的應用程式。 若要使用這個已連結的服務,請按一下已連線的服務,並 將 Azure 應用程式組態加入為服務相依性。

Windows應用程式封裝 Project 「相依性樹狀結構」

  • 在去年的工作中,若要在 Windows 應用程式封裝專案 (wap) 中啟用 NuGet 套件參考,我們在 wap 的方案總管體驗中啟用了新的 UI。 舊體驗未顯示這些套件參考,或可讓您透過 UI 新增 NuGet 套件。

WindowsProject 舊消費者介面的應用程式封裝。

  • 在新的體驗中,在 CPS 和 .net Project 系統的協助下,我們啟用了「相依性樹狀結構」,其會繼續透過「應用程式」子樹顯示專案參考,但也提供可讓您管理 NuGet 封裝的「套件」子樹。

WindowsProject 新消費者介面的應用程式封裝。

XAML 工具改善 (WPF & Xamarin. Forms)

Xamarin.Forms

在此版本中,我們針對 Xamarin 的 XAML IntelliSense 和 XAML 熱重新載入進行了兩項小改良。 熱重新載入「只變更」將不再報告錯誤的錯誤:

  • VisualStateManager 中的 setter 參考未指定類型的屬性,例如 <Setter Property="BackgroundColor" Value="Red">
  • 合併的 Resourcedictionary 未包裝到 <ResourceDictionary. System.windows.resourcedictionary.mergeddictionaries> 元素

範例:

    <Application>
    <Application.Resources>
        <ResourceDictionary Source='Colors.xaml'/>
        <Style TargetType='Label'> ... <Style>
    </Application.Resources>
    </Application>

XAML 範例資料

在此版本中,我們藉由引進將一般範例資料新增至 ItemsControls 的新方式,進一步增強了 XAML 設計工具的設計階段資料功能。 這項功能僅適用于 WPF 中的 ListBox、ListView 和 DataGrid。

  • d:ItemSource='{d:SampleData}'您可以在 ListBox、ListView 或 DataGrid 上設定來啟用範例資料
  • 這將會在設計工具中填入您的控制項,只包含一組符合您 DataTemplates 和系結路徑的5個專案
  • 您可以使用屬性來變更產生的專案數目 ItemCount ,例如: d:ItemSource='{d:SampleData ItemCount=3}'

顯示範例資料的 ListBox。

XAML 設計工具快速動作

  • XAML 設計工具中所選控制項角落附近的新燈泡,可用來快速存取該控制項的一般編輯屬性。

  • 支援的控制項包括:

    • UWP:框線、按鈕、畫布、核取方塊、下拉式方塊、方格、HyperlinkButton、影像、ListBox、ListView、NavigationView、選項按鈕、滑杆、StackPanel、TextBlock、TextBox
    • WPF:框線、按鈕、畫布、核取方塊、ComboBox、格線、影像、標籤、ListBox、ListView、StackPanel、TextBlock、TextBox
  • 這項功能適用于 UWP、wpf .net Core 和 wpf .NET Framework (在 [選項] 對話方塊) 中啟用 [適用于 .NET Framework 的新 WPF XAML 設計工具] 預覽功能。

  • XAML 設計工具快速動作也有擴充性模型。 如需建立您自己的動作的詳細資訊,請參閱 XAML 設計工具擴充性GitHub

XAML 設計工具按鈕的快速動作

適用于 XAML 的 MVVM 工具

在此版本中,我們引進了在 XAML 編輯器中建立視圖模型的燈泡。 當我們偵測到 MVVM framework 正在專案中使用時,就會在 XAML 檔的根項目上顯示此燈泡。 此對話方塊可讓您自訂產生的視圖模型命名空間、資料夾和繼承的基底視圖模型。

建立視圖模型燈泡體驗

燈泡也會將產生的視圖模型設定為 x:DataType (Xamarin) 或 d:DataCoNtext (所有其他平臺) 適用于 XAML 檔,讓使用者可以進一步利用 XAML 編輯器燈泡來產生視圖模型中的系結屬性和命令。

Service Fabric 工具

這項功能在 Service Fabric 應用程式設計中引進 StartupServices.xml 的檔案。 此檔案裝載 ApplicationManifest.xml 的 DefaultServices 一節。 使用這個執行時,DefaultServices 和服務定義相關的參數會從現有的 ApplicationManifest.xml 移至此稱為 StartupServices.xml 的新檔案。 此檔案會在 Visual Studio 中 (組建/重建/F5/Ctrl + F5/Publish) 的每項功能中使用。

本版修正的前幾個主要問題

  • 修正了 c # 開發人員叫用 SmartBreakline 命令的問題,將會移除屬性存取子中的所有內容。
  • 修正了更新 codestyle 設定的開發人員在所有 Visual Studio 實例(而不是只在所需的資料夾內)中套用變更的問題。
  • 每當開啟 natvie 或合併的專案時,就會顯示 [套用程式碼變更] 圖示。 只有在開發人員開始進行調試時,才會啟用此功能。
  • 修正AudioUnitPropertyIDType中的重大變更
  • 修正了使用 UWP 單元測試架構的開發人員無法在遠端裝置上執行測試的問題。

開發人員社群的問題

開發人員社群包含此版本中所有貨物的完整清單。

以下是16.10 中已發行的最重要投票問題:


已知問題

遵循以下連結,查看所有已知問題和 Visual Studio 2019 中可用的因應措施。


意見反應與建議

我們很希望聽聽您的意見! 若有任何問題,請透過安裝程式或 Visual Studio IDE 本身右上角的回報問題選項來通知我們。 必須提供 Feedback Icon 圖示位在右上角。 您可以在 Visual Studio 開發人員社群中提出產品建議或追蹤您的問題,也可以提出問題、尋找解答及提議新功能。 您也可以透過我們的即時聊天支援取得免費的安裝協助。


部落格

善用「開發人員工具部落格」網站中的見解與建議,讓您能夠隨時取得所有新版本的最新資訊,以及涵蓋各類功能的深入探討文章。


Visual Studio 2019 版本資訊歷程記錄

如需舊版 Visual Studio 2019 的相關詳細資訊,請參閱 Visual Studio 2019 版本資訊歷程記錄頁面。


頁首