Visual Studio 2019 v16.10 和 v16.11 Preview 1 現已推出!

MicrosoftReactor發表於2021-06-27

Visual Studio 2019 v16.10有什麼新功能?

我們很高興地宣佈Visual Studio 2019 v16.10 GA 和 v16.11 preview 1釋出。此版本使我們的主題“開發者生產力和便利性”普遍適用於 Visual Studio 使用者!我們新增了c++ 20特性、優化的Git整合、分析工具,以及許多提高開發效率的特性。

下載最新的Visual Studio版本以嘗試16.10中的新特性。一如既往,我們希望您通過我們的開發者社群提供反饋和互動。
安裝visual studio 2019 v16.10

C++

我們的編譯器和 STL 現在功能完備,適用於最新可用的C++20 標準!16.10帶來了一些備受期待的特性:日曆、時區和 。這些特性都可以在/std:c++latest開關下使用。不過/std:c++20開關還不可用,因為一些特性預期將在缺陷報告(ISO c++20 bug修復)中以ABI不相容的方式進行修正(更多細節請參閱Microsoft/STL Issue #1814)。
是一種新的基於 fmtlib 的文字格式工具。 它為 iostreams 和 printf 系列提供了一種快速且安全的替代方案:

auto version = 20;
std::format(“STL is now C++{} feature-complete!”, version);

日曆和時區是對現有工具的擴充套件。它們提供了一種型別安全和時區感知的方式,來表示和操控日期和時間。

std::chrono::year_month_day world_bee_day = May/20d/2021y
std::format("Buzz buzz on %F!”, world_bee_day);

此外,我們還改進了模組、範圍和概念的智慧感知體驗。“轉到定義”既適用於模組本身,也適用於從模組中匯入的定義。對於編譯器來說,編譯器進入範圍是出了名的困難,但是智慧感知現在可以為你做這件事。另外,定義的概念名稱會自動補全。

Visual Studio 現在具有範圍的補全.gif

現在,除了x64之外, x86和ARM64也支援 LLVM OpenMP 執行時。通過/openmp:llvm開關來指向它。
如果你想使用c++ 20-style的協程,但目標是c++ 11或c++ 14,你現在可以使用/await:strict開關來獲得想要的行為。
我們改進了協程的除錯和視覺化。特別是,std::coroutine_handle的視覺化現在顯示了原始的協程函式名和簽名以及當前掛起點。

協程除錯和視覺化已得到改進.png

如果你正在使用我們的CMake支援,那麼你現在可以使用CMakePresets來指定配置,而不是使用cmakessetting .json。這種格式在Visual Studio、Visual Studio Code和任何其他支援這種新標準的工具之間是一致的。

Git生產力

狀態列有一個新的分支選擇器,允許您篩選本地和遠端分支,並從右鍵單擊快捷選單執行常規操作。

狀態列中的分支選擇器.png

現在,當您單獨選擇一個分支時,狀態列中的分支選擇器以及Git Changes視窗將遷到本地或遠端分支。

左擊以檢出一個分支,右擊以獲得其他操作.png

從狀態列儲存庫選擇器中篩選和切換本地Git儲存庫。右鍵單擊快捷選單可以從列表中刪除專案。

通過上下文選單從儲存庫選擇器列表中刪除項.png

在狀態列點選未push的提交按鈕,並在Git選單同步命令,同步(pull和push) 你的分支到遠端。

同步按鈕在狀態列.png

即使沒有傳入的提交,也可以從Git Repository視窗歷史窗格中獲取和pull。從狀態列或鍵盤快捷鍵Ctrl+0+Y訪問這些部分。

進入部分在Git Repository視窗與調出取和拉按鈕.png

在Git Repository視窗中選擇一個提交,可以檢視它的詳細資訊和檔案更改的比較,而不必導航到其他視窗。選擇兩個提交併右鍵單擊從而在同一個視窗中比較它們。將細節彈出到它們自己的視窗中全屏顯示,從而深入瞭解更改。

在Git Repository視窗中嵌入提交細節和檔案比較.png

檢視檔案中刪除和插入的次數,並更改比較的佈局。

彈出多個提交視窗.png

現在,您可以從Git Changes視窗執行更多操作。工具欄圖示是可定製的,您可以選擇顯示哪些操作。您可以從延伸選單與多個遠端同步。也可以在瀏覽器中開啟儲存庫的遠端網頁。

Git 更改溢位選單,標註同步、在瀏覽器中開啟和工具欄操作.png

開啟Azure DevOps Git庫時,自動重新連線或提示建立初始的Azure DevOps連線。這允許訪問開啟的儲存庫中的工作項和構建。

當缺少Azure DevOps初始連線時,提示資訊欄.png

當解決重建或合併衝突時,合併編輯器和快捷選單將顯示當前和傳入分支的分支名稱。這修復了混淆源和目標術語的問題。

快捷選單在解決衝突時顯示分支名稱.png

“重建”和“合併”編輯器在標題中顯示分支名稱.png

我們新增了選單項,這些選單項是PR建立和列表頁面的快捷方式,使建立和檢視pull請求變得更容易。選單是動態的,基於你的儲存庫是在GitHub還是Azure DevOps上。

從Git選單中建立一個PR並檢視web上的PR列表.png

Git 設定

我們在Git > Settings中新增了一些新選項來管理開啟和切換儲存庫。現在,在切換到另一個儲存庫時,可以保持當前解決方案為開啟狀態。

設定以保持當前解決方案處於開啟狀態.png

您還可以選擇在開啟儲存庫時不載入儲存庫根資料夾。這將使解決方案資源管理器為空,您將不會得到解決方案列表。

設定開啟資料夾.png

但是,如果您選擇開啟根資料夾,Visual Studio將不再自動載入解決方案。相反,您將在一個列表中看到可用的資料夾檢視和解決方案。你可以通過Git > Settings切換核取方塊來改變這個行為。

設定為切換解決方案資源管理器的自動導航.png

通過雙擊分支名稱,您可以選擇從Git Repository視窗遷出分支。如果你想改變這個行為,那麼在Git > Settings中切換核取方塊。

切換自動sln載入和分支遷出的設定.png

效能剖析器

Performance Profiler的啟動頁面現在有一些連結,可以幫助使用者找到線上文件,詳細介紹如何使用這些工具以及我們的工具箱視訊系列。您可以使用它們來了解更多關於這些工具的資訊,並瞭解如何更好地識別程式碼中的區域以進行優化和驗證更改。

圖形使用者介面,文字,應用程式,電子郵件描述自動生成.png

Performance Profiler 中的 .NET 物件分配工具是第一個過渡到我們新的分析引擎的工具,該引擎速度明顯更快並提供更多功能。在收集之後,得到結果並更快地構建呼叫樹(約增加40%)。我們現在還支援SourceLink來pull原始碼,因此您可以確切地看到程式碼分配的位置,即使它不在您的程式碼中。

圖形使用者介面描述自動生成.png

這需要對應程式碼的符號,可以從微軟符號伺服器下拉,從除錯>選項>符號來啟用它。

圖形使用者介面,文字,應用程式描述自動生成.png

容器

這個版本為Docker容器工具的使用者提供了一些激動人心的特性。您現在可以執行在組合檔案中定義的任何服務組合,並在容器視窗中享受改進的容器和映像管理。要了解更多資訊,請參閱我們16.10預覽版3部落格中的容器新特性公告。

.Net的生產力

我們的.net團隊為您帶來了幾個特性,以幫助您持續提高生產力。

我們增加了功能“刪除未使用的引用命令”。這個命令允許您清理未使用的專案引用和NuGet包。預設情況下,這個選項是關閉的,但是你可以在選單工具> Options > Text Editor > c# > Advanced下啟用它。在解決方案資源管理器(實驗)中選擇刪除未使用的引用命令。一旦啟用該選項,刪除未使用的引用命令將出現在專案名稱或依賴項節點的右鍵選單中。

刪除解決方案資源管理器中未使用的引用.png

刪除未使用的引用對話方塊.png

當您選擇刪除未使用的引用時,將會開啟一個對話方塊。然後,您可以檢視將要刪除的所有引用,但您也可以選擇保留您希望保留的任何引用。

智慧感知的完成

當已知型別時,即使沒有輸入Enum值,也會由Enum值的額外的智慧感知完成。我們還擴充套件了這個選項,包括強制轉換、索引器和操作符的完成。

列舉的智慧感知完成.png

現在有一個完成選項,可在編寫方法呼叫時自動插入引數。

在編寫方法呼叫時自動插入引數.png

這個特性預設是關閉的,所以你需要在工具>選項>文字編輯器> c# >智慧感知中啟用它,然後選擇Tab兩次插入引數(實驗)。

要使用這個特性,首先編寫一個方法呼叫,然後按兩次tab鍵(tab+tab)。注意,方法呼叫包含基於方法預設值的引數。使用引數資訊迴圈遍歷您希望通過按向上和向下方向鍵插入的引數列表。開始輸入一個引數來調出智慧感知完成列表並輸入分號,這會提交該引數並在方法呼叫的末尾新增一個分號。

視覺化和導航繼承鏈

現在,有一個視覺化表示功能,用於導航和檢查繼承。

導航繼承鏈的視覺化指示器.png

預設情況下,這個選項是關閉的,所以你需要在工具> Options > Text Editor > c# > Advanced中開啟它,然後選擇Show inheritance margin。啟用繼承邊距將在代表程式碼實現和重寫的邊距中新增新的圖示。
單擊繼承邊距圖示以顯示可以導航到的繼承選項。

通過單擊邊距圖示導航繼承鏈.png

測試資源管理器可訪問性改進

我們對Test Explorer做了一些更新,提高了鍵盤的可訪問性和測試細節視窗和日誌檔案的可用性。有關詳細資訊,請參見16.10 preview 3部落格中的測試體驗可訪問性改進

WinForms更新

我們已經重構了Visual Studio 16.10的行為服務。這使得.net Core 5和6的新WinForms設計器的效能得到了顯著的改進。這也修復了許多與選擇、拖放多個控制元件相關的問題。

XAML工具更新

我們不斷改進現有的特性並新增新特性,以使您在開發XAML UI時更有效率。

XAML設計器快速動作

現在,您可以通過使用為所選控制元件顯示的燈泡後面的彈出選單,快速更改控制元件的屬性。

XAML設計器中的快速操作.png

當您在XAML設計器中選擇一個控制元件時,您將看到一個燈泡。一旦單擊該控制元件,將顯示此特定控制元件最常用的屬性列表,從而節省您在屬性資源管理器中查詢這些屬性或在XAML編輯器中輸入程式碼的時間。

支援控制元件:

  • WPF: Border, Button, Canvas, CheckBox, ComboBox, Grid, Image, Label, ListBox, ListView, StackPanel, TextBlock, TextBox.。
  • UWP: Border, Button, Canvas, CheckBox, ComboBox, Grid, HyperlinkButton, Image, ListBox, ListView, NavigationView, RadioButton, Slider, StackPanel, TextBlock, TextBox.

這個特性適用於UWP、WPF Core和WPF Framework(啟用“New WPF XAML Designer for . NET Framework”特性標誌)。你也可以建立自己的動作,請參閱XAML Designer Extensibility GitHub瞭解更多。

XAML示例資料

通常,要檢視控制元件使用資料值的外觀,必須實現所有資料繫結,用值填充資料庫,並且需要執行應用程式。有了這個特性,你就可以在設計器中通過“假”資料看到控制元件的外觀。在ListBox、ListView或DataGrid上設定d:ItemSource='{d:SampleData}'。該控制元件將自動填充一個與您的datatemplate和BindingPaths匹配的“假”資料。這些資料顯示在設計器中,不會影響原始碼。
您可以使用ItemCount屬性更改生成的專案數量,例如:d:ItemSource='{d:SampleData ItemCount=3}',預設情況下它被設定為5。

Visual Studio 2019 v16.11 預覽版 1 中的新增功能

.NET 熱過載

在此版本中,我們很高興提供新的熱過載使用者體驗的第一個版本,可在編輯 WPF、Windows Forms、ASP.NET Core、控制檯等應用程式的程式碼檔案時使用。通過熱過載,您現在可以在執行時修改您的應用程式管理原始碼,無需暫停執行或使用斷點。 相反,只需進行受支援的更改並使用工具欄中的新的“應用程式碼更改”按鈕立即應用它們。

a-picture-containing-text-monitor-screenshot-in.gif
進行更改並熱載入WPF應用程式。

在Visual Studio的這次更新中,當你在偵錯程式(F5)下執行你的應用程式時,這個新體驗已經可以使用,它是由編輯和繼續(EnC)機制驅動的。. NET熱過載也可以與XAML熱過載一起工作,使得在桌面應用程式(如WPF或WinUI)中進行UI和程式碼後臺更改成為可能。

EnC和熱過載具有相同的限制,因此不是每種型別的編輯都被支援。支援或不支援的完整列表可以在我們的文件中找到。

熱過載現在也可以在.NET 6 Preview3或更高版本的CLI工具下使用,更多細節請參見.NET釋出的部落格。

這是我們旅程的開始, 在Visual Studio 2022和.未來的版本.NET 6+中,我們將尋求並進一步改善這種經驗,比如從Visual Studio使用熱過載啟動應用程式時沒有偵錯程式(CTRL-F5)時減少不受支援的編輯數量,允許編輯Razor頁面,支援熱過載和.NET MAUI應用程式等。如果您想了解關於我們對該技術的更多細節,請參閱我們在. net blog上發表的詳細博文。

我們真的希望你能在你的應用程式中嘗試熱過載,並通過Visual Studio的反饋特性提供反饋。

.NET MAUI

Visual Studio 16.11 Preview 1增加了對.NET MAUI的支援! .NET 多平臺應用程式UI (MAUI) 將於今年 11 月正式釋出,是為 iOS、Android、Windows 和 Mac 編寫跨平臺應用程式的最佳方式。.NET 6 Preview 4 今天釋出了新的 .NET MAUI 功能,包括單個專案改進、針對所有受支援平臺的能力以及 Blazor 混合桌面支援! Visual Studio 16.11 p1 允許您從 IDE 開啟、構建和除錯 .NET MAUI 應用程式,併為新的單一專案體系結構新增功能。 此外,您可以使用新專案配置嚮導來建立新的 .NET MAUI 應用程式!

.NET MAUI 演示應用程式 WeatherTwentyOne.png
.NET MAUI 演示應用程式 WeatherTwentyOne

使用 .NET MAUI 和 Visual Studio,您的解決方案中只需一個專案即可面向移動裝置和桌面。 影像、字型、應用程式資訊,甚至啟動畫面都可以在一個專案中定義,並在編譯時部署到每個平臺。 使用多目標,您可以在任何支援的平臺上進行除錯,而無需為不同的目標框架維護不同的專案。 要了解有關新的 .NET MAUI 單一專案架構的更多資訊,您可以觀看2021年5月的 Xamarin 社群站會

圖片32.png

使用 .NET MAUI 的單一專案架構從一個專案中定位 Android、iOS、Windows 和 Mac。
要立即試用 .NET MAUI,請下載 Visual Studio 16.11 並按照.NET MAUI 示例儲存庫中的說明安裝.NET 6預覽版 SDK!
有關詳細資訊,請參閱 .NET MAUI 預覽 4

安裝visual studio 2019 v16.11 preview 11

要體驗 Visual Studio 2019 必須提供的最新功能,請立即下載預覽版。 不要忘記在開發者社群上報告問題向我們提供反饋!同時也可以在微軟Q&A論壇上提問任何有關開發的問題。

相關文章