Visual Studio 2022 版本資訊
我們很高興地宣佈推出 Visual Studio 2022 v17.12。 此次更新的重點是為使用 .NET 9 專案和新的 AI 生產力功能的開發人員提供出色的體驗,並進行持續的全面改良。
功能
2024 年 11 月 12 日發行的 17.12 功能清單。
生產力
從錯誤清單複製 📣
從錯誤清單複製錯誤現在僅將描述而不是整個資料列複製到剪貼簿。
您會在錯誤清單中看到一個您不知道如何修正的錯誤。 因此,您可以選取它並按 Ctrl+C 來複製 Web 搜尋的描述。 將其貼上到搜尋引擎後,您會發現它複製了所有資料行標題和資料列值,而不僅僅是描述。 現在,您必須先刪除錯誤描述以外的所有內容,才能執行網頁搜尋。 這很麻煩,但現在我們有辦法修正!
當您使用 Ctrl+C 從 [錯誤清單] 複製錯誤時,只會將描述複製到剪貼簿。 這使得在線上搜尋有關錯誤的資訊或與他人分享變得更加容易。
您仍然可以以滑鼠右鍵按下錯誤並選取操作選單中的 [複製數據列],或按 Ctrl+Shift+C 來複製整個數據列。
如果您想要使用錯誤描述執行 Web 搜尋,只要按 Ctrl+F1 即可在線搜尋錯誤的相關信息。
📣請參閱功能票證 (英文) 以分享您的意見反應並繼續對話。
在程式碼搜尋中移至任一行 📣
在程式碼搜尋中,您現在可以瀏覽至目前文件或其他指定文件中的特定行。
有時您知道程式碼中的某一行有問題,並且希望快速解決它。 也許您被告知某些檔案的第 43 行擲回錯誤,或您想要進入特定檔案的底部。
程式碼搜尋 現在支援快速瀏覽至程式碼中的特定行。
開啟程式碼搜尋並使用冒號+行號移至目前文件中的一行。 例如,
:39
將瀏覽至使用中檔案中的第 39 行。您也可以使用檔案名稱+冒號+行號移至不同文件中的行。 例如,
Order:43
將瀏覽至 Order.cs 中的第 43 行。 如果您未指定確切的檔名,則搜尋會嘗試尋找最相符的檔名。📣請參閱功能票證 (英文) 以分享您的意見反應並繼續對話。
停駐程式碼搜尋視窗 📣
您可以透過停駐和自動隱藏等功能自由放置 [程式碼搜尋] 視窗。
如果您需要程式碼或功能搜尋不妨礙您,現在您可以更好地控制搜尋視窗的行為。
您現在可以停駐搜尋視窗,並使用它執行工具視窗動作,例如方案總管和及其他。
開啟程式碼搜尋或功能搜尋後,按一下右上方的方塊圖示,將其轉換為工具視窗。 您可以選擇將其停靠在其他位置、將其彈出、自動隱藏等。您可以透過按一下右上角的圖示來還原為可關閉的彈出視窗。
我們也已簡化並清除搜尋中的預覽體驗。 現在有一個按鈕,以眼睛圖示表示,用於開啟和關閉預覽。
預覽面板的位置也會根據搜尋視窗的維度進行調整。
📣請參閱功能票證 (英文) 以分享您的意見反應並繼續對話。
自訂摺疊文字指標 📣
在 Visual Studio 編輯器設定摺疊文字指標的自訂色彩。
您現在可以使用自訂摺疊文字指標的新選項進一步自訂編輯器體驗:
若要試用並個別設定自訂前景和背景色彩,請前往 [工具] > [選項]> [環境] > [字型和色彩]。
該位置有兩個新項目可供自訂:
- 折疊文字指示器 (折疊)
- 折疊的文字指示器 (展開)
您可以使用預先定義的色彩或自選的自訂色彩,分別設定摺疊和展開指標的色彩。
📣請參閱功能票證 (英文) 以分享您的意見反應並繼續對話。
重新整理尋找結果 📣
您現在可以重新整理之前的尋找結果,藉此取得最新的搜尋相符項目。
許多使用者告訴我們,重新開啟 [尋找] 視窗並執行一連串重新搜尋的動作才能取得更新結果,是一件很煩的事。 您可能只是重構了程式碼,想要確認所有內容都如期變更,或您提取了幾項近期的變更,因此需要近期的尋找作業反映這些更新。
您現在已可在完成 [在檔案中尋找] 後,選擇在視窗中 [重新整理尋找結果]。 您會取得更新的結果,不需要重新搜尋。
我們也重新設計了之前的 [重複尋找] 選項,讓它與 [重新整理] 有所區別。 它現在是以鉛筆圖示來表示 [修改尋找]。 此按鈕仍會重新開啟 [在檔案中尋找],並使用您在結果視窗的相同搜尋條件。
📣請參閱功能票證 (英文) 以分享您的意見反應並繼續對話。
增加水平捲軸空間 📣
您現在可以在 CodeLens 控制檔案層級指標的可見度。
Visual Studio 中具有水平捲軸的區域有時可能會變得相當雜亂。 我們預設關閉了 CodeLens 的檔案層級指標,讓您可以更輕鬆地讓畫面更整潔。
如果您要開啟此選項,您可以在 [工具] > [選項] > [文字編輯器] > [進階] 找到 [顯示檔案層級 CodeLens 指標] 選項。 對於在底部編輯器邊界具有檔案層級 CodeLens 控制項的檔案類型 (例如 XAML、HTML 和 CSS),此選項會影響可見度,但包含內嵌 CodeLens 的檔案則不受影響。
📣請參閱功能票證 (英文) 以分享您的意見反應並繼續對話。
儲存時執行非封鎖程式碼清除
現在起,儲存時如果程式碼清除正在執行,它會以非封鎖的方式運作,帶來更順暢的編碼體驗。
之前,在儲存時執行程式碼清除,您就無法在 IDE 執行任何動作。 我們現在增強了此功能,讓它以非封鎖方式運作。
清除程序會在背景執行,且可在您繼續輸入時自動取消,確保更流暢且更有回應的編碼體驗。
GitHub Copilot
詢問 GitHub 更多問題
搜尋 GitHub,從 Visual Studio 直接尋找認可、問題、提取要求、存放庫和主題。
您現在可以使用 GitHub Copilot Chat 來搜尋 GitHub,以尋找認可、問題、提取要求、存放庫和主題。
您可以提出問題,例如:
- @github 所有已開啟的 PR 都指派給我什麼?
- @github 指派給我的最新問題為何?
- @github 最新版本什麼時候?
- @github 顯示最近合併的 PR @davidfowl
此功能適用於所有 GitHub Copilot 使用者。 在 GitHub Copilot 檔中深入瞭解 可用的 GitHub 技能 。
重要
若要使用此功能,請務必啟動 GitHub Copilot
GitHub Copilot 的自定義指示
建立檔案,自動將資訊新增至您詢問 GitHub Copilot Chat 的所有問題。
透過 GitHub Copilot,您可以藉由提供內容,接收針對小組工作流程、慣用工具和項目細節量身打造的聊天回應。 您可以建立自動提供此資訊的檔案,而不是將這個內容詳細數據新增至每個聊天查詢。 雖然這個額外的內容不會出現在聊天中,但 GitHub Copilot 可以使用它,讓它產生更精確且相關的回應。
如何啟用自定義指示
- 透過 [工具>選項>][GitHub Copilot>] 啟用功能並核取 [預覽] 啟用從 .github>/copilot-instructions.md 檔案載入的自定義指示,並新增至要求。
- 在 .github 檔案內的存放庫根目錄中新增 copilot-instruction.md ,如果檔案不存在,請建立檔案。
重要
若要使用此功能,請務必啟動 GitHub Copilot
GitHub Copilot Chat 中的模型選取專案
GitHub Copilot 現在可讓您挑選模型。
OpenAI o1-preview 和 o1-mini 現在可供 Visual Studio 中 GitHub Copilot Chat 的所有使用者使用。
您現在可以先嘗試這些模型,方法是使用 o1-preview、o1-mini 或預設 GPT-4o 模型來提供 GitHub Copilot Chat。 透過可用的模型切換,您可以順暢地從說明 API 或產生基本程式代碼轉向製作複雜的演算法或偵錯邏輯錯誤。
請流覽 GitHub Changelog 以深入瞭解這項功能。
重要
若要使用此功能,請務必啟動 GitHub Copilot
增強的內容瞭解
GitHub Copilot 中的增強內容瞭解可提供更精確的回應。
GitHub Copilot 中的增強內容瞭解
GitHub Copilot 現在提供增強的內容理解,以提供更精確的回應。 透過此更新,GitHub Copilot 可以直覺地解譯程式代碼中的重要特性,並針對專案的獨特需求量身打造建議。 此更聰明的程式代碼協助方法旨在協助您更有效率地工作,而不需要頻繁的內容調整。
立即試用 GitHub Copilot!
重要
若要使用此功能,請務必啟動 GitHub Copilot
內容排除更新
內容排除現在支援子模組和巢狀存放庫。
我們已增強系統處理子模組和巢狀存放庫的方式,讓您更輕鬆地使用複雜的項目結構。
此外,我們新增了對非 Git 存放庫的支援,並擴充工作流程的彈性,並可讓您順暢地整合更廣泛的專案。
重要
若要使用此功能,請務必啟動 GitHub Copilot
AI 智慧變數檢查
使用整合式 AI 變數檢查優化您的偵錯工作流程。
使用 Visual Studio 中的 Ask GitHub Copilot,檢查和分析來自局部變數、自動變數和資料提示的值從未如此輕鬆。 只要以滑鼠右鍵按一下任何值,即可取得有關錯誤、非預期結果或異常的詳細 AI 導向深入解析,而不需要離開 IDE。
每當出現非預期的值時,此功能將在 IDE 中即時分析變數,從而大幅提升疑難排解的速度。
重要
若要使用此功能,請務必啟動 GitHub Copilot
AI 支援的 IEnumerable 可視化檢視
IEnumerable 視覺化檢視中 AI 支援的 LINQ 可編輯表示式。
我們透過 AI 的協助,增強了 IEnumerable 視覺化檢視中的可編輯運算式功能。 新的 Ask Copilot 功能可讓使用者直接在可編輯的運算式文字方塊中運用 AI 來製作複雜的 LINQ 運算式。
若要存取 GitHub Copilot 聊天,只要按一下可編輯運算式區段右下角的 GitHub Copilot 圖示即可。 您可透過聊天,取得範例的 LINQ 語法範本。 此外,您還可以使用自然語言來描述查詢,GitHub Copilot 會產生對應的 LINQ 查詢。 若要將 LINQ 查詢篩選條件套用至視覺化檢視,請在聊天中使用 [在視覺化檢視中顯示] 按鈕。
它會提供立即的意見反應和指引,讓建立複雜篩選條件和轉換的程序更直覺且更有效率。
重要
若要使用此功能,請務必啟動 GitHub Copilot
對 GitHub Copilot 測試進行偵錯
搭配 GitHub Copilot 使用偵錯測試,藉此協助偵錯失敗的測試。
需要協助對您失敗的單元測試進行偵錯。 現在 GitHub Copilot 可協助提供您偵錯計畫,並引導您完成失敗測試的偵錯,讓您更接近通過測試,您只需按一下 [測試總管] 中的 [使用 Copilot 進行偵錯] 按鈕即可。
啟動此功能之後,GitHub Copilot 會提供偵錯計劃、設定適當的斷點並監控變數,然後啟動偵錯工作階段。 達到斷點時,它會根據監控到的變數向 GitHub Copilot 提供值,並且判斷下個步驟,決定繼續偵錯或修正問題代碼。 您可以繼續此對話,直到通過測試為止。
重要
若要使用此功能,請務必啟動 GitHub Copilot
使用 GitHub Copilot 修正程式代碼 📣
GitHub Copilot 可協助您解決程式代碼問題。
GitHub Copilot 現在已整合到燈泡和錯誤清單中,為您提供程式碼問題的快速修正和深入解析。 無論您是以 C# 或 C++ 進行開發,這項功能都可協助您更有效率地了解和解決程式碼基底中的問題。
若要開始使用,僅需叫用燈泡,然後選取 [使用 Copilot 修正]。 這會啟動與 GitHub Copilot 的內嵌聊天,為您提供可用的修正程式。
您也可以從錯誤清單中選取 GitHub Copilot 圖示,以開啟聊天面板,您可以在其中找到針對手邊錯誤的詳細說明和解決方案。
GitHub Copilot 可利用 LLM 直接在燈泡和錯誤清單中提供實用的說明和修正程式,從而提升您的編碼體驗。
📣請參閱功能票證 (英文) 以分享您的意見反應並繼續對話。
重要
若要使用此功能,請務必啟動 GitHub Copilot
適用於 C 的更佳 AI 完成#
GitHub Copilot 引進相關原始程序檔的其他內容,以改善 C# 的完成。
GitHub Copilot 程式碼完成會在您編寫程式碼時提供內嵌的自動完成建議。 這些建議是根據您目前使用中檔案的內容,以及編輯器內的任何其他開啟的檔案所產生的。 不過,我們發現納入相關性更高的內容可以大幅改善這些建議。
為了增強 C# 開發人員的體驗,我們更新了 GitHub Copilot 以納入額外的 C# 內容,例如可於完成中使用的類型和方法。
使用最新版本的 Visual Studio 時,GitHub Copilot 現在會自動考慮在語意上有所關聯的檔案以取得額外內容,即使這些檔案未在編輯器中開啟也一樣。 這項改進有助於減少幻覺,同時可提供相關性更高且準確的建議。
之前:不會將在語意上有所關聯的檔案視為 GitHub Copilot 完成的內容
之後:會將在語意上有所關聯的檔案視為 GitHub Copilot 完成的內容
重要
若要使用此功能,請務必啟動 GitHub Copilot
GitHub Copilot 中的參考程序代碼
介紹 GitHub Copilot 中的程式碼參考,可讓您允許程式代碼建議包含公用程式代碼相符專案,同時接收相符專案的詳細資訊。
我們很高興宣佈現在已在 Visual Studio 的 GitHub Copilot 中提供程式碼參考!
這個新功能可為開發人員提供透明度,因為它會在 GitHub Copilot 建議符合公用程式碼時通知他們。 您現在可以查看相符程式碼、其來源檔案,以及任何相關聯的授權資訊,協助他們在撰寫程式碼時做出更明智的決策。
程式碼參考可讓您封鎖或允許包含公用程式碼相符項的建議,進而加強控制與自訂。
透過在 GitHub Copilot 中整合程式碼參考,我們會促進知識分享、增強透明度,並讓您有信心建立。 無論您是個別開發人員或大型小組的一部分,這個功能都可增強您的工作流程,並協助您輕鬆瀏覽公用程式碼的複雜性。
立即在 Visual Studio 中試用 GitHub Copilot,並以更高的透明度和信心控制您的開發流程!
重要
若要使用此功能,請務必啟動 GitHub Copilot
GitHub Copilot 中的引導聊天
介紹與 GitHub Copilot 聊天的新、更交談方式。
我們引進了與 GitHub Copilot Chat 互動的全新進階交談方式!
我們引進了更為互動式且交談化的方式以使用 GitHub Copilot Chat。 現在,GitHub Copilot 不會停滯或不確定,而是會在內容不清楚時引導您釐清問題,確保更準確且有幫助的回應。
這種引導式聊天體驗可協助精簡查詢、提供建議,並確保更順暢、更具生產力的互動。 有了這個新的聊天方式,您將會享受更聰明、更直覺的 GitHub Copilot,以隨著程式碼來適應您的需求。
立即嘗試新的引導式聊天體驗,並自行了解差異!
重要
若要使用此功能,請務必啟動 GitHub Copilot
GitHub Copilot 上線
在 GitHub Copilot Chat 中更快開始使用!
需要開始使用 GitHub Copilot Chat 的協助嗎? 我們引進了兩個新的上線功能,可協助您更快地開始使用。
入門提示
按一下其中一個入門提示,將您的第一則訊息傳送至 GitHub Copilot! 使用這些提示來查看 GitHub Copilot 在您的工作流程中必須為您提供哪些功能。
提示庫
如果您需要再次參考一些預先製作的提示,請按兩下 [提示連結庫 ] 按鈕(書籍圖示)以查看可供您使用的所有提示清單。 此庫包含常用的提示,只需按一下即可獲得!
無論您是在探索新的編碼工作還是只是在尋找靈感,我們的提示都可以幫助您直接投入並開始充分利用 GitHub Copilot Chat。
嘗試一下,看看它會帶您去哪裡!
重要
若要使用此功能,請務必啟動 GitHub Copilot
.NET
以 .NET 9 執行更多工作 📣
.NET 9 提升了雲端原生和智慧型應用程式開發,專注於提高生產力、簡化部署和加速 AI 整合。
.NET 9 提升了雲端原生和智慧應用程式開發,專注於提高生產力、簡化部署和加速 AI 整合,在各式各樣的應用程式都帶來卓越的效能。 由於 Visual Studio 17.12 完整支援 .NET 9,您可以輕鬆地運用所有最新的改良功能。 如需新增功能的詳細資訊,請造訪 .NET 9 中的新增功能 (部分機器翻譯)。
此外,您還會發現 IDE 的功能更新,讓 .NET 和 ASP.NET 變得比以往更有生產力。
📣請參閱功能票證 (英文) 以分享您的意見反應並繼續對話。
NuGet 稽核可轉移套件 📣
NuGet 正在變更預設稽核設定,以包含可轉移套件。
NuGet Audit 首次在 Visual Studio 17.8 (和 .NET 8) 中新增,如果專案使用的任何套件有已知弱點,它會在還原期間提供警告。
有關 NuGet Audit 的詳細資訊 (包括所有設定選項),請參閱有關 NuGet Audit 的文件。
在此版本中,NuGetAuditMode 的 NuGet Audit 預設值已變更。 先前,預設只會報告直接套件參考 (
<NuGetAuditMode>direct</NuGetAuditMode>
)。 現在,根據預設,它會對具有已知弱點的直接和可轉移套件 (<NuGetAuditMode>all</NuGetAuditMode>
) 發出警告。 若要保留先前的預設值,您可以在專案或 Directory.Build.props 檔案中明確設定 NuGetAuditMode 的慣用值。或者,您可以將 SdkAnalysisLevel 設定為低於 9.0.100 的版本號碼,但請注意,這將影響使用 SdkAnalysisLevel 的所有功能。
NuGet Audit 需要提供弱點資料庫的套件來源。 NuGet.org 提供來自 GitHub Advisories 資料庫的弱點。
從 Visual Studio 17.12 開始,現在可以在 NuGet.Config 檔案中指定審核來源,因此不再需要使用 nuget.org 作為套件來源。
如果您不使用 nuget.org 作為套件來源並希望在還原期間使用 NuGet Audit 進行易受攻擊的套件報告,請將以下內容新增至解決方案目錄中的 NuGet.Config 檔案中:
<confiuration> <!-- any existing config, including <packageSources> --> <auditSources> <add key="nuget.org" value="https://api.nuget.org/v3/index.json" /> </auditSources> </configuration>
📣請參閱功能票證 (英文) 以分享您的意見反應並繼續對話。
偵錯與診斷
Blazor WebAssembly 偵錯 📣
針對以 .NET 9 或更新版本為目標的 Blazor WebAssembly 應用程式的改善偵錯體驗。
Visual Studio 現在提供針對以 .NET 9 或更新版本為目標的 Blazor WebAssembly 應用程式的改善偵錯體驗:
- 偵錯工具中顯示的資料類型現在與預期的 .NET 資料類型相符。
- 類型成員和成員可見性會使用預期的圖示。
- 顯示的呼叫堆疊已清理,以只顯示 .NET 呼叫堆疊並正確地遵循 Just My Code 設定。
- 現在支援模組視窗。
- 擴充並改進了 [即時運算] 視窗中以及對 [監看式] 和 [條件式中斷點] 的運算式評估支援。
若要啟用新的預覽偵錯體驗:
- 啟用啟用新的 .NET 9+ Mono 偵錯工具設定。
- 安裝最新的 .NET 9 SDK。
- 將您的 Blazor 應用程式更新為以 .NET 9 為目標。
📣請參閱功能票證 (英文) 以分享您的意見反應並繼續對話。
分析工具中的計量直方圖
使用分析工具計數器工具中的計量直方圖增強效能深入解析。
Visual Studio 效能分析套件的最新增強功能引入了計量長條圖功能。 此工具可讓您識別和分析長條圖工具所產生的長條圖資料。 從這些工具記錄資料時,長條圖結果會視覺化,以清楚的方式來表示資料分佈。
此外,泳道圖則提供詳細的效能指標分段檢視,讓您更能有效精確找出並解決效能問題。
顯示方法傳回值 📣
調試程式現在會以 AI 協助顯示內嵌傳回值,以提升效率。
Visual Studio 偵錯工具現在會顯示 return 陳述式的內嵌值,以回應開發人員社群中其中一個要求最多的功能。
這項增強功能可讓您查看函式直接在程式碼中傳回的確切值,而不需要額外的程式碼或暫存變數來檢查傳回值。
使用 GitHub Copilot,您可以透過暫留使用 [詢問 Copilot] 選項,直接在 Visual Studio 中分析傳回值,讓您能夠立即解決問題。
原生和受控程式碼都提供支援。
📣請參閱功能票證 (英文) 以分享您的意見反應並繼續對話。
輕鬆匯出斷點群組 📣
斷點群組的輕鬆匯入和匯出。
Visual Studio 中斷點群組現在支持匯入和匯出功能,可讓您輕鬆地管理及維護多個專案或環境的中斷點結構。
這個新功能可讓您隨著中斷點群組的組態匯出中斷點群組,並於稍後將它們匯入 不同的解決方案,確保一致的偵錯設定,而不需要再次手動重新建立中斷點群組。
📣請參閱功能票證 (英文) 以分享您的意見反應並繼續對話。
IEnumerable 可視化檢視的 IntelliSense 📣
使用 IntelliSense 增強的 IEnumerable 可視化檢視,以加快 LINQ 查詢的速度。
IEnumerable 視覺化檢視已使用 IntelliSense 增強,提供即時程式碼建議和自動完成,讓撰寫 LINQ 運算式更快速且更精確。
這項改進可藉由提供智慧程式碼建議、降低錯誤的可能性,以及加快開發時間,以簡化建置和編輯查詢的流程。
📣請參閱功能票證 (英文) 以分享您的意見反應並繼續對話。
分析一段時間的記憶體使用量
使用 [診斷工具] 視窗選取並比較兩個記憶體快照集。
[診斷工具] 視窗現在支援比較記憶體快照集,讓您可以更輕鬆地分析一段時間內的記憶體變更。
若要使用這項功能,請確定您在 [診斷工具] 視窗中的 [記憶體 ] 索引卷標下至少擷取了兩個記憶體快照集。
選取快照集進行比較
- 按住 Ctrl 鍵,然後按下快照集數據列,以選取任何兩個快照集。
- 或者,按住 Shift 鍵並使用
up/down
箭頭鍵來選取兩個連續快照集。取消選取快照集
- 按住 Ctrl 鍵,然後按下您要取消選取的快照集。
檢視差異
選取要比較的記憶體快照集之後,按一下快照集清單上方的 [檢視差異] 按鈕來檢視它們之間的差異。
Git 工具
使用 Git 管理檔案重新命名 📣
使用新通知重新命名檔案時可以安心無憂。
當您從方案總管重新命名檔案時,系統會提醒您暫存變更,以在 Git 中查看重新命名。 這增強了您對 Git 識別檔案變更並正確追蹤它的信心。 我們發現這對許多客戶來說是一個混淆點,所以我們與開發人員社群中的人們合作,以產生新的通知。
📣請參閱功能票證 (英文) 以分享您的意見反應並繼續對話。
提取要求草稿和範本 📣
在 Visual Studio 中建立提取要求草稿並使用範本來開始撰寫描述。
您現在可以在 Visual Studio 中建立提取要求草稿並使用 GitHub 範本來開始撰寫描述。 這是針對建立提取要求體驗最熱門的兩個要求。
草稿 PR
使用 [建立] 按鈕上的下拉式功能表來 [建立為草稿]。
PR 範本
建立 GitHub 和 Azure DevOps 的新 PR 時,將會使用您的預設 PR 範本。 請參閱 GitHub 文件 (英文) 和 Azure DevOps 文件 (英文) 以深入了解如何將 PR 範本新增至您的存放庫。
建立內部 GitHub 存放庫 📣
Visual Studio 現在支援建立內部存放庫,並包含每種存放庫類型的指引,讓您在開始新專案時更有信心。
Visual Studio 現在支援 GitHub 組織的內部存放庫。 我們也包含每種存放庫類型的指引,以便您根據您使用的帳戶更清楚地了解新專案的可見性。
📣請參閱功能票證 (英文) 以分享您的意見反應並繼續對話。
複製 Git 連結 📣
您可以取得特定程式碼行的 GitHub 或 Azure DevOps 連結,輕鬆與同事共用。
每當與同事共用程式碼行時,他們通常更能從存放庫取得額外內容。 不過,如果他們正在處理其他工作,這個動作可能會拖太久,需要中斷自己工作才能從您的分支簽出。
現在起,您可以將想要在編輯器共用的程式碼反白、按一下滑鼠右鍵開啟操作選單,然後在 Git 子選單中取得可共用的連結,以便連向 GitHub 或 Azure DevOps 的程式碼。 這可讓您輕鬆簡單地協作,並讓 IDE 與網路上的遠端存放庫之間的流程更順暢。
您也可以直接從提交歷史記錄中取得可共用的連結。 這可讓目前未取出的程式碼以同樣毫不費力地的方式參考。
📣請參閱功能票證 (英文) 以分享您的意見反應並繼續對話。
Git 多存放庫支援 📣
您現在可以在 GitHub 和 Azure DevOps 的多存放庫案例中建立提取要求和連結工作專案。
您現在可以在多存放庫情境建立提取請求並連結工作項目。 無論是 GitHub 或 Azure DevOps,在多存放庫情境中,如果您使用存放庫選擇器將焦點放在特定存放庫,我們都能支援您進行整合。
📣請參閱功能票證 (英文) 以分享您的意見反應並繼續對話。
自定義 AI Git 認可訊息 📣
您可以將其他指示新增至提示,以使用 GitHub Copilot 產生 Git 認可訊息。
現在您可以將其他指示新增至提示,以使用 GitHub Copilot 產生 Git 認可訊息。 這可讓您自訂認可訊息,以更符合工作流程和小組的標準。 您可以指定要產生的行數、行的長度,甚至提供範例認可樣式。 編輯 [工具>選項>][GitHub > Copilot > 原始檔控制整合] 下方提示字段中的訊息。
📣請參閱功能票證 (英文) 以分享您的意見反應並繼續對話。
IDE
多專案啟動設定 📣
在多專案解決方案中為特定專案設定與儲存啟動設定檔,藉此讓偵錯更流暢。 與團隊輕鬆共用設定。
多專案啟動設定功能可讓您設定與儲存設定檔,以預先定義的狀態來啟動多專案解決方案中的特定專案,藉此進行偵錯。
這麼做可簡化複雜解決方案的使用過程、改善偵錯效率,並讓您輕鬆與團隊成員共用設定。
📣請參閱功能票證 (英文) 以分享您的意見反應並繼續對話。
注意
此功能必須在 [工具] -> [管理預覽功能] 下啟用
MotW 安全性警告
Web 標記 (MotW) 安全性警告現已整合到整體信任功能中。
當 Visual Studio 偵測到您嘗試開啟標記有 Web 標記 (MotW) 識別碼的內容時,它會顯示安全性警告。
這項新的與信任相關的警告傳達了開啟來自潛在不安全來源 (例如網際網路下載) 的內容的風險。
您可以透過前往工具>選項>環境下的信任設定來修改預設信任體驗。
Teams 工具組新的 AI 範本
Teams 工具組會將新的 AI Teams 應用程式範本上線。
Teams 工具組新增了三個新的 Teams AI 應用程式範本:
畫面如下:
基本 AI 聊天機器人 - 您在 Microsoft Teams 中使用 Teams AI 程式庫建置的 Copilot
使用您的資料聊天 - 智慧型聊天機器人範本,具有來自自訂資料來源的定義域知識。
Teams 工具組現在可讓您建立自訂 Copilot,這是具有 RAG 功能的 AI 支援聊天機器人,其可了解自然語言,並擷取定義域資料以回答定義域特定問題。 此範本支援在自訂 Copilot 應用程式中存取您的自訂資料。
當您選取此範本時,您可以選取兩種方式來與您的資料連線:
a. Azure AI 搜尋服務:您的聊天機器人可以存取 Azure AI 搜尋服務上的資料,並將其用於與使用者的交談。
b. 自訂資料來源:您可以新增想要自訂 Copilot 應用程式的任何資料來源,例如檔案系統或向量 DB。
AI 代理程式 - Teams 中的 AI 代理程式,可根據 LLM 推理做出決策和執行動作。
請嘗試新的 AI 應用程式範本,以在 Teams 中啟動您的 AI 旅程!
在實例之間複製檔案 📣
您現在可以將檔案和資料夾從 Visual Studio 的某個實例中的 方案總管 複製到另一個實例。
我們很高興在 Visual Studio 中引入一項備受期待的功能! 現在,您可以使用 [方案總管] 在不同的 Visual Studio 實例之間無縫地複製和貼上程式碼檔案和資料夾。 只要選取所需的檔案或資料夾,使用 Ctrl C 或 Ctrl++X、切換至另一個 Visual Studio 實例,並使用 Ctrl+V 將那些檔案或資料夾包含在新的方案中。 所有的變更都會準確地反映在檔案系統中。
除了複製和貼上之外,您還可以將檔案和資料夾從一個 Visual Studio 實例拖曳到另一個實例。
以前,此功能僅適用於一些專案類型,但我們現在已將其擴充為包括 Visual Studio 中的所有主要專案類型。
📣請參閱功能票證 (英文) 以分享您的意見反應並繼續對話。
雲端
Azure App Service 發布安全性更新
使用整合式安全性更新,將更新安全地發布至 Azure App Service。
Azure App Service 的發布指引建議客戶停用基本驗證,並透過整合式驗證啟用發布功能。
Visual Studio 2022 中的新功能會停用基本驗證,並啟用整合式安全性以發佈至 Azure App Service。 這可確保安全地處理發佈認證,進而降低與基本驗證相關聯的風險。
發佈至已啟用基本驗證的 Azure App Service 時 (不建議這樣做),使用者會看到 [開啟基本驗證] 選項,且該選項預設為取消核取。 需要保留基本驗證的客戶可以核取此方塊,但建議停用基本驗證,預設會取消核取此選項。 因此,若這是您第一次發佈,則會開始安全;或您會在更新 Visual Studio 並完成發佈流程之後取得安全。
如果您最近透過入口網站或這個或任何未來的 Visual Studio 版本建立 Web 應用程式,預設會停用基本驗證。 針對任何已停用基本驗證的 Web 應用程式,我們會藉由完全停用該核取方塊來規避不小心讓 Web 應用程式較不安全的情況,因此您會保持安全。
Azure WebJobs Linux 支援 📣
現在支援在Linux上發佈至 Azure WebJobs,方法是在Visual Studio 中單擊滑鼠右鍵發佈。
Azure WebJobs Linux 支援跨平台 .NET 5.0+ 主控台應用程式,現在您也可以從 Visual Studio 以滑鼠右鍵按一下將程式碼發佈至 Linux 上的 Azure WebJobs!
📣請參閱功能票證 (英文) 以分享您的意見反應並繼續對話。
Azure Functions Flex 耗用量
發佈至 Azure Flex Consumption 主控方案,目前為預覽版。
如果您正在試用新的 Azure Functions Flex 使用量主控方案,目前為預覽版,您將可以享受從 Visual Studio 以滑鼠右鍵按一下發佈至 Flex 的功能。
Flex 使用量會進一步擴充應用程式的功能,並提供下列內容:
- 免費虛擬網路整合
- 快速且可預測的調整,可選擇執行個體大小,以及各執行個體的並行控制
- 無伺服器,規模可調整為零,且您只需在執行個體處於使用中狀態時付費
- 具有選擇性 [永遠就緒] 執行個體功能的冷啟動風險降低
在公告部落格文章或文件中深入了解 Flex 使用量,並試用我們的其中一個範例。
已連線的服務安全性更新
讓您的應用程式和開發體驗更安全。
在已連線的服務的此更新中,您現在無需程式碼或設定中的秘密或連接字串即可將專案程式碼連線到 Azure 資源,例如 Azure 儲存體。
現在,您會為連線命名,端點會保存至設定,而不是完整的連接字串。 這表示磁碟上的秘密較少,因此您的開發時間預設會更安全,並且在提交秘密到原始檔控制時遇到的錯誤也會較少。
我們也會使用最新的 Azure SDK,因此您可取得支援,可使用 Visual Studio (或 Azure CLI) 登入連線到 Azure 資源,而不用透過連接字串進行連線。 在本機執行時,您的程式碼會使用您已登入的認證來存取資源。 在 Azure 中執行時,Azure SDK 會使用 App Service 的受控識別來存取資源。
已連線的服務會為您完成所有設定,並插入適當的程式碼以使用整合式身分識別,而不是秘密。 在發佈期間,您的應用程式會設定為具有存取資源所需的適當身分識別和角色。
桌面
已改善 .NET 9 上 UWP 應用程式的 MSIX 工具 📣
Visual Studio 現在會參考新的獨立單一專案 MSIX 工具,以封裝 .NET 9 上的 UWP 應用程式。
在 .NET 9 的 UWP 支援初始預覽 版中,我們依賴 WindowsAppSDK 提供 MSIX 工具,以使用單一專案組態來封裝應用程式(而不是使用 Windows 應用程式封裝專案,即 .wapproj 檔案)。 這樣做導入了幾個問題,主要一個是 WebView2 從 WindowsAppSDK 的可轉移相依性也會自動新增到所有 UWP app,即使不需要也一樣。
我們現在已完全分離單一專案 MSIX 工具,並將其發佈為新的獨立 NuGet 套件: Microsoft.Windows.SDK.BuildTools.MSIX。 這包括在 .NET 9 上建置、部署及執行UWP應用程式所需的一切,以及產生 MSIX 套件,以在 Microsoft 市集或側載中發佈。 Visual Studio 中的 .NET 9 工具 UWP 會在需要時自動新增這兩個套件參考:
這兩者都會完全移除 WebView2 可轉移的相依性,以及未在 .csproj 檔案中手動設定 WindowsSdkPackageVersion 屬性時,舊版中新專案的建置錯誤。 有了這項變更,新專案就只會建置並執行,而不需要進行任何額外的變更!
📣請參閱功能票證 (英文) 以分享您的意見反應並繼續對話。
增強的 WinUI 元件搜尋
透過改進的 Visual Studio 安裝程式搜尋來增強 WinUI 專案設定,方便開發人員找到元件。
使用我們最新的 Visual Studio 安裝程式更新,進一步簡化您的 WinUI 專案設定! 開發人員現在可以快速找到 WinUI 相關元件,消除先前瀏覽空白搜尋結果的挫折感。 此增強功能簡化了開發環境設定,從而提供更直覺、更有效率的使用者體驗。
開啟 Visual Studio 安裝程式,移至 [個別元件] 索引標籤,然後搜尋 WinUI 相關關鍵詞 (WinUI,WinRT)!
UWP 的 .NET 9 SDK 支援 📣
Visual Studio 現在已立即包含 .NET 9 SDK 與 UWP 支援。
在初始預覽版中嘗試在 .NET 9 上試用 UWP 的必要步驟之一,就是安裝 .NET 9 SDK 的夜間組建。 有了這個新版本的Visual Studio,就不再需要了。
Visual Studio 現在包含 .NET 9 SDK,其中包含 .NET 9 上 UWP 的所有新支援(特別是參考 UWP XAML 投影的邏輯,以及將 CsWinRT 設定為 UWP XAML 應用程式的專案類型)。 您現在可以使用 Visual Studio 自動安裝的 .NET SDK,在 .NET 9 專案上建置並執行 UWP。
📣請參閱功能票證 (英文) 以分享您的意見反應並繼續對話。
簡化UWP的 .csproj 📣
Visual Studio 現在會自動為 .NET 9 上的新式 UWP 專案設定 UseUwpTools。
使用 .NET 9 的 UWP 應用程式和連結庫,用來在其 .csproj 檔案中要求兩個屬性:
UseUwp
,它會設定適用於 UWP XAML 應用程式的 .NET SDK,以及UseUwpTools
,這可讓 Visual Studio 中的所有新工具建置和執行 UWP XAML 應用程式。設定
UseUwpTools
時UseUwp
,Visual Studio 會自動設定 屬性,讓 .csproj 在常見案例中不那麼詳細。 在進階案例中,仍可手動停用UseUwpTools
來退出宣告。📣請參閱功能票證 (英文) 以分享您的意見反應並繼續對話。
.NET 9 中 UWP 的 RID 已修正 📣
.NET 9 類別庫上的 UWP 正確地將 RID 設定為原生 AOT 的正確值。
我們已修正 .NET 9 上 UWP 類別庫 (和 WinRT 元件) 的 APPX 工具中的 Bug,預設會在 .NET Native 上套用 UWP 的運行時間識別符(也就是使用
win10-
前置詞,並包含不再支持的平臺,例如 arm)。APPX 工具現在預設會為 .NET 9 項目設定正確的 RID:
win-x86;win-x64;win-arm64
。 如有需要,仍可手動指定這些專案。📣請參閱功能票證 (英文) 以分享您的意見反應並繼續對話。
已修正 UWP 專案建立 📣
我們已修正在 .NET 9 專案上建立新的UWP時,導致不再顯示錯誤對話框的通用範本精靈。
如果您使用 預覽 VSIX 搭配 .NET 9 上 UWP 的新項目範本,您可能已經注意到在建立新專案時,出現錯誤對話框。 建立新解決方案時,這特別有問題,因為Visual Studio在建立專案之後無法正確開啟。 此問題現已解決,且在 .NET 9 上建立以UWP為目標的新項目現在可正常運作。
📣請參閱功能票證 (英文) 以分享您的意見反應並繼續對話。
Web
HTTP 檔案的請求變數 📣
HTTP 檔案現在已支援請求變數。 您可以在其中傳送要求,然後在未來的要求中使用來自回應或要求的資料。
使用 HTTP 檔案時,常見的案例是呼叫端點,從回應取得值,並在後續請求中傳送值。 例如,您可以呼叫端點來驗證使用者,然後在稍後的呼叫中傳遞從登入端點傳回的權杖。 在此版本之前,無法在 Visual Studio 中執行此操作。 在下面的程式碼片段中,您可以看到它在 HTTP 檔案中如何運作的範例。
# @name login POST {{TodoApi_HostAddress}}/users/token Content-Type: application/json { "username": "{{myusername}}", "password": "{{mypassword}}" } ### GET {{TodoApi_HostAddress}}/todos Authorization: Bearer {{login.response.body.$.token}} ###
在上面的程式碼片段中,有兩個要求,第一個呼叫
/users/token
端點以驗證使用者。 在請求行的上方,您會立即看到註解# @name login
。 此語法為要求提供名稱 (在本例中為login
),並將其設定為要求變數。 傳送要求時,您可以在任何未來從該 HTTP 檔案傳送的要求中存取回應或要求中的值。 由於這是登入的要求,因此您應該小心保護秘密。 在 Visual Studio 中,我們支援以安全的方式存取秘密。 如需有關處理秘密的詳細資訊,請參閱文件中的本章節。第二個要求會呼叫已驗證的端點
/todos
,這會傳回該使用者的todo
項目。 在要求中,權杖會作為標頭與行一起傳入。Authorization: Bearer {{login.response.body.$.token}}
/users/token
端點傳回 JSON 格式的回應。 權杖是以回應主體中的 JSON 路徑運算式$.token
來擷取。 如果您使用會傳回 XML 的端點,而不是 JSON 路徑運算式,則可以傳入 XPath 運算式。 Visual Studio 中的支援受到可用於 Visual Studio Code 的 REST 用戶端 的現有 OSS 擴充功能的啟發。 您可以在那裡了解有關要求變數的更多資訊。 我們近期會新增文件,更詳細地討論這項支援。📣請參閱功能票證 (英文) 以分享您的意見反應並繼續對話。
JavaScript 和 TypeScript 中的 Vitest 支援 📣
使用 JavaScript 和 TypeScript 專案時,您現在可以使用 Vitest 編寫測試案例。
在 JavaScript 和 TypeScript 專案 (JSTS) (副檔名為 .esproj 的專案) 中,我們新增了探索和執行使用 Vitest 撰寫的測試的支援。 若要開始使用 Vitest 測試,請在 JSTS 專案中,使用方案總管中的 npm 新增 vitest 套件,然後修改專案檔以宣告下列屬性。
<JavaScriptTestRoot>test\</JavaScriptTestRoot> <JavaScriptTestFramework>Vitest</JavaScriptTestFramework>
確保
JavaScriptTestRoot
的值具有測試檔案所在位置的正確相對路徑。將測試新增至正確的資料夾,並建置專案/方案。 之後,您應該會在 [測試總管] 中看到測試案例。
在 [測試總管] 中,您可以看到發現的不同測試案例並執行測試案例。
我們尚未新增對偵錯的支援,但即將新增該支援。 另一個已知問題是,當您在測試總管中按兩下測試案例時,它會帶您前往定義測試案例的檔案的第一行。 我們也將改善此體驗。
📣請參閱功能票證 (英文) 以分享您的意見反應並繼續對話。
更多語言的 Inlay 提示 📣
內嵌提示支援已新增至 JavaScript、TypeScript、Python 和 Razor,以及控制其行為的設定。
內嵌提示會顯示內嵌轉譯之原始程式碼的其他資訊。 這通常用於直接在編輯器中顯示推斷的類型、參數名稱和程式碼中的其他隱含資訊。
我們新增了在 JavaScript、TypeScript、Razor 和 Python 中顯示內嵌提示的支援。 我們也新增了新的設定,以便您可以跨這些語言自訂提示的行為。 此設定尚不適用於 C# 和 C++。 若要為這些語言啟用內嵌提示,您可以使用工具>選項>文字編輯器>所有語言>內嵌提示中的新設定。 您可以在下圖中看到此新選項。
內嵌提示有三個不同的值。
- 一律:一律顯示內嵌提示。
- 按下 Alt F1 時:只有在按下 Alt+ 和 F1 時,才會顯示 Inlay 提示。 這是預設值。
- 永不:內嵌提示永不顯示。
針對 JavaScript 和 TypeScript,還有其他選項頁面可設定內嵌提示的行為。 可在工具>選項>文字編輯器>JavaScript/TypeScript>進階>一般中找到。
這些選項會顯示在下圖中。
根據預設,所有這些選項均已停用,您應該啟用您有興趣檢視 JavaScript 和 TypeScript 檔案的提示。 在未來的更新中,我們可能會變更這些選項的預設值。 在下圖中,您可以看到顯示內嵌提示的 JavaScript 檔案。
在上圖中,顯示的內嵌入提示是帶有
: number
的灰色方塊,表示變數的類型。📣請參閱功能票證 (英文) 以分享您的意見反應並繼續對話。
HTTP 檔案共用環境 📣
我們在 HTTP 環境檔案中新增了支援,以便在各環境共用變數。
在 Visual Studio 中使用 HTTP 檔案 時,您可以定義環境,以便為 API 測試建立不同設定。 之前,您無法在這些環境共用變數。 我們已在環境檔案的新項目
$shared
新增支援,可讓您為所有環境皆可用的變數定義預設值。舉例來說,您可以考慮使用以下環境檔案 (http-client.env.json)。
{ "$shared": { "HostAddress": "https://localhost:7293" }, "dev": { "username": "sayedha" }, "dev2": { "username": "madsk" }, "staging": { "username": "staginuser", "HostAddress": "https://sayedrest.example.com" } }
我們已在上述的
$shared
定義了共用的值,內含設為localhost:7293
的HostAddress
變數。在已定義的三個環境中,開發環境都沒有指定
HostAddress
的值,但預備環境則有。如果您使用
dev
或dev2
環境,HostAddress
的值會來自$shared
,因為這些環境沒有HostAddress
的值。 使用預備環境時,HostAddress
的值會設為https://sayedrest.example.com
。📣請參閱功能票證 (英文) 以分享您的意見反應並繼續對話。
資料
SSDT 的 SDK 式 SQL 專案 📣
您現在可以在 SQL Server Data Tools 專案使用 SDK 樣式的專案檔案格式。
此更新新增的 SQL 專案是以 Microsoft.Build.Sql SDK 為基礎,這可帶來跨平台的支援,並改善 SQL Server Data Tools (SSDT) 專案的套件參照。 透過詳細度較低的專案檔案和 NuGet 套件的資料庫參照,團隊可以更有效率地協作單一專案的大型資料庫,或編譯數個專案的多個物件集。
Microsoft.Build.Sql 專案的資料庫部署可以在 Windows 和 Linux 環境自動化,其中 Microsoft.SqlPackage dotnet 工具會發布 SQL 專案的組建成品 (.dacpac)。 深入瞭解 SDK 樣式 SQL 專案和適用於 SQL 的 DevOps 預覽版。
Microsoft.Build.Sql 專案 SDK 是開放原始碼,且是在 GitHub 開發。
請務必在 Visual Studio 安裝程式安裝最新的 SSDT 預覽元件,以便在解決方案中使用 SDK 樣式的 SQL 專案。
📣請參閱功能票證 (英文) 以分享您的意見反應並繼續對話。
C++
設定 C++ 命令列引數
直接從工具列設定命令行參數的新方法。
使用新的 [設定引數] 工具列項目,快速設定 C++ 專案的命令列引數。 此組合方塊可讓您直接從工具列設定命令行參數,以便您可以快速變更引數。 當您執行專案時,系統會傳遞在方塊中輸入的任何引數。
如果您已安裝 [使用 C++ 進行遊戲開發] 工作負載,預設就會顯示此工具列元件。 如果您沒有看到此元件,請以滑鼠右鍵按一下工具列,然後選取 [設定引數] 來新增此元件。
注意:此功能目前僅適用於 Unreal Engine 專案。 未來的版本將支援一般的 C++專案。
組建深入解析檢視說明
了解如何透過新增的文件連結來使用 Build Insights 的個別索引標籤。
您現在可以看到 Build Insights 每個索引標籤的使用方式簡短說明,此外還有文件的連結提供詳細說明。
組建深入解析路徑調整
更清楚檢視 Build Insights 中的檔案,滑鼠暫留即可看到完整路徑。
我們隱藏了完整路徑和相對路徑,減少畫面的雜亂。 若要查看完整路徑,只要將滑鼠暫留在檔案上即可。 您也會看到檔案和轉譯單位的新檔案名稱欄,它會依預設顯示,協助您快速識別檔案,不需要剖析冗長的路徑。
開啟 Unreal Engine 專案的資料夾
開啟 Uproject 的新方法。
我們新增了額外的進入點,透過 Visual Studio 的 Uproject 支援來開啟您的 Unreal Engine Uproject。 您現在可以選取 [開啟 > Unreal Engine 專案...],直接從 [檔案] 功能表開啟您的 uproject。這會在 Visual Studio 中開啟您的 Unreal Engine 專案。
如需詳細了解如何使用此功能,請參閱直接在 Visual Studio編輯 .uproject。
改善的變更簽章
您現在可以使用改良的 C++ 介面來變更簽章。
我們已更新了 C++ 的變更簽章介面。 現在您可以在參數設定區段中新增、移除和重新排列參數。 此外,您還可以透過選取它們並將其拖曳到新位置來變更它們的順序。
存取方法保持不變:按 Ctrl+ 鍵以觸發 [快速動作和重構] 功能表,然後選取 [變更簽章]。
常見的使用者回報 Bug 修正
- C# 編輯器找不到在 xaml 檔案中定義的控制項
- 狀態列遺失 GIT 命令 (同步處理、提取、推送) 和分支清單
- VSSDK/CPS/擴充性:透過 .imagemanifest 載入 VS 擴充功能中的映像在 VS2022 中已中斷
- 退格鍵等按鍵有時會停止運作
- 資源總管無法開啟 resx 檔案
- 重設所有設定一律會導致錯誤
- VS2022 17.10.0 預覽版 7:內部編譯器錯誤
- Javascript 檔案在 10000 行程式代碼之後失去色彩編碼
- 在模組中使用 std::format 需要在該模組.cpp檔案中包含格式標頭
- 升級至 Visual Studio 17.11.0 之後C++語法錯誤
- VS 更新之後無法上下移動程式代碼區塊
- 遠端 Linux 主機產生的 CMake 快取會在 ctest 查詢時失敗
- 使用 VSTest@2 的 Azure DevOps 管線中出現錯誤
- 無法新增 Apple 帳戶 (VS 2022,企業帳戶)
📣 查看已加入此版本之所有用戶回報 之錯誤修正 的完整清單。
已知問題
- 嘗試對已啟用 HTTPS 且使用 WSL 偵錯設定檔的 ASP.NET Core Web 專案進行偵錯時,會發生「無法匯出憑證」錯誤。 這是因為中斷性變更:開發憑證導出不再建立資料夾。
在偵錯之前建立
%appdata%\ASP.NET\Https
資料夾,即可解決此問題。
版本 17.12.1
發行於 2024 年 11 月 19日
熱門錯誤 (Bug) 修正 | 來自社群 |
---|---|
修正捲動時語法色彩閃爍問題 https://github.com/dotnet/roslyn/pull/75796 | |
此版本包含更新,以維持符合國際語言法的規範。 |
我們全體小組成員皆感謝您選擇使用 Visual Studio。 如果您有任何問題,請在 Twitter 或開發人員社群 (英文) 上與我們連絡。
祝各位程式撰寫愉快!
Visual Studio 小組
注意
此更新可能包含個別授權的新 Microsoft 或第三方軟體,如第三方通知或其隨附授權中所述。