PreviewLogo Visual Studio 2022 v 17.0 Preview 版本 資訊


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


重要

此版本未正式運作,而不適用於實際執行電腦,或建立實際執行程式碼。 如需安裝和更新 Visual Studio 2022 的指示,請參閱這篇有關將 Visual Studio 2022 更新至最新版本的檔。

Download Community Button Download Professional Button Download Enterprise Button


Visual Studio 2022 v 17.0 Preview 的新功能

Visual Studio 2022 v 17.0 Preview 版本

Visual Studio 2022 的 Blog

Visual Studio 2022 的 Blog 是來自 Visual Studio 工程團隊的官方產品見解來源。 您可以在下列文章中找到有關 Visual Studio 2022 版本的深入資訊:


17.0.0-3.1 Visual Studio 2022 17.0 版 Preview 3.1  NewReleaseButton

2021年8月16日發行

此版本的 Visual Studio 2022 17.0 版 Preview 3.1 中解決的問題摘要

  • 修正在 Visual Studio 安裝期間安裝 WebView2 套件的問題,這會導致整個安裝失敗。
  • 修正任何使用者嘗試在偵錯工具下的中斷點套用程式碼變更時,會看到無限制的進度列,而沒有取消選項的問題。

開發人員社群的問題


17.0.0-3.0 Visual Studio 2022 17.0 版 Preview 3

2021年8月10日發行

已知問題

•自動程式化 UI 測試錄製器的已知問題會導致 Visual Studio 在第一次啟動測試錄製器時損毀。 修復 Visual Studio 將可解決此問題。 如需詳細資料,請遵循我們的開發人員社群已知問題

這一版 Visual Studio 2022 17.0 版 Preview 3 的新功能摘要

擴展

  • 已新增 ILanguageClient 重大變更修正

信任的位置

  • 已將 Git 儲存機制的支援新增為受信任的位置
  • 信任檢查現在已在解決方案資料夾層級進行
  • 使用者建立的專案會自動加入至受信任的清單
  • 使用者可以略過 Visual Studio 所建立暫存位置的信任檢查
  • 新增了群組原則支援,作為管理信任功能的方式

編輯器

  • 已新增部分字組導覽
  • 自動儲存現已提供預覽功能
  • 多重插入號複製/貼上體驗

& 診斷的偵錯工具

  • 中斷點裝訂邊改進
  • 暫存中斷點
  • 拖放中斷點
  • 方案總管中的外部來源節點
  • 附加至進程對話方塊改進
  • 記憶體傾印診斷分析

JavaScript/TypeScript

  • 我們發行了新的 JavaScript/TypeScript 專案類型,可使用額外的工具來建立獨立的 JavaScript/TypeScript 專案。
  • JavaScript 和 TypeScript 測試現在可在 Visual Studio Test Explorer 中使用

Git 工具

  • 適用于橫跨不同存放庫之任何解決方案的 預覽旗標下的 基本多存放庫支援 (也就是裝載于不同 Git 存放庫中的專案的解決方案)
  • 在建立 git 儲存機制體驗中,現在已完全支援發佈至 Azure DevOps
  • 狀態列增強功能,包括新的功能,可從空白的 VS 查看和開啟存放庫
  • 認可詳細資料增強功能,包括更具回應性且更容易使用的 UI
  • Git 變更視窗上的溢位功能表現在可用於具有額外 Git 作業的本機儲存機制

.NET 生產力

  • 針對新的 .NET 專案,現在預設會啟用可為 null 的參考型別
  • 復原/重做支援移除未使用的參考
  • C # 10.0 檔範圍的命名空間重構
  • 流覽至反向組譯來源現在預設為開啟
  • 重構為偏好 null 檢查類型檢查
  • XML 批註現在會 <excption> 在方法明確擲回例外狀況時自動產生標記
  • 現在預設會啟用繼承邊界

C++

  • 已更新 CMake 總覽頁面,以支援 CMakePresets.js。
  • 您現在可以使用 CMake 3.21 和 v3 上的 CMakePresets.js來設定和建立您的 CMake 專案。
  • 您現在可以使用 LLDB 來對遠端系統上執行的處理常式進行 Visual Studio 的處理。
  • 從匯入的模組和標頭單元中提供類型的導覽和語法醒目提示時,改進了 c + + IntelliSense。 這是我們目前的投資區域,請使用 [說明] >[傳送意見反應] 繼續分享您對開發人員社群的意見反應。
  • 藉由優化快取的標頭使用方式和符號資料庫存取,來改善 c + + IntelliSense 效能,讓您可以改善載入程式碼的時間。
  • IntelliSense Code Linter for c + + 現在預設為開啟,提供立即的型別建議,並修正常見程式碼缺失的建議。
  • 已更新為在 c + + 行動裝置開發工作負載中的 NDK r21 LTS。
  • 已將支援新增 gsl::not_null 至程式碼分析。

Razor (ASP.NET Core) 編輯器

  • 減少 UI 的凍結並改善解決方案啟動的效能
  • 更快速的語義顏色標示,在某些解決方案中最多可達2倍
  • F7 (查看 Razor 檔案中的程式碼) 支援
  • Razor 檔案中的程式碼片段支援,會以單一索引標籤完成程式碼片段會話,而不是按下 tab 鍵
  • @code當有嵌套的 HTML 和 Razor 元件時,區塊中的較佳格式

熱重新載入體驗

測試體驗

  • 熱重載現在已可在您的測試體驗中使用! 在次要程式碼編輯之後,在測試回合之間不需要完整組建,以加快測試回合的速度。
  • 遠端測試-使用 docker 和 wsl 連線的遠端環境現在已可供使用。 如果您已連線至 linux,您也可以透過 SSH 連線進行 debug。 如需安裝指示,請參閱 Preview 2 版本資訊中的詳細資料。

消費者介面

  • 為了重新整理 Visual Studio 2022 的使用者介面,我們已重新整理預設深色主題,以改善導覽和導向的對比和協助。
  • 您現在可以使用 Windows 作業系統主題來同步處理 Visual Studio 主題-如果您有輕量系統主題,Visual Studio 的主題將會是藍色。 如果您有深色的系統主題,Visual Studio 的主題將會很暗。 這可以透過 [工具] > 選項 > 一般 > 使用系統設定來啟用。

開發人員社群的前投票問題

此版本的 Visual Studio 2022 17.0 版 Preview 3 的新功能詳細資料

擴展

VisualStudio. LanguageServer 在語言用戶端無法初始化時,引進了自訂通知的新方法。

初始化工作現在會由工作狀態中心 (的 TSC) 追蹤。 如果初始化工作失敗,使用者可能會前往 TSC 取得發生錯誤的詳細資訊。 語言用戶端現在可以自訂向使用者顯示的訊息,以提供有關此失敗所代表之原因的資訊,以及可採取來修正此問題的可能動作。 為了達到此目的,我們會在 ILanguageClient 介面中引進一組新的 Api。 這些新的 api 會在 ILanguageClient 介面中造成重大變更,因此語言延伸模組將需要參考新的封裝,才能在 Visual Studio 2022 中運作。

以下是新的 Api:

  1. ShowNotificationOnInitializeFailed 屬性 -布林值屬性,可決定語言伺服器是否希望我們顯示反升,以通知使用者失敗,如下所示:

工作狀態中心中的 ShowNotificationOnInitializeFailed

建議將此屬性設定為 true,只有當失敗會大幅影響目前正在處理之專案的使用者體驗。

  1. OnServerInitializedFailedAsync 方法 -當語言用戶端的初始化失敗時,將會叫用這個方法。 我們會提供 LanguageClientInitializationInfoBase 物件,其中包含失敗發生方式的相關資訊,讓語言用戶端可以透過自己的方式通知使用者失敗,或提供失敗內容的自訂訊息。 如果提供訊息,則會顯示在 Visual Studio 的 [輸出] 視窗中。

輸出視窗中的語言用戶端初始化錯誤

信任的位置

在內容 (例如,解決方案、專案、檔案或資料夾) 在 IDE 內開啟之前,我們會先驗證資料夾位置或存放庫是否先前是受信任的。

當偵測到未受信任的程式碼時,我們將會顯示警告對話方塊,讓您在適當的) (的資料夾層級、儲存機制或存放庫擁有者層級信任。

Preview 3 的新內容:

  • 偵測和信任解決方案資料夾路徑根的能力
  • 使用者建立的專案路徑 automtically 新增至使用者的 [信任位置] 清單
  • 進行存放庫信任時,預設會關閉 (關閉的選用功能)
  • 透過選項 > 信任將存放庫新增至信任位置清單的功能設定
  • 能夠略過 Visual Studio 功能所建立之暫存位置的信任檢查
  • 企業可利用群組原則設定功能的開啟/關閉狀態、將新專案新增至信任位置清單,以及修改其他設定
  • 雖然這項功能目前預設為關閉,但您可以透過 > Trust 的選項來啟用它設定 > 在開啟內容之前需要進行信任決策。

編輯 器

部分字組導覽

Ctrl + alt + 向左鍵ctrl + Alt + 向右箭 號現在會依部分字組進行流覽。 例如,字串 "HelloWorld" 會將 "Hello" 和 "World" 識別為 subwords。 在 [工具] > [選項] > [文字編輯器] 的 [選項] 中啟用 部分字組導覽> 一般會導致 word 相關命令 (例如 TransposeWord) 與 subwords 互動。

自動儲存

在 [ 工具] > [選項] > 環境 > 預覽功能,現在已可自動儲存。 若已啟用,當 Visual Studio 應用程式失去焦點 (例如,另一個視窗取得焦點) 時,會盡可能將所有中途的檔儲存到光碟片。 如果無法儲存任何檔案,則在使用者明確將其儲存 (使用 [儲存] 或 [另存新檔] 來儲存它之前,它會保持不變。命令) 。

多點插入 copy\paste 體驗

我們已改善多重插入號複製和貼上體驗。 先前,將多行貼到多個游標時,會導致整個剪貼簿在每個插入點複製。 現在,將多行貼到相同數目的游標中,會將每一行插入至個別的插入號。 若要使用多個插入號,請按 alt + shift +滑鼠按一下alt + shift +. 並使用 Ctrl + Shift +箭頭 鍵來展開選取專案。 接著,按 Ctrl + C 來複製多個選取專案中的文字。 使用 Alt + Shift +滑鼠點擊 ,針對您想要在所需位置貼上的每一行,建立多個游標。 最後,按 Ctrl + V ,將每一行貼到它自己的插入號。

多個插入號複製和貼上

此外,您可以使用 alt + shift +向上鍵或向下 鍵,或 alt + shift +滑鼠拖曳 來選取多個游標。 先前已建立這些筆勢方塊選取專案。 現在,box 選項會轉換成多個游標。 這種方法比在精確位置按一下以插入個別游標更簡單且更快速。 如果您想要使用 alt + shift +方向鍵 來繼續使用方塊選取專案,並在展開多個插入號的選項時,使用 alt + shift +滑鼠拖曳,請移至 [工具 > 選項] > 文字編輯器 > Advanced ,然後選取 [使用方塊選取

多個插入號方塊選取選項

<a name="debugging--diagnostics">& 診斷的偵錯工具

中斷點裝訂邊改進

我們新增了新的中斷點圖像,以指出使用者可以設定中斷點的位置。

![中斷點圖像](media/17.0/17.0_P3_bp_glyph.png "中斷點圖像")

以滑鼠右鍵按一下該中斷點將會提供新的內容功能表和選項;這可讓您快速建立前進中斷點, (條件式中斷點、追蹤點和暫存中斷點,) 的點擊次數較少。

中斷點內容功能表

暫存中斷點

這是新的中斷點,可讓使用者只將程式碼中斷一次。 在進行偵錯工具時,Visual Studio 偵錯工具只會暫停此中斷點的應用程式執行時間,並在叫用之後立即將它移除。 您可以藉由在 [設定] 視窗中啟用 [從叫用中斷點] 核取方塊,將任何中斷點轉換成暫存中斷點。 或者,您可以使用 [中斷點] 裝訂邊中的新滑鼠右鍵內容功能表來設定此中斷點。

暫存中斷點

拖放中斷點

我們已加入中斷點的拖放手勢。 您現在可以保留中斷點,並在所需的程式程式碼上釋出中斷點,以將中斷點從某個位置移到另一個位置。 它適用于我們的前進中斷點,只要動作/條件變數是在內容中即可。

拖放中斷點

方案總管中的外部來源節點

我們在 [方案瀏覽器] 中加入了新的「外部來源」節點。 這目前只會在進行偵錯工具時出現,並會顯示已載入包含來源伺服器或來源連結資訊之符號的受控模組來源。 在進行偵錯工具時,任何已載入的受控符號檔 ( .pdb) 如果有來源伺服器資訊,就會出現在此節點之下。 您可以流覽任何其他 solution explorer 資料夾等檔案,或按兩下專案從來源伺服器下載檔案,然後在 VS 編輯器中開啟。

外部來源

附加至進程對話方塊改進

我們已在 [附加至進程] 對話方塊中加入新的 [自動重新整理] 核取方塊,當您選取 [使用可用的進程自動重新整理流程清單] 時。 新增 [附加至進程] 對話方塊中的 [從桌面選取任何視窗] 選項,可讓使用者從桌面上挑選任何執行中的視窗,並附加至其相關聯的進程進行偵錯工具。

附加至進程對話方塊改進

記憶體傾印診斷分析

當 Stack Overflow 例外狀況發生時,尋找根呼叫框架可能會很困難且耗時。 我們最新的分析器可讓您輕鬆地查看呼叫堆疊,並移除 repetititive 和雜訊畫面以加快問題分析的速度。

JavaScript/TypeScript

現在支援新的 JavaScript/TypeScript 專案類型,可讓您在 Visual Studio 中建立獨立 Angular、React 和 Vue 專案。 將會使用您已在本機電腦上安裝的 framework cli 工具來建立這些專案。 這也表示範本版本是以您在本機電腦上所擁有的 cli 版本為基礎。

在這些新的專案內,您將能夠執行單元測試,並將其與 ASP.NET Core API 專案整合。 您可以在這裡找到檔

.NET 生產力

C # 語言工具

在 c # 8.0 中,我們引進了 可為 null 的參考型別 ,可讓您宣告是否預期 null。 若要使用可為 null 的參考型別,您必須將 <Nullable> enable </Nullable> 專案加入至您的專案檔,或在專案的每個原始程式檔中加入 #nullable enable pragma。 為了協助簡化此程式,我們現在自動包含 <Nullable> 新的 .net 專案的 [啟用] </Nullable>

在 c # 10.0 中,我們會介紹檔案 範圍的命名空間 ,讓您可以選擇不在命名空間中嵌套類別定義。 我們現在已有重構,可將命名空間轉換成檔案範圍的命名空間。 若要使用檔案範圍的命名空間,您必須先將 <LangVersion> preview </LangVersion> 元素新增至您的專案檔。 接下來,將檔案範圍的命名空間設定為 工具 > 選項 > 文字編輯器 c # 程式碼樣式中的程式碼樣式喜好設定 > > ,並在 偏好檔案範圍命名空間 中,從下拉式清單中選取 [是]

檔範圍命名空間的程式碼樣式喜好設定

接下來,將游標放在命名空間上。 按下 (Ctrl+ + . ),以觸發 [快速動作與重構] 功能表。 選取 [ 轉換為檔案範圍的命名空間]。

檔範圍的命名空間重構

現在在套用至實值型別時,會優先使用重構 is not null is object 。 若要使用這個新的重構,請將游標放在類型檢查上。 按下 (Ctrl+ + . ),以觸發 [快速動作與重構] 功能表。 Select 偏好 null 檢查類型檢查

流覽至反向組譯來源

依預設,流覽至現在開啟的反向組譯來源,可讓您流覽至程式庫類型的宣告。 當您叫用原始程式碼和反向組譯來源上程式庫符號的 [移至定義] 時,可使用 [流覽至反向組譯來源]。

編輯器增強功能

XML 批註現在會在標記內自動產生標籤 <exception> <summary> ,讓您可以在方法明確擲回例外狀況時新增描述。

在 Visual Studio 2019 中,我們發行了繼承邊界,可將圖示新增至代表程式碼的執行和覆寫的邊界。 按一下繼承邊界圖示將會顯示您可以選取以流覽的繼承選項。 在此版本中,預設會啟用繼承邊界。 若要停用繼承邊界,請移至 [工具 > 選項 > 文字編輯器 > c # ] 或 [基本 > Advanced ],然後取消選取 [啟用

繼承邊界

在 Visual Studio 2019 中,我們引進了移除未使用的參考,可讓您移除沒有使用方式的專案參考。 我們最近新增了復原和重做 [ 移除未使用的參考 ] 作業的功能。

熱重新載入體驗

XAML 熱重新載入: 在此版本中,我們已更新 XAML 熱重新載入設定和應用程式內的工具列,以清楚說明設定和應用程式體驗與 XAML 熱重新載入(而非 .NET 熱重新載入)相關。

XAML 應用程式中的應用程式內工具列更新

我們也已簡化 [設定] 窗格,更妥善地組織常用選項,並為 .NET MAUI 提供新的 [啟用/停用] 選項。

更新的 XAML 設定選項面板

.NET/c + + 熱重新載入

在此版本中,我們將持續改善 .NET 和 c + + 程式碼的新熱重新載入體驗。

此版本的新功能:

  • 我們已新增對 .NET 應用程式進行編輯後繼續 (EnC) 和熱重新載入體驗的其他編輯類型支援,其中包括:

    • 新增或變更 #line 指示詞的能力
    • 更新最上層語句的能力
    • 改進錯誤/警告訊息,以在訊息同時套用到 EnC 和熱重新載入時更清楚。 這樣做的方法是讓訊息更具泛型,如此就不會在熱重新載入作業期間使用「編輯後繼續」詞彙
  • 自 Visual Studio 2022 Preview 2 的發行版本起,我們已開始在沒有偵錯工具的情況下,透過 CTRL + F5 啟動應用程式時,支援 .net 應用程式的熱重新載入。 在此版本中,我們對此體驗進行了兩項改善:

    • 我們現在支援 Blazor Wasm apps 的熱重新載入(從 CTRL-5 開始)
    • 使用 CTRL + F5 啟動相同應用程式的多個實例,現在將熱重新載入所有執行中的進程。
  • 針對 ASP.NET Core 和 Blazor 開發人員

    • 當您更新應用程式中的 CSS 檔案時,它現在會即時在瀏覽器中進行更新,讓您可以同時使用這兩個熱重新載入來變更程式碼後端,以及更新相同會話中的應用程式外觀與風格
    • 當熱重新載入在 (F5 的 debug 會話下執行時) 瀏覽器會在熱重新載入作業完成時自動重新整理。 這僅適用于先前 relesae 中的 CTRL-F5,我們現在已在這兩個案例中啟用。
    • 已知問題: 在附加偵錯工具時進行變更時,套用變更似乎停止回應

測試體驗

在測試瀏覽器中熱重新載入 [實驗]: 現在您可以使用幕後的熱重新載入技術來嘗試新的實驗性功能,以加速您的測試體驗。 這表示,在您的第一次測試執行之後仍需要完整組建之後,您就可以進行次要變更、執行測試,而且所有更新都會反映出來,而不需要再次執行完整組建。 若要開始使用並瞭解更多注意事項,請參閱下列詳細資料:

Visual Studio 中的測試瀏覽器熱重載可讓您執行測試,而不需要在次要編輯之間建立組建

  • 這項體驗僅適用于以 .NET 6 為目標的專案,您必須前往 [工具 > 選項 > 測試] 來加入宣告

![Visual Studio 的螢幕擷取畫面,顯示 [工具] > 選項 > 測試] 中的 [啟用熱重載] 選項。](media/17.0/17.0_P3_hotreloadoption.png)

  • 當啟用這個選項時,即使編輯器中有未儲存的變更,您的測試也會更新。 我們不會建立,所以您的 bin 資料夾中磁片上的二進位檔已過時。 這表示您可能會在 Visual Studio 中看到磁片與測試結果之間的差異。 若要解決這些問題,然後在簽入之前,請確定您已使用 (Ctrl + Shift + B) 執行完整組建。 任何明確的組建都會以一般完整組建測試結果取代熱重載測試結果。

  • 熱重載無法挑選某些類型的編輯,在這些情況下,它會預設回執行完整組建的舊行為。 另請注意,只會追蹤 Visual Studio 中的變更,編輯器中的不透明案例(例如變更目標)可能會預設為需要完整組建。

  • 某些大型變更 (例如重新命名 1000 + 方法名稱) 可能需要較長的時間才能進行熱重載,而不只是重新建立。 在這些情況下,輸出中會顯示一則訊息,提示使用者進行完整重建,而不是等待熱重載。

  • 測試瀏覽器中的熱重載還無法使用堆疊追蹤。 如果您需要使用堆疊追蹤,我們建議您執行完整組建。


17.0.0-2.1 Visual Studio 2022 17.0 版 Preview 2。1

于2021年7月22日發行

這一版的 Visual Studio 2022 17.0 版 Preview 2.1 的新功能摘要

  • 修正啟動或關閉效能分析工具或診斷工具,或開啟或關閉 Project 總覽頁面時可能發生的損毀。
  • 修正卸載英文語言套件時的授權損毀。
  • 修正了檔索引標籤卡在配置迴圈中的問題。

17.0.0-2.0 版 Visual Studio 2022 17.0 版 Preview 2

于2021年7月14日發行

這一版 Visual Studio 2022 17.0 版 Preview 2 的新功能摘要

C++

  • 您現在可以在 WSL2 上以原生方式建立和偵測,而不需要建立 SSH 連接。 支援跨平臺 CMake 專案和以 MSBuild 為基礎的 Linux 專案。
  • v143 build tools 現在可透過 Visual Studio 安裝程式和獨立組建工具取得。
  • Visual Studio 現在支援 buildPresets.targets CMakePresets.js開啟的選項。 這可讓您在 CMake 專案中建立目標的子集。
  • CMake 專案中的 [Project] 功能表已簡化,而且會顯示 [刪除快取並重新設定] 和 [View Cache] 的選項。
  • 程式碼分析現在會強制執行以 or 批註之函式的傳回值 _Check_return_ _Must_inspect_result_
  • Visual Studio 隨附的 LLVM 工具已升級為 LLVM 12。 如需詳細資訊,請參閱 LLVM 版本 資訊。
  • Clang-cl 支援已更新為 LLVM 12。
  • C++ AMP 標頭現在已被取代。 < > 在 c + + 專案中包含 amp 將會產生組建錯誤。 若要解除回應錯誤,請定義 _SILENCE_AMP_DEPRECATION_WARNINGS 。 如需詳細資訊,請參閱 [我們的 AMP 取代連結] https://aka.ms/amp_deprecate
  • 原生 c + + 應用程式在偵錯工具下執行時,現在已可使用新的熱重新載入體驗。 如需詳細資訊,請參閱下面的 熱重新載入一節

& 診斷的偵錯工具

  • 附加至進程對話方塊改進
  • 例外狀況協助程式改進
  • 強制執行以按一下
  • 記憶體傾印診斷分析

.NET 生產力

  • 引進參數重構可將新參數從方法的執行移至其呼叫端。
  • 追蹤資料流程分析的價值來源
  • 用來將已重新指派之變數加底線的選項
  • 在 [產生覆寫] 對話方塊中新增搜尋選項
  • XML 標記的快速資訊 <code> 現在會保留空白字元和 CDATA 區塊
  • [尋找所有參考] 視窗現在會將多目標專案分組
  • 重構以移除 Visual Basic 中的重複類型
  • 移至 [執行] 將不會再流覽至也會覆寫之抽象宣告的成員。

Razor (ASP.NET Core) 編輯器

  • Razor 檔案中的熱重新載入支援
  • 效能改善
  • 格式化和縮排增強功能
  • 新的 Razor 編輯器色彩
  • microsoft.aspnetcore.mvc.taghelpers 現在已以色彩標示,且有快速諮詢分類支援和完成工具提示

  • Razor 結構的角括弧反白顯示和導覽
  • 批註現在具有自動完成、智慧縮排、自動包含批註接續,以及封鎖批註導覽

熱重新載入

  • 適用于 .NET 和 c + + 程式) 代碼的熱重新載入 (,可讓您對執行中的應用程式進行許多類型的程式碼編輯,並套用它們,而不需要使用類似中斷點的專案來暫停應用程式執行。 在此版本中,我們將持續改進這項功能,重點包括:在沒有偵錯工具的情況下執行 c + +、.NET 熱重新載入 (CTRL-F5) 、支援更多編輯的類型等等。

信任的位置

  • 我們已改頭換面「信任設定」功能,而且只要在未受信任的程式碼 (,例如檔案、專案或資料夾) 即將在 IDE 中開啟時,就會顯示警告。

XAML 即時預覽

  • XAML 即時預覽現在可供 WPF 開發人員作為這項新體驗的第一份預覽。 有了即時預覽功能,我們就能讓您捕獲傳統型應用程式 UI,並將它帶入 Visual Studio 內的停駐視窗,讓您更輕鬆地使用 XAML 熱重新載入來變更應用程式,並在您進行變更時輕鬆看到變更。 這項功能可改善單一螢幕裝置上的 XAML 熱重新載入體驗,同時讓您可以使用深度縮放、尺規、元素選取和資訊提示等工具來將應用程式 UI 優化。

遠端測試

  • 在遠端環境(例如 linux 容器、WSL 和 SSH 連線)上啟用執行測試 的早期實驗 預覽。

消費者介面

  • 預設圖示已更新並重新整理。

Azure 雲端服務

  • 現在支援) 專案的 azure 雲端服務 (傳統) 和 Azure 雲端服務 (延伸支援。

JavaScript/TypeScript

  • 我們發行了新的 JavaScript/TypeScript 專案類型,可使用額外的工具來建立獨立的 JavaScript/TypeScript 專案。 您將可以使用安裝在電腦上的 framework 版本,在 Visual Studio 中建立 Angular 和 React 專案。
  • JavaScript 和 TypeScript 測試現在可在 Visual Studio Test Explorer 中使用

XAML 範例資料

  • 從 WPF 應用程式的 [工具箱] 中建立 DataGrid、ListBox 和 ListView 控制項時,預設會新增 Design-Time 範例資料。 若要停用此行為,請在 [工具-> 選項-> XAML 設計工具] 下取消核取 [在建立專案時自動新增範例資料]。
  • 若要深入瞭解範例資料,請造訪 範例資料檔案集。

說明功能表

在17.0 期間,我們已改建年份 [說明] 功能表! 更新的功能表強調入門的材質和實用的提示/Tricks。 此外,它也會藉由新增諸如存取開發人員社群、版本資訊、Visual Studio 產品藍圖和社交媒體頁面等專案,提供更多與開發小組的合作。 我們想要讓開發人員充分利用他們的訂用帳戶,以便透過新的 [我的訂閱] 功能表項目來查看您的訂用帳戶權益和其他詳細資料!

此版本中已解決的問題

  • 修正在使用 IIS Express 執行 ReactRedux 時,無法載入網站的問題。
  • 修正造成錯誤訊息的問題:「無法攔截的 ReferenceError:未定義 notifyHotReloadApplied」。
  • 修正使用 Ctrl + F5 時,無法連接到 6.0 signalR 專案的伺服器。
  • 修正了包含搜尋順序在「包含目錄」前置詞時可能不正確的問題。
  • 固定資料庫 Project:將檔案從 [方案 explorer] 拖曳至開啟的檔案時,會從檔案系統中刪除該檔案!

開發人員社群的前投票問題

Visual Studio 2022 Preview 2 的新功能詳細資料

& 診斷的偵錯工具

  • 附加至進程對話方塊改進
  • 新的父/子進程清單視圖(在視窗底部切換)
    • 應保存視圖的選取專案。
    • 鍵盤中的左按鍵會流覽至父/子視圖中的父進程。
    • 所有資料行都應可排序,如同原始的視圖。
  • 這兩個視圖都有新的命令列資料行可供使用。
  • 應用程式集區名稱會顯示在 w3wp.exe 流程的 "Title column" 中

![附加至處理序 ](media/17.0/17.0_P2_attach_to _process_3.png)

  • 已在 catch 區塊中新增例外狀況協助程式。 當 managed 步驟造成擲回例外狀況,且步驟在 catch 區塊中完成時,這會顯示例外狀況協助程式與相關的例外狀況資訊。
  • 新的 [繼續] 按鈕:顯示「攔截」例外狀況的例外狀況協助程式。

例外狀況處理常式更新

  • 我們新增了強制執行按一下的選項,將會執行偵錯工具,直到到達選取的資料指標位置,同時忽略之間的所有中斷點。
  • 若要執行這項操作,請在所需的程式程式碼上按一下滑鼠右鍵功能表中的 [強制執行以按一下]。

強制執行至資料指標

  • 當應用程式處於 [偵測] 模式時,您也可以在按住 SHIFT 鍵時,按一下出現在程式程式碼旁邊的綠色圖像,以執行「強制執行以按一下」。

強制執行至游標字元

  • 記憶體傾印診斷分析
    • 我們已改善分析器引擎,以在 ASP.NET Core 記憶體傾印中尋找更多的同步處理問題。
    • 藉由依 CPU 時間檢查前5個執行緒,以找出程式碼中的哪些部分耗用最多 CPU 資源。
    • 檢查整個 managed 堆積,以瞭解層代0、1、2和大型物件堆積中的記憶體壓力的徵兆。
    • 如果您有損毀傾印,您可以 quckly 找出導致應用程式損毀的第二個機會例外狀況和執行緒。
    • 想要構成診斷假設嗎? 當損毀或停止回應的確切原因不是已知時,您可以使用例外狀況分析器來快速尋找並檢查堆積上的所有例外狀況。
    • 在記憶體分析很重要的時候,我們已改善完成項佇列分析器的啟發學習法。 我們現在將焦點放在您的程式碼,並排除 .NET framework 所管理的物件。

.NET 生產力

  • 現在有一個重構,它引進了一個參數,它會藉由加入新的參數,將運算式從方法執行移至其呼叫端。 將游標放在包含運算式的行上,或反白顯示運算式。 按 (Ctrl +. ) 以觸發 [ 快速動作與重構 ] 功能表。 選取 [引進 { } 0 的參數] 或 [為所有出現的 { 0 } 引進參數]。 這兩個選項都有三個飛出視窗選項可 (1) 將更新的運算式插入所有呼叫位置, (2) 解壓縮並建立傳回運算式的新方法,並在呼叫位置加入引數,或 (3) 建立包含運算式的方法多載,並在原始方法上呼叫。

從 [快速動作] 功能表引入參數

  • 有一個新的命令稱為「追蹤值來源」,可讓您執行資料流程分析,以判斷特定值可能在某個時間點傳遞的位置,以及可能傳遞的位置。 在任何指定的成員上按一下滑鼠右鍵,然後從右鍵功能表中選取 [追蹤值來源]。

以滑鼠右鍵按一下滑鼠右鍵功能表中的 [追蹤值來源]

  • [值追蹤] 視窗隨即開啟,讓您分析結果:

追蹤值來源視窗

  • 我們新增了一個選項,以將重新指派的變數加上底線。 此選項預設為關閉,因此您必須在工具 > 選項 > 文字編輯器 > c # 或基本 > Advanced,然後選取底線重新指派變數來啟用它。

在編輯器中將重新指派的變數加底線

  • 我們在 [產生覆寫] 對話方塊中新增了搜尋選項,可讓您快速搜尋並選取要覆寫的成員。

[產生覆寫] 對話方塊中的搜尋

  • XML 標記的快速諮詢 <code> 現在可保留空白字元和 CDATA 區塊。 將游標停留在專案上。 快速諮詢接著會在程式碼上方顯示來自 XML 註解的支援樣式。

XML 的快速資訊保留空白字元

  • [尋找所有參考] 視窗現在會將多目標專案分組,以協助減少視覺雜訊。

尋找所有參考群組的多重目標專案

  • 現在有一個重構會移除 Visual Basic 中的重複類型。
  • 移至 [執行] 將不會再流覽至也會覆寫之抽象宣告的成員。

Razor (ASP.NET Core) 編輯器

  • Razor 檔案現在有熱重新載入支援。

在 Razor 檔案中重載支援

  • 我們對 Razor 編輯器的效能進行了大幅改善。

  • 我們增強了格式和縮排,讓它更可靠且更快速。

  • 我們新增了 Razor 色彩! 您可以在 [工具] > 選項 > 環境中,> 字型和色彩來自訂這些色彩。

  • microsoft.aspnetcore.mvc.taghelpers 現在已以色彩標示,且在快速諮詢和 IntelliSense 完成工具提示中有分類支援。

>microsoft.aspnetcore.mvc.taghelpers 分類支援

  • 我們已增強 Razor 結構的角度分支醒目提示和導覽。

  • 批註現在具有自動完成、智慧縮排、自動包含批註接續,以及封鎖批註導覽。

熱重新載入

在此版本中,我們將繼續改善新熱重新載入體驗的功能,以及基礎的編輯與繼續機制和偵錯工具。

新功能:

  • 使用偵錯工具時的 c + + 應用程式支援: 現在您可以使用 [套用程式碼變更] 按鈕,在偵錯工具下執行 (F5) 來熱重新載入原生 c + + 應用程式。 這項體驗是由原生編輯後繼續提供,如需支援的編輯,請參閱我們的

  • 沒有偵錯工具的情況下執行時支援 .net 熱重新載入 (CTRL-F5):在第一個預覽中,我們已啟用在偵錯工具下執行 .net 6 應用程式時可使用的 .net 熱重新載入 (F5) 。 在此版本中,我們現在也開始支援在沒有偵錯工具的情況下,透過 CTRL F5 機制來啟動您的應用程式,同時仍會保留支援,以在應用程式執行時套用變更。 這項功能現在適用于 Windows Forms、WPF、主控台、ASP.NET Core 和 Blazor Server 應用程式。 目前,其他應用程式類型無法運作或可能不穩定,因此我們將在未來的版本中持續改善此體驗。

  • 支援的編輯:在此版本中,我們也新增了對熱重新載入和編輯後繼續體驗的其他編輯類型支援。 包括下列改進:

    • ( 編輯 Razor 檔案的有限支援。目前只有 Razor 檔案)
    • 新增、更新或刪除自訂屬性
    • 新增或更新記錄結構
    • 編輯 Switch 運算式
    • 使用 #line 指示詞編輯檔案,包括指示詞本身的變更
  • 使用多個進程熱重新載入和編輯後繼續:現在可以在附加至多個進程時,可靠地使用熱重新載入和編輯後繼續的體驗。 先前未完全支援這項功能,而且不一定會正常運作,現在已經更正過了。

信任的位置

  • 在「信任設定」改造中,我們移除了「web 標記」檢查,並新增了在嘗試開啟先前未受信任之程式碼 ((例如檔案、專案或) 資料夾)時所顯示的警告對話方塊。
  • 程式碼現在可以在資料夾或存放庫層級進行信任 (同時顯示為警告對話方塊中的選項,存放庫擁有者尚未完全執行)
  • 雖然這項功能目前預設為關閉,但您可以透過 > Trust 設定 > 強制信任原則的選項來啟用它。

XAML 即時預覽

XAML 即時預覽現在可供 WPF 開發人員作為這項新體驗的第一份預覽。 有了即時預覽功能,我們就能抓住桌面應用程式 UI,並將它帶入 Visual Studio 內的停駐視窗,讓您更輕鬆地使用 XAML 熱重新載入來變更應用程式,並在您進行變更時,輕鬆地即時變更這些變更。

XAML 桌面應用程式 UI 的即時預覽

開始進行之前:

  • 請確定已啟用 > > 預覽功能的工具 > XAML 即時預覽 (預設) 。
  • 一旦啟用之後,您現在可以透過 > Windows > XAML 即時 (預覽中的功能表 Debug 來使用視窗,也可以使用 [搜尋],直接輸入「xaml 即時預覽」 )

接下來,執行您的應用程式,並使用即時預覽 UI 來選取要捕捉的視窗。 只有當您有多個視窗時,才需要這項功能,否則您的主視窗將會自動捕捉。

一旦啟動體驗,將可使用下列功能:

  • 滾動和縮放: 您可以移動和縮放視窗來捕捉您的應用程式 UI,如此可讓您符合您的需求,以顯示完整的應用程式,或只顯示您嘗試編輯的部分。 移動流覽和滾動可搭配觸控板 (兩個手指滾動) 、滑鼠滾輪或 CTRL + 按一下以拖曳內容。
  • 尺規: 您可以新增一或多個水準/垂直尺規,以重迭執行中的應用程式。 然後可以使用滑鼠或鍵盤將這些行移至位置。 使用鍵盤移動尺規時,請使用方向鍵進行精確定位和 Ctrl + 方向鍵,以進行快速定位。 您也可以藉由選取尺規 () ,然後按下 delete 鍵來刪除尺規。
  • 專案選取 & 資訊提示: 使用專案選取時,您可以使用您從 [即時視覺化樹狀結構] 或應用程式內工具列所用的相同功能,來選取您想要編輯的 XAML 元素。 一旦選取之後,您也可以啟用新的 [資訊提示] 功能,以取得所選元素的其他相關資訊,例如字型、色彩、邊界/填補資訊等等。 使用專案選取專案時,請考慮啟用 [預覽選取專案]-透過 [即時視覺化樹狀] 工具列按鈕或 Debug > 選項 > 熱重新載入設定-移至來源 XAML。
  • Windows 切換: 您可以控制所要捕獲的應用程式視窗。

在第一個預覽版本中,這項功能僅適用于 WPF 應用程式,我們正致力於在未來擴充對其他應用程式類型的支援。

遠端測試提早實驗預覽

我們有 非常 早期的實驗性預覽,可讓您在遠端環境(例如 linux 容器、WSL 和 SSH 連線)上執行測試。 雖然這是非常有價值的功能,但我們會要求您耐心等候,因為這項功能在收集意見反應時仍處於非常早期的實驗性狀態。 您可能不會遇到通常會得到的流暢程度,因為您可能會想像有許多角落的案例,讓我們可以從 Visual Studio 傳達和管理已連線的環境。 以下是使用此實驗性版本的遠端測試的一些需求:

  • 您必須在目標環境中安裝必要的相依性。 這表示,如果您想要將目標設為 .NET 3.1 的測試在 linux 容器中執行,您必須確定容器已透過您的 Dockerfile 安裝 .NET 3.1。 在未來,我們會想要建立可讓您順利取得任何測試相依性的安裝體驗,但現在我們會將環境的大量布建保留給使用者的規格。
  • 規劃透過 [輸出 >測試] 窗格,監視遠端環境的連接狀態。 例如,如果容器已停止,訊息會出現在 [輸出 >測試] 窗格中。 我們可能不會偵測到所有案例,如果您的輸出似乎已遺失,請規劃檢查您的輸出。 尤其是當輸出窗格未設定為「測試」時,您可能不會立即看到訊息。 當連線中斷時,我們仍會試驗最佳的通知模型,因此歡迎您提供意見反應! 如果出現連接遺失的情況,您可以在測試瀏覽器中使用 [遠端測試環境] 下拉式清單,將連接設定回本機環境,然後再次選取遠端環境以重新起始連接。
  • 實驗性預覽的範圍僅限於目前的 .NET 測試。 我們注意到 支援 c + + 遠端測試體驗 ,而且我們希望最後也提供這項功能。

如何試用遠端測試?

  • 官方檔將在實驗期之後送達。 現在,您必須從這裡開始測試。
  • 您可以使用方案根目錄中的來指定環境 testenvironments.json 。 Json 檔案結構遵循下列架構:
{
    "version": "1", // value must be 1
    "environments": [
        { "name": "<unique name>", ... },
        ...
    ]
}
  • 本機容器連接
    • 若要連接到本機上執行的容器,您必須在本機電腦上擁有 Docker Desktop 。 (選擇性) 啟用 WSL2 整合 以獲得更好的效能。
    • 針對 Dockerfile,您可以在 testEnvironments.json 解決方案的根目錄中指定環境:
          {
          "name": "<name>",
          "localRoot": "<path to local environment>", // optional
          "type": "docker",
          "dockerImage": "<docker image tag>",
          }
      
      例如:
      {
      "version": "1",
      "environments": [
          {
          "name": "linux dotnet-core-sdk-3.1",
          "type": "docker",
          "dockerImage": "testenv"
          }
      ]
      }
      
    • 以下是執行以 .NET 3.1 為目標之測試的 Dockerfile 範例。
      FROM mcr.microsoft.com/dotnet/core/sdk:3.1
      
    • 使用下列命令來建立容器 (在結尾) 包含 ".": docker build -t <docker image name> -f <path to Dockerfile> .
  • 本機 WSL2 連接
    • 您必須在本機電腦上 啟用 WSL2 整合
    • 您可以在 testEnvironments.json 解決方案的根目錄中,以下列架構指定環境:
      {
      "version": "1",
      "environments": [
          {
          "name": "WSL-Ubuntu",
          "type": "wsl",
          "wslDistribution": "Ubuntu"
          }
      ]
      }
      
  • SSH 連線
    • 移至 [工具 > 選項 > 跨平臺] > 連線管理員以新增或移除 SSH 連接。 選取 [新增] 可讓您輸入主機名稱、埠,以及您所需的任何認證。
    • testEnvironments.json您可以使用下列程式,在您解決方案的根目錄中指定環境:
      {
      "version": "1",
      "environments": [
          {
          "name": "ssh-remote",
          "type": "ssh",
          "remoteUri": "ssh://user@hostname:22"
          }
      ]
      }
      
  • 使用中的環境是透過 [Test Explorer] 工具列中的下拉式清單選取。 目前每次只能有一個測試環境處於作用中狀態。

Test Explorer 中的遠端測試環境下拉式清單

  • 一旦選取環境,就會在新的 environmentt 中探索和執行測試。

在遠端環境中探索和執行測試

  • 您現在可以在遠端環境內執行測試! (在遠端環境中調試測試的能力即將推出! )

    在測試瀏覽器中從遠端環境視圖測試結果

  • 測試 Explorer 可能會提示您安裝一些缺少的環境必要條件,並嘗試安裝它們,但最後,我們會將遠端環境的大量布建保留給使用者的規格。

更新和重新整理的圖示

  • 為了重新整理 Visual Studio 2022 的使用者介面,您可以根據一致性、可讀性和熟悉度,在整個 IDE 中找到新重新整理和更新的圖示。

具有深色和淺色背景的新圖示範例


17.0.0-v1.1 Visual Studio 2022 17.0 版 Preview 1。1

2021年6月24日發行

此版本中已解決的問題

  • 修正導致 Test Explorer 執行速度很慢的問題。

開發人員社群的問題


17.0.0-1.0 版 Visual Studio 2022 17.0 版 Preview 1

2021年6月17日發行

這一版 Visual Studio 2022 17.0 版 Preview 1 的新功能摘要

64 位元

  • devenv.exe 現在僅限64位

IntelliCode

  • 整行自動完成

.NET 6 SDK

  • .net 6 SDK (preview) 隨附于 Visual Studio 2022
  • 此版本具有 .NET MAUI 專案的基本支援。 暫時您必須從 .NET 6 個別安裝 .NET MAUI 工作負載。 如需詳細資訊,請參閱.NET MAUI 安裝檔

Git 工具

  • 已移除還原至 Team Explorer Git UI 的能力,讓 新的 git 體驗 成為唯一可用的內建工具。
  • 已移除從 Visual Studio 安裝程式安裝 GitHub 擴充功能的選項。

測試控管支援

  • 從17.0 開始的新測試平臺版本將無法執行一般測試和已排序的測試。 這些特定功能只隨附于 MSTestv1 早期版本的一部分,並不包含在 MSTestv2 中。 我們會發現這些功能的使用量非常低,而已排序的測試現在會被視為與最佳測試實務相反。
  • 有些測試體驗將無法在 17.0 Preview 1 中使用,包括建立新的 .Testsettings 檔案和 .Testsettings 編輯器。 測試回合仍能使用 .Testsettings 檔案,不過 .Testsettings 已取代為 .Runsettings,我們鼓勵使用者遷移改良的效能和功能。 閱讀其他資訊
  • 自動程式代碼 UI 測試和[Web 負載測試](Cloud-based load testing service end of life | Azure DevOps Blog (microsoft.com))支援將不會在 17.0 preview 1 中抵達,因為我們仍在努力將這些體驗移植到 Visual Studio 2022。 我們建議您在後續的預覽中支援它們,但強烈建議使用者移出自動程式碼 UI 測試和 Web 負載測試。 這些技術在2019中已正式淘汰,而且我們會在可以將對使用者的影響降到最低時,規劃將這些技術從產品中移除。

Web 工具

  • [發行摘要] 頁面現在具有可在 ' ... ' 下啟動/停止遠端偵錯程式和分析的動作[裝載] 區段右上角的功能表
  • 已連線的服務] 頁面現在會有啟動的動作儲存體總管
  • .net 6 隨附的「ASP.NET Core 空白」範本,是使用我們已開始新增支援的新「最基本 api 」範例

擴充性

  • VS SDK 包含數項重大變更,Visual Studio 2019 擴充功能將無法在2022中運作。 如需詳細資訊,請參閱 VSSDK 檔
  • VS SDK 參考元件不再安裝到 VSSDK\VisualStudioIntegration\Common\Assemblies 資料夾。 如果您的組建依賴這些元件,請改為使用 NuGet 套件來遷移您的專案。 針對離線案例:
    1. 保留要從中還原 nuget 套件的組織內 nuget 摘要。
    2. 簽入二進位檔。

熱重新載入

當您使用偵錯工具來執行應用程式時,.net 熱重新載入現在可在 Visual Studio 2022 中使用, (F5) 透過新的 [套用程式碼變更] 按鈕。 有了熱重新載入,您就可以編輯執行中的應用程式程式碼檔案,而且在許多情況下,請套用這些程式碼變更,而不需要先暫停應用程式執行, (之前) 的 [編輯後繼續] 功能。 有了熱重新載入我們的目標是讓您在編輯之間盡可能減少應用程式重新開機次數,藉由減少在您繼續建立應用程式時花費在建立/重新開機應用程式的時間,讓您更具生產力。

若要深入瞭解熱重新載入的詳細資訊,請參閱 .NET Blog 上的 最新的 blog 文章

適用于 .NET Framework 的新 WPF XAML 設計工具

適用于 .NET Framework 的目前 wpf XAML 設計工具會根據用於適用于 .net 的 wpf XAML 設計工具 ( .net Core) 的相同架構,以 .NET Framework 的新 wpf XAML 設計工具取代。

Visual Studio 體驗看起來會相同,但協力廠商控制廠商必須支援新的擴充性模型,因為先前以和為基礎的模型 .design.dll Microsoft.Windows.Design.Extensibility 已被取代。 如果您已建立 .designtools.dll .net ( .Net Core) 的擴充功能,該相同的延伸模組將適用于 .NET Framework 的新 WPF XAML 設計工具。

如需如何遷移至新的擴充性模型的進一步資訊,請參閱下面的 遷移檔

功能尚未提供

在 Visual Studio 2022 的 Preview 1 版本中,有數個功能尚未遷移至64位,而且尚未處於預覽階段。 我們計畫在未來的更新中包含這些功能,而且它們不會從 Visual Studio 中移除。

  • Web 即時預覽
  • 檢測 profiler
  • Azure 雲端服務專案支援
  • T SQL 偵錯工具
  • Web 負載測試和 TestController/TestAgent
  • Azure DataLake
  • 自動程式化 UI 測試
  • DotFuscator
  • Incredibuild IDE 整合
  • IntelliCode 尋找和取代(依範例)

此版本中已解決的問題

開發人員社群的問題


已知問題

遵循下列連結,以查看 Visual Studio 2022 中的所有開啟問題和可用因應措施。


意見反應與建議

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


部落格

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


Visual Studio 2022 版本資訊歷程記錄

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


頁首