次の方法で共有


Visual Studio のロゴ Visual Studio 2022 リリース ノート

Visual Studio 2022 v17.12 が利用可能になりました。 この更新では、 .NET 9 プロジェクトと新しい AI 生産性機能を操作するための優れた開発者エクスペリエンスを提供することに重点が置かれており、全体的な改善が継続的に行われています。

機能

2024 年 12 月 12 日にリリースされた 17.12 の機能一覧

生産性

エラーリストからのコピー 📣

エラー リストからエラーをコピーすると、行全体ではなく説明だけがクリップボードにコピーされるようになりました。

エラー リストに、修正方法がわからないエラーが表示されます。 したがって、それを選択して Ctrl+C を押すと、Web 検索の説明がコピーされます。 検索エンジンに貼り付けた後、説明だけでなくすべての列ヘッダーと行の値がコピーされたことに気付きます。 Web 検索を実行する前に、エラーの説明以外のすべてを削除する必要があります。 これは面倒ですが、修正方法が見つかりました。

エラーリストのコピーの修正

Ctrl+C を使用してエラー リストからエラーをコピーすると、説明のみがクリップボードにコピーされます。 これにより、オンラインでエラーを検索したり、他のユーザーと共有したりすることが容易になります。

エラーを右クリックしてコンテキスト メニューから [行のコピー] を選択するか、Ctrl+Shift+C を押しても、行全体をコピーできます。

エラーの説明を使用して Web 検索を実行したい場合は、Ctrl+F1 を押してエラーに関する情報をオンラインで検索します。

📣 フィードバックを共有し、会話を続けるには、 機能チケット を参照してください。

Code Search での任意の行への移動 📣

コード検索では、現在のドキュメントまたは他の指定されたドキュメント内の特定の行に移動できるようになりました。

場合によっては、コード内の特定の行に問題があることがわかっていて、すぐに解決したい場合があります。 あるファイルの 43 行目にエラーが発生したと通知されたり、特定のファイルの末尾まで調べたい場合があります。

コード検索 では、コード内の特定の行への迅速なナビゲーションがサポートされるようになりました。

コード検索 を開き、コロン+行番号を使用して 現在の ドキュメント内の行に移動します。 たとえば、 :39 はアクティブ ファイルの 39 行目に移動します。

現在のドキュメントの行へ​​移動

ファイル名 + コロン + 行番号を使用して、 別の ドキュメント内の行に移動することもできます。 たとえば、 Order:43Order.cs の 43 行目に移動します。 正確なファイル名を指定しない場合は、最も一致するものを検索します。

別のドキュメントの行へ移動

📣 フィードバックを共有し、会話を続けるには、 機能チケット を参照してください。

Code Search ウィンドウのドッキング 📣

ドッキングや自動非表示などの機能を使用して、コード検索ウィンドウを自由に配置できるようになりました。

コード検索や機能検索を邪魔にならないようにする必要がある場合は、検索ウィンドウの動作をより細かく制御できるようになりました。

検索ウィンドウをドッキングし、ソリューション エクスプローラーなどのツール ウィンドウ アクションを実行できるようになりました。

検索は下部にドッキングされています

コード検索 または 機能検索を開いた後、右上のボックスアイコンをクリックしてツールウィンドウに変換します。 別の場所にドッキングしたり、ポップアウトしたり、自動的に非表示にしたりすることもできます。右上のアイコンをクリックすれば、閉じられるポップアップ ウィンドウに戻すことができます。

ウィンドウの右上、2番目のアイコンはツールウィンドウのアイコンです

また、検索のプレビューエクスペリエンスも簡素化され、整理されました。 プレビューのオン/オフを切り替えるための、目のアイコンで示されるボタンが 1 つあります。

ウィンドウの右上の最初のアイコンはプレビューパネルアイコンです

プレビュー パネルの位置も、検索ウィンドウのサイズに基づいて調整されます。

検索は右側にドッキングされています

📣 フィードバックを共有し、会話を続けるには、 機能チケット を参照してください。

テキストの折りたたみインジケーターのカスタマイズ 📣

Visual Studio エディターで折りたたまれたテキスト インジケーターのカスタム色を設定します。

折りたたまれたテキスト インジケーターをカスタマイズするための新しいオプションを使用して、エディターエクスペリエンスをさらにカスタマイズできるようになりました。

Visual Studio エディターでカスタマイズされた展開されたテキスト インジケーターと折りたたまれたテキスト インジケーター

それを試して、それぞれにカスタムの前景色と背景色を設定するには、 [ツール] > [オプション] > [環境] > [フォントと色] の順に選択します。

[フォントと色] ページの折りたたまれたテキスト インジケーター エントリ

ここには、カスタマイズ用の新しい項目が 2 つあります。

  • 折りたたまれたテキスト インジケーター (折りたたまれている)
  • 折りたたまれたテキスト インジケーター (展開)

定義済みの色またはユーザーが選択したカスタム色を使用して、折りたたまれたインジケーターと展開されたインジケーターの色を個別に設定できます。

📣 フィードバックを共有し、会話を続けるには、 機能チケット を参照してください。

検索結果の更新 📣

検索結果を以前の検索に更新して、最新の検索一致を取得できるようになりました。

多くのユーザーから、[検索] ウィンドウを再度開き、検索をやり直して更新された結果を取得する動作に不満があるとのご意見をいただきました。 コードをリファクタしたばかりで、すべてが期待どおりに変更されたことを確認したい場合や、最近の変更をプルして、これらの更新を反映するために最近の検索操作が必要になる場合があります。

[ファイルで検索] を完了したら、ウィンドウで検索結果を更新するオプションが表示されます。 検索をやり直すことなく、更新された結果が得られます。

[停止] の右にある [検索の更新] ボタン

以前の [検索の繰り返し] オプションも再設計され、更新と区別されました。 鉛筆アイコンが付いた [検索の変更] として表されるようになりました。 このボタンは、その結果ウィンドウに使用したのと同じ検索条件で [ファイルで検索] を再度開きます。

ツール バーの右端にある [検索] ボタンを変更する

📣 フィードバックを共有し、会話を続けるには、 機能チケット を参照してください。

水平スクロール バーの領域の拡大 📣

CodeLens でファイル レベル インジケーターの表示を制御できるようになりました。

水平スクロール バーがある領域は、Visual Studio でかなり乱雑になる可能性があります。 CodeLens のファイル レベル インジケーターを既定でオフにすることで、クリーンアップを容易にできるようになります。

エディターの下余白のファイル レベル CodeLens インジケーター

オプションをオンにしたい場合は、 >の下にある [ファイル レベルの CodeLens インジケーターを表示する オプションを見つけます。 このオプションは、XAML、HTML、CSS などの下部のエディター余白にファイル レベルの CodeLens コントロールがあり、インライン CodeLens を含むファイルには影響しないファイルの種類の表示に影響します。

ファイル レベル CodeLens インジケーターを表示するオプション

📣 フィードバックを共有し、会話を続けるには、 機能チケット を参照してください。

保存時の非ブロッキング コード クリーンアップ

コード クリーンアップを保存時に実行すると、コーディング エクスペリエンスをスムーズにするために、非ブロッキング方式で動作するようになりました。

以前は、保存時にコード クリーンアップを実行する際は、IDE でアクションを実行することはできませんでした。 現在はこの機能が強化され、非ブロッキング方式で操作できます。

クリーンアップ プロセスはバックグラウンドで実行され、入力を再開すると自動的に取り消され、よりスムーズで応答性の高いコーディング エクスペリエンスが保証されます。

保存時のコード クリーンアップ

ソリューション レベルのパッケージ マネージャー UI での推移的な依存関係の

ソリューション レベルで Visual Studio のパッケージ マネージャー UI の [インストール済み] タブを見ると、直接パッケージと推移的パッケージの両方が表示されるようになります。

以前は、Visual Studio のパッケージ マネージャー UI の [インストール済み] タブで、プロジェクトに対してのみ直接的な依存関係と推移的な依存関係の両方が表示されていました。 このリリースでは、ソリューション レベルの推移的な依存関係を表示する機能も追加されました。

ソリューション レベルの推移的依存関係の

ソリューション エクスプローラー
の脆弱性を持つ推移的な依存関係を する

NuGetAuditModeallに設定すると、ソリューション エクスプローラーには、脆弱性を持つ推移的な依存関係のインジケーターが表示されます。

Visual Studio 17.8 (および .NET 8) で初めて追加された NuGet 監査は、プロジェクトで使用されているパッケージに既知の脆弱性がある場合に、復元中に警告を発します。

すべての構成オプションを含む NuGet 監査の詳細については、NuGet 監査に関する ドキュメントを参照してください。

これらの脆弱性は、直接的な依存関係と推移的な依存関係 (依存関係が依存するパッケージ) に存在する可能性があります。 NuGetAuditModeallに設定すると、ソリューション エクスプローラーでは、直接的なインジケーターだけでなく、脆弱性を含む推移的な依存関係のインジケーターも表示されます。

ソリューション エクスプローラー での推移的な依存関係の脆弱性の

GitHub Copilot

GitHub に関するその他の質問

GitHub 全体を検索して、コミット、問題、pull request、リポジトリ、トピックを Visual Studio から直接検索します。

GitHub Copilot Chat を使用して GitHub 全体を検索し、コミット、問題、pull request、リポジトリ、トピックを検索できるようになりました。

次のような質問をすることができます。

  • @github すべてのオープン PR が自分に割り当てられているのは何ですか?
  • @github 私に割り当てられた最新の問題は何ですか?
  • @github 最新リリースはいつですか?
  • @github 最近マージされた PR を表示する @davidfowl

新しい GitHub スキル

この機能は、すべての GitHub Copilot ユーザーが利用できます。 利用可能な GitHub スキルの詳細については GitHub Copilot のドキュメントを参照してください。

重要

この機能を使用するには、 GitHub Copilot をアクティブにすることを忘れないでください


GitHub Copilot のカスタム手順

GitHub Copilot Chat に質問するすべての質問に情報を自動的に追加するファイルを作成します。

GitHub Copilot を使用すると、コンテキストを提供するだけで、チームのワークフロー、推奨されるツール、プロジェクトの詳細に合わせて調整されたチャット応答を受け取ることができます。 このコンテキストの詳細を各チャット クエリに追加する代わりに、この情報を自動的に提供するファイルを作成できます。 この追加のコンテキストはチャットには表示されませんが、GitHub Copilot で使用できるため、より正確で関連性の高い応答を生成できます。

GitHub Copilot のカスタム手順

カスタム命令を有効にする方法
  1. Tools > Options > GitHub > Copilot を使用して機能を有効にし>(プレビュー) .github/copilot-instructions.md ファイルからカスタム命令を読み込んで要求に追加できるようにするをオンにします。
  2. .github ファイル内の respository のルートに copilot-instruction.md を追加し、ファイルがまだ存在しない場合は作成します。

GitHub Copilot カスタム命令を有効にする

カスタム命令の作成の詳細については、こちらを 参照してください。

重要

この機能を使用するには、 GitHub Copilot をアクティブにすることを忘れないでください


GitHub Copilot チャットでのモデルの選択

GitHub Copilot では、モデルを選択できるようになりました。

Visual Studio の GitHub Copilot Chat のすべてのユーザーが OpenAI o1-preview と o1-mini を使用できるようになりました。

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 を使用すると、Locals、Autos、DataTips からの値の検査と分析がこれまでになく簡単になります。 任意の値を右クリックするだけで、エラー、予期しない結果、異常に関する詳細な AI 主導の分析情報を取得できます。IDE を離れることなくすべて行えます。

ai変数検索

この機能により、予期しない値が発生したときに IDE 内で変数をリアルタイムで分析することで、トラブルシューティングの速度が大幅に向上します。

重要

この機能を使用するには、 GitHub Copilot をアクティブにすることを忘れないでください


AI を利用した IEnumerable ビジュアライザー

IEnumerable ビジュアライザーの AI を利用した LINQ 編集可能な式。

AI 支援により、IEnumerable ビジュアライザーの編集可能な式の機能が強化されました。 新しい [Copilot に質問する] 機能を使用すると、ユーザーは編集可能な式テキストボックス内で直接 AI を活用して、複雑な LINQ 式を作成できます。

AI 編集可能な式 IEnumerable ビジュアライザー

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でコードを修正する 📣

GitHub Copilot は、コードの問題解決を支援します。

GitHub Copilot が電球とエラー一覧に統合され、コードの問題に関するクイック修正と洞察に満ちた説明を提供するようになりました。 C# と C++ のどちらで開発を行っているかによらず、この機能はコードベースの問題をより効率的に理解して解決するのに役立ちます。

使用を開始するには、電球を呼び出し、 [Copilot で修正] を選択するだけで済みます。 これにより、GitHub Copilot とのインライン チャットが開始され、利用可能な修正が提供されます。

電球から GitHub 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 では、エディター上でこれらのファイルが開いていなくても、意味的に関連するファイルが追加のコンテキストに対して自動的に考慮されるようになりました。 この改善は、より関連性の高い正確な提案を提供する一方で、ハルシネーションを減らすのに役立ちます。

Before: 意味的に関連するファイルは GitHub Copilot 入力補完のコンテキストとは見なされません

意味的に関連するファイルは、GitHub Copilot 入力補完のコンテキストとは見なされません

After: 意味的に関連するファイルは 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の使用を開始するのにサポートが必要ですか? すばやく作業を開始できるように、2 つの新しいオンボード機能が導入されました。

スターター プロンプト

いずれかのスターター プロンプトをクリックして、初めてのメッセージを GitHub Copilot に送信してください。 これらのプロンプトを使用して、GitHub Copilot がワークフローにおいてどのような機能を提供しているのかを確認します。

GitHub Copilot スターター プロンプト

プロンプト ライブラリ

事前に作成されたプロンプトをもう一度参照する必要がある場合は、 Prompt Library ボタン (書籍アイコン) をクリックして、使用可能なすべてのプロンプトの一覧を表示します。 このライブラリには、一般的に使用されるプロンプトが含まれており、クリックするだけでそれを利用できます。

GitHub Copilot プロンプトライブラリ

新しいコーディング タスクを探している場合でも、インスピレーションを求めている場合でも、GitHub Copilot Chat を最大限に活用するためのプロンプトが表示されます。

ぜひ試して、どうなるか確認してみましょう。

重要

この機能を使用するには、 GitHub Copilot をアクティブにすることを忘れないでください


.NET

.NET 9 による成果の向上 📣

.NET 9 は、生産性の向上、効率的な展開、AI 統合の加速に重点を置いて、クラウド ネイティブでインテリジェントなアプリ開発を向上させます。

.NET 9 は、生産性の向上、効率的な展開、AI 統合の加速に重点を置いて、クラウド ネイティブでインテリジェントなアプリ開発を向上させ、広範なアプリケーションで優れたパフォーマンスを提供します。 Visual Studio 17.12 での .NET 9 の完全なサポートにより、最新のすべての機能強化を簡単に活用できます。 新機能の詳細については、「.NET 9 の新機能」を参照してください。

.NET 9

さらに、.NET および ASP.NET での作業の生産性をこれまで以上に向上させる IDE 関連の機能も更新されています。

📣 フィードバックを共有し、会話を続けるには、 機能チケット を参照してください。


Visual Studio で尊重されている特定の GitHub アドバイザリの警告を抑制する

NuGet を使用すると、特定の GitHub アドバイザリに対する警告を抑制でき、抑制は Visual Studio で尊重されます。

NuGet 監査では、プロジェクトで使用されるパッケージに既知の脆弱性がある場合に警告が表示されます。 常に新しいバージョンのパッケージにアップグレードすることをお勧めしますが、アップグレードが不可能で、ソフトウェアが危険にさらされていないことを確信している場合は、プロジェクト ファイルに NuGetAuditSuppress 項目を追加することで、特定の GitHub アドバイザリの警告を抑制できます。

<Project Sdk="Microsoft.NET.Sdk">
  <ItemGroup>
    <NuGetAuditSuppress Include="https://github.com/advisories/GHA1234" />
  </ItemGroup>
</Project>

監査ソース として nuget.org を構成する機能

他の NuGet フィードを使用している場合でも、nuget.org を監査ソースとして設定して脆弱性情報を取得できるようになりました。

NuGet Audit には、脆弱性データベースを提供するパッケージ ソースが必要です。 nuget.org は、GitHub アドバイザリ データベースから脆弱性情報を提供します。

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 の呼び出し履歴のみが表示され、 [マイ コードのみ] の設定が正しく適用されます。
  • モジュール ウィンドウがサポートされるようになりました。
  • イミディエイト ウィンドウ内、ウォッチ、条件付きブレークポイントでの式の評価のサポートが拡張され、改善されました。

Blazor のデバッグ改善

新しいプレビュー デバッグ エクスペリエンスを有効にするには:

  • [新しい .NET 9+ Mono デバッガーを有効にする] の設定を有効にします。
  • 最新の .NET 9 SDK をインストールします。
  • .NET 9 をターゲットにするように Blazor アプリを更新します。

📣 フィードバックを共有し、会話を続けるには、 機能チケット を参照してください。

プロファイラーの測定ヒストグラム

プロファイラー カウンター ツールの測定ヒストグラムを使用してパフォーマンスの分析を強化しました。

Visual Studio のパフォーマンス プロファイル スイートの最近の機能強化により、測定ヒストグラム機能が導入されています。 このツールを使用すると、ヒストグラム インストルメントによって生成されたヒストグラム データを識別して分析できます。 これらのインストルメントからデータを記録すると、ヒストグラムの結果が視覚化され、データ分布が明確に表現されます。

測定ヒストグラム カウンター ツール

さらに、スイムレーン グラフでは、パフォーマンス メトリックの詳細なセグメント化されたビューが提供され、パフォーマンスの問題を効果的に特定して対処する機能が強化されます。

表示メソッドの戻り値 📣

デバッガーでは、効率を向上させるために AI 支援を受けたインライン戻り値が表示されるようになりました。

Developer Community から最も要望の多かった機能の 1 つであったことに応えて、Visual Studio デバッガーに return ステートメントのインラインの値が表示されるようになりました。

この機能強化により、関数によって返される正確な値をコード内で直接確認できるため、戻り値を検査するために追加のコードや一時変数が不要になります。

インラインの戻り値

GitHub Copilot を使用すると、さらに進んで、マウスオーバーで表示される Ask Copilot オプションを使用して Visual Studio で直接戻り値を分析できるため、問題にすぐに対処できます。

これはネイティブ コードとマネージド コードの両方でサポートされています。

📣 フィードバックを共有し、会話を続けるには、 機能チケット を参照してください。

ブレークポイント グループを簡単にエクスポート 📣

ブレークポイント グループを簡単にインポートおよびエクスポートできます。

Visual Studio ブレークポイント グループでは、インポートおよびエクスポート機能がサポートされるようになり、複数のプロジェクトまたは環境にわたってブレークポイント構造を簡単に管理および維持できるようになりました。

ブレークポイント グループのエクスポート インポート

この新しい機能を使用すると、ブレークポイント グループをその構成とともにエクスポートし、後で別のソリューションにインポートできるため、ブレークポイント グループを手動で再作成する必要なく、一貫したデバッグ設定を確保できます。

📣 フィードバックを共有し、会話を続けるには、 機能チケット を参照してください。

IEnumerable ビジュアライザーの IntelliSense 📣

IntelliSense を使用して IEnumerable ビジュアライザーを強化し、LINQ クエリを高速化しました。

IEnumerable ビジュアライザーは IntelliSense を使用して強化され、リアルタイムのコード候補とオートコンプリートが提供され、LINQ 式の記述がより迅速かつ正確になります。

IEnumerable ビジュアライザーの IntelliSense

この改善により、スマート コードの推奨事項を提供し、エラーの可能性を減らし、開発時間を短縮することで、クエリの作成と編集のプロセスが簡略化されます。

📣 フィードバックを共有し、会話を続けるには、 機能チケット を参照してください。

メモリ使用量の経時的な分析

診断ツール ウィンドウを使用して、2 つのメモリ スナップショットを選択して比較します。

[診断ツール] ウィンドウでメモリ スナップショットの比較がサポートされるようになりました。これにより、時間の経過に伴うメモリの変化を簡単に分析できるようになりました。

この機能を使用するには、[診断ツール] ウィンドウの Memory タブで少なくとも 2 つのメモリ スナップショットがキャプチャされていることを確認します。

比較するスナップショットの選択
  • Ctrl キーを押したまま、スナップショット行をクリックして 2 つのスナップショットを選択します。
  • または、 Shift キーを押したまま、 up/down 方向キーを使用して 2 つの連続するスナップショットを選択します。
スナップショットの選択解除
  • Ctrl キーを押しながら、選択を解除するスナップショットをクリックします。
相違点の表示

比較するメモリ スナップショットを選択したら、スナップショット一覧の上にある [相違点の表示] ボタンをクリックして、それらの相違点を表示します。

差分スナップショット MMA の表示

Git ツール

Git によるファイル名の変更管理 📣

新しい通知でファイル名を変更するときに安心。

ソリューション エクスプローラーからファイルの名前を変更すると、Git で名前の変更を確認するために変更をステージングするように通知されます。 これにより、Git がファイルの変更を認識し、正しく追跡していることに対する信頼が高まります。 これは多くのお客様にとって混乱の原因となることがわかったため、開発者コミュニティの皆さんと協力して新しい通知を作成しました。

Git mv 通知

📣 フィードバックを共有し、会話を続けるには、 機能チケット を参照してください。

pull request の下書きとテンプレート 📣

Visual Studio 内で pull request のドラフトを作成し、テンプレートを使用して説明を開始します。

Visual Studio で pull request の下書きを作成し、GitHub テンプレートを使用して説明を開始できるようになりました。 これらは、pull request の作成エクスペリエンスで上位 2 つの要求でした。

下書き PR

[作成] ボタン上のドロップダウン メニューを使用して、 [ドラフトとして作成] を実行します。

pull request の下書き作成オプション

PR テンプレート

既定の PR テンプレートは、GitHub と Azure DevOps の両方に新しい PR を作成するときに使用されます。 PR テンプレートをリポジトリに追加する方法の詳細については、 GitHub ドキュメントAzure DevOps ドキュメントを参照してください。

📣 フィードバックを共有し、会話を続けるには、 機能チケット を参照してください。機能のさらなる向上に役立てるため、 アンケートにご協力 ください。

GitHub 内部リポジトリの作成 📣

Visual Studio では、内部リポジトリの作成がサポートされるようになり、新しいプロジェクトを開始するときに自信が持てるよう、リポジトリの種類ごとにガイダンスが追加されました。

Visual Studio は、GitHub 組織の内部リポジトリをサポートするようになりました。 また、使用しているアカウントに応じて新しいプロジェクトの可視性をより明確にするために、各リポジトリ タイプのガイダンスも含まれています。

新しいリポジトリダイアログ

📣 フィードバックを共有し、会話を続けるには、 機能チケット を参照してください。

Git リンクのコピー 📣

特定のコード行に GitHub または Azure DevOps リンクを取得すると、同僚と簡単に共有することができます。

同僚と数行のコードを共有するたびに、リポジトリから追加のコンテキストを取得すると多くの場合に便利です。 ただし、他の作業に取り組んでいる場合は、時間がかかりすぎて、ブランチをチェックアウトする作業が中断される可能性があります。

これで、エディターで共有するコードを強調表示し、右クリックでコンテキスト メニューを開き、Git サブメニューの下にある GitHub または Azure DevOps でコードへの共有可能なリンクを取得できます。 これにより、シンプルかつ簡単に共同作業でき、IDE と Web 上のリモート リポジトリ間のフローがスムーズになります。

Git URL のコンテキスト メニューをコピーする

コミット履歴から直接共有可能なリンクを取得することもできます。 これにより、現在チェックアウトされていないコードを簡単に参照できます。

Git リポジトリ ウィンドウで Git URLをコピーする

📣 フィードバックを共有し、会話を続けるには、 機能チケット を参照してください。

Git マルチリポジトリのサポート 📣

GitHub と Azure DevOps の両方で、マルチリポジトリ シナリオで pull request を作成し、作業項目をリンクできるようになりました。

複数リポジトリのシナリオでプル要求を作成し、作業項目をリンクできるようになりました。 GitHub と Azure DevOps の両方で、リポジトリ ピッカーを使用してマルチリポジトリ シナリオの特定のリポジトリに焦点を当てるときに、統合がサポートされます。

リポジトリ ピッカー

📣 フィードバックを共有し、会話を続けるには、 機能チケット を参照してください。

AI Git コミット メッセージをカスタマイズする 📣

GitHub Copilot を使用して Git コミット メッセージを生成するためのプロンプトに追加の指示を追加できます。

GitHub Copilot を使用して Git コミット メッセージを生成するためのプロンプトに追加の指示を追加できるようになりました。 これにより、コミット メッセージをカスタマイズして、ワークフローとチームの標準に適合させることができます。 生成する行数、行の長さを指定したり、サンプルのコミット スタイルを提供したりすることもできます。 Tools > Options > GitHub > Copilot > Source Control Integration の下にあるプロンプト フィールドでメッセージを編集

Git メッセージのカスタマイズ

📣 フィードバックを共有し、会話を続けるには、 機能チケット を参照してください。

IDE

マルチプロジェクト起動構成 📣

マルチプロジェクト ソリューション内の特定のプロジェクトの起動プロファイルを設定して保存することで、デバッグを効率化します。 構成をチームと簡単に共有できます。

マルチプロジェクト起動構成機能を使用すると、マルチプロジェクト ソリューション内の特定のプロジェクトを、デバッグ用に事前定義された状態で起動するためのプロファイルを設定して保存できます。

マルチプロジェクト起動構成

これにより、複雑なソリューションの処理が簡素化され、デバッグの効率が向上し、チーム メンバー間で構成を簡単に共有できるようになります。

📣 フィードバックを共有し、会話を続けるには、 機能チケット を参照してください。

Note

この機能は、 [ツール] -> [プレビュー機能の管理]で有効にする必要があります


MotW セキュリティ警告

Mark of the Web (MotW) セキュリティ警告が、全体的な信頼機能に統合されました。

Visual Studio は、Mark of the Web (MotW) 識別子でタグ付けされたコンテンツを開こうとしていることを検出すると、セキュリティ警告を表示します。

この新しい信頼関連の警告は、インターネットからのダウンロードなど、潜在的に安全でないソースからのコンテンツを開くことのリスクを伝えます。

Visual Studio 内で Web ダウンロードを開く際のセキュリティ リスクを警告する信頼ダイアログ

デフォルトの信頼エクスペリエンスを変更するには、 >の [信頼設定] を選択します。

信頼設定では、デフォルトの信頼エクスペリエンスをカスタマイズできます

Teams ツールキットの新しい AI テンプレート

Teams Toolkit は、新しい AI Teams アプリ テンプレートをオンボードします。

Teams Toolkit には、次の 3 つの新しい Teams AI アプリ テンプレートが追加されています。

これらは次のとおりです。

Teams AI アプリ テンプレート

  1. 基本的な AI チャット ボット - Teams AI ライブラリで構築された Microsoft Teams の独自のコパイロット

  2. Chat With Your Data - カスタム データ ソースからのドメイン知識を持つインテリジェントなチャットボット テンプレート。

    Teams Toolkit では、AI 搭載チャットボットであるカスタム Copilot を作成できるようになりました。これは、自然言語を理解し、ドメイン固有の質問に答えるためにドメイン データを取得できる RAG 機能を備えています。 このテンプレートは、カスタム Copilot アプリでのカスタム データのアクセスをサポートします。

    このテンプレートを選択すると、データに接続する 2 つの方法を選択できます。

    a. Azure AI 検索: チャットボットは Azure AI 検索サービス上のデータにアクセスし、ユーザーとの会話でそれを使用できます。

    b. カスタム データ ソース: ファイル システムやベクトル DB など、任意のデータ ソースをカスタム Copilot アプリに追加できます。

  3. AI エージェント - LLM 推論に基づいて意思決定を行い、アクションを実行できる Teams の AI エージェント。

新しい AI アプリ テンプレートを試して、Teams で AI 体験を開始してください。

インスタンス間でファイルをコピーする 📣

Visual Studio のインスタンスのソリューション エクスプローラーから別のインスタンスにファイルとフォルダーをコピーできるようになりました。

要望が多かった機能を Visual Studio に導入できることをうれしく思います。 ソリューション エクスプローラーを使用して、異なる Visual Studio インスタンス間でコード ファイルとフォルダーをシームレスにコピーして貼り付けることができるようになりました。 目的のファイルまたはフォルダーを選択し、Ctrl+C または Ctrl+X を使用して別の Visual Studio インスタンスに切り替え、Ctrl+V キーを使用して新しいソリューションにこれらのファイルまたはフォルダーを含めるだけです。 すべての変更は、ファイル システムに正確に反映されます。

コピーと貼り付けに加えて、Visual Studio のインスタンス間でファイルとフォルダーをドラッグすることもできます。

Visual Studio インスタンス間でファイルをコピーする

以前は、この機能は少数のプロジェクトの種類でのみ使用可能でしたが、拡張されて Visual Studio のすべての主要なプロジェクトの種類が含まれるようになりました。

📣 フィードバックを共有し、会話を続けるには、 機能チケット を参照してください。

クラウド

Azure App Service 発行のセキュリティの更新

統合されたセキュリティ更新プログラムを使用して Azure App Service に安全に発行する。

Azure App Service の 発行ガイダンス では、基本認証を無効にし、統合認証による発行を有効にすることが推奨されています。

Azure ツール セキュアな発行

Visual Studio 2022 の新機能により、基本認証は無効になり、Azure App Service に発行するための統合セキュリティが有効になります。 これにより、資格情報の発行が安全に処理され、基本認証に関連するリスクが軽減されます。

基本認証が有効になっている Azure App Service に発行する場合 (推奨 されません)、ユーザーには [基本認証を有効にする] オプションが表示されます。既定ではオフになります。 基本認証を保持する必要があるお客様は、このチェック ボックスをオンにすることができますが、基本認証を無効にすることをお勧めします。既定ではオフになっています。 そのため、初めて発行する場合はセキュリティ保護を開始します。また、Visual Studio を更新した後に発行プロセスを実行すると、セキュリティで保護されます。

Azure ツール セキュアな発行の無効化

ポータル経由で、またはこのバージョンか今後のバージョンの Visual Studio を使用して Web アプリを最近作成した場合、基本認証は既定で無効になります。 基本認証が既に無効になっている Web アプリについては、誤って Web アプリの安全性が低下しないようにチェック ボックスを完全に無効にするため、セキュリティは維持されます。

Azure ツール セキュアな発行の有効化

Azure WebJobs Linux サポート 📣

Linux 上の Azure WebJobs への発行が、Visual Studio の右クリック発行でサポートされるようになりました。

Azure WebJobs Linux では、クロスプラットフォーム .NET 5.0 以降のコンソール アプリがサポートされており、Visual Studio から Azure WebJobs on Linux にコードを右クリック発行することもできるようになりました。

Linux ターゲットを示す [発行] ダイアログ

📣 フィードバックを共有し、会話を続けるには、 機能チケット を参照してください。

Azure Functions Flex 従量課金

Azure Flex 従量課金ホスティング プラン (現在プレビュー段階) に発行します。

現在プレビュー段階である新しい Azure Functions Flex Consumption ホスティング プランをお試しいただく場合は、Visual Studio から右クリックして Flex への発行を選択できます。

Flex Consumption を使うと、アプリの機能がさらに拡張され、次の利点が得られます。

  • 追加コストなしの仮想ネットワーク統合
  • インスタンス サイズの選択とインスタンスごとのコンカレンシー制御が可能な、高速かつ予測可能なスケーリング
  • ゼロへのスケーリングによるサーバーレスで、インスタンスがアクティブな間だけ支払い
  • オプションの常時使用可能なインスタンス機能によりコールド スタートを軽減

Flex Consumption について詳しくは、 発表のブログ記事 またはドキュメントを参照し、いずれかの サンプルをお試しください。

Azure Functions Flex Consumption への発行

Connected Services のセキュリティ更新プログラム

アプリと開発エクスペリエンスの安全性を高めます。

この接続済みサービスに対する更新によって、コードや構成内のシークレットや接続文字列を必要とせずに、Azure Storage などの Azure リソースにプロジェクト コードを接続できるようになります。

今後は、接続に名前を付けると、エンドポイントは、完全な接続文字列ではなく構成へと保持されます。 これによって、ディスク上のシークレットが少なくなるため、開発時間は既定でセキュリティが強化され、ソース管理にシークレットをコミットする際のエラーが少なくなります。

[Azure Storage への接続] ダイアログ

最新の Azure SDK も使用しているため、接続文字列経由で接続する代わりに、Visual Studio (または Azure CLI) ログインを使用する Azure リソースへの接続のサポートを受けられるようになります。 ローカルで実行する場合、コードはログイン済みの資格情報を使用してリソースにアクセスします。 Azure で実行する場合、Azure SDK はアプリ サービスのマネージド ID を使用してリソースにアクセスします。

接続済みサービスは、これをすべて自動で設定し、シークレットの代わりに統合 ID を使用するための適切なコードを挿入します。 発行時に、アプリは適切な ID とリソースへのアクセスに必要なロールを使用して構成されます。

デスクトップ

.NET 9 での UWP アプリの MSIX ツールの改善 📣

Visual Studio は、.NET 9 上の UWP アプリをパッケージ化するために、新しいスタンドアロンの単一プロジェクト MSIX ツールを参照するようになりました。

.NET 9 の UWP サポートの初期プレビューでは WindowsAppSDK に依存して、単一のプロジェクト構成を使用してアプリをパッケージ化するための MSIX ツールを提供しました (Windows アプリケーション パッケージ プロジェクト 、つまり .wapproj ファイルを使用するのとは異なります)。 これにより、いくつかの問題が発生しました。主な問題は、WindowsAppSDK からの WebView2 推移的な依存関係が、必要ない場合でも、すべての UWP アプリにも自動的に追加されることです。

これで、1 つのプロジェクト MSIX ツールが完全に切り離され、新しいスタンドアロン NuGet パッケージとして発行されました: Microsoft.Windows.SDK.BuildTools.MSIX。 これには、.NET 9 での UWP アプリのビルド、展開、実行、および Microsoft Store またはサイドロードで発行する MSIX パッケージの生成に必要なものがすべて含まれます。 Visual Studio の .NET 9 ツールの UWP では、必要に応じて、次の 2 つのパッケージ参照が自動的に追加されます。

MSIX ツール

これにより、WebView2 推移的な依存関係と、.csproj ファイルで WindowsSdkPackageVersion プロパティを手動で設定しない場合に、以前のプレビュー バージョンの新しいプロジェクトに存在していたビルド エラーが完全に削除されます。 この変更により、新しいプロジェクトは追加の変更を必要とせずにビルドして実行するだけです。

📣 フィードバックを共有し、会話を続けるには、 機能チケット を参照してください。

強化された WinUI コンポーネント検索

改善された Visual Studio インストーラー検索により WinUI プロジェクトのセットアップが強化され、開発者にとってコンポーネントの場所が簡素化されます。

最新の Visual Studio インストーラーの更新により、WinUI プロジェクトのセットアップがさらに効率化されます。 開発者は WinUI 関連のコンポーネントをすばやく見つけられるようになり、空の検索結果をナビゲートするという従来の煩わしさが解消されました。 この機能強化により、開発環境の構成が簡素化され、より直感的で効率的なユーザー エクスペリエンスが実現します。

Visual Studio インストーラー内で WinUI の [個別のコンポーネント] の新しい検索を示す画像

Visual Studio インストーラーを開き、 [個別のコンポーネント] タブに移動して、WinUI 関連のキーワード (WinUI、WinRT) を検索してください。

UWP 向け .NET 9 SDK サポート 📣

Visual Studio には、すぐに使用できるように .NET 9 SDK と UWP サポートが含まれるようになりました。

初期プレビューの .NET 9 で UWP を試すために必要な手順の 1 つは、.NET 9 SDK の夜間ビルドをインストールすることでした。 Visual Studio のこの新しいリリースでは、これは不要です。

Visual Studio に .NET 9 SDK が含まれるようになりました。これには、.NET 9 での UWP の新しいサポートがすべて含まれています (具体的には、UWP XAML プロジェクションを参照し、UWP XAML アプリのプロジェクトの種類に CsWinRT を構成するロジック)。 Visual Studio で自動的にインストールされる .NET SDK を使用して、.NET 9 プロジェクトで UWP をビルドして実行できるようになりました。

📣 フィードバックを共有し、会話を続けるには、 機能チケット を参照してください。

UWP 用の簡略化された .csproj 📣

UseUwpTools は、.NET 9 上の最新の UWP プロジェクト用に Visual Studio によって自動的に設定されるようになりました。

.NET 9 を使用する UWP アプリとライブラリでは、.csproj ファイルに 2 つのプロパティが必要でした。1 つは UWP XAML アプリ用の .NET SDK を構成する UseUwp、もう 1 つは UWP XAML アプリをビルドして実行するために Visual Studio の最新ツールをすべて有効にする UseUwpTools です。

この UseUwpTools プロパティは、UseUwp が設定されると Visual Studio によって自動的に設定されるようになり、一般的なシナリオの .csproj の詳細が少なくなります。 高度なシナリオでも、UseUwpTools を手動で無効にするとオプトアウトできます。

📣 フィードバックを共有し、会話を続けるには、 機能チケット を参照してください。

.NET 9 の UWP の RID が修正されました 📣

.NET 9 クラス ライブラリ上の UWP は、ネイティブ AOT の適切な値に RID を正しく設定します。

.NET 9 の UWP クラス ライブラリ (および WinRT コンポーネント) 用の APPX ツールのバグを修正しました。これは、既定では .NET ネイティブで UWP のランタイム識別子を適用していました (つまり、win10- プレフィックスを使用し、arm など、サポートされなくなったプラットフォームを含んでいました)。

APPX ツールでは、.NET 9 プロジェクトの適切な RID (win-x86;win-x64;win-arm64) が既定で設定されます。 必要に応じて、これらを手動で指定することもできます。

📣 フィードバックを共有し、会話を続けるには、 機能チケット を参照してください。

UWP プロジェクトの作成が修正されました 📣

.NET 9 プロジェクトで新しい UWP を作成するときにエラー ダイアログが表示されなくなったユニバーサル テンプレート ウィザードを修正しました。

.NET 9 の UWP 用の新しいプロジェクト テンプレートでプレビュー VSIX を使用している場合、新しいプロジェクトの作成時にエラー ダイアログが表示されていることに気付いたかもしれません。 これは、新しいソリューションの作成時に特に問題になりました。プロジェクトの作成後に Visual Studio で正しく開かなかったためです。 この問題は解決され、.NET 9 で UWP を対象とする新しいプロジェクトを作成できるようになりました。

📣 フィードバックを共有し、会話を続けるには、 機能チケット を参照してください。

Web

HTTP ファイルのリクエスト変数 📣

HTTP ファイルはリクエスト変数をサポートするようになりました。 ここでリクエストを送信し、その後のリクエストで応答またはリクエストのデータを使用できます。

HTTP ファイルを操作する場合、エンドポイントを呼び出し、応答から値を主tク氏、後続のリクエストで送信するのが一般的なシナリオです。 たとえば、エンドポイントを呼び出してユーザーを認証し、その後の呼び出しでログイン エンドポイントから返されたトークンを渡すことができます。 このリリースより前では、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}}

###

上記のスニペットには 2 つのリクエストがあり、最初のリクエストは /users/token エンドポイントを呼び出してユーザーを認証します。 要求行のすぐ上に、 # @name login というコメントがあります。 この構文は、リクエストに名前 (この場合はlogin) を付け、リクエスト変数として構成します。 リクエストが送信されると、その HTTP ファイルから送信される将来のリクエストで、応答またはリクエストの値にアクセスできるようになります。 これはログイン要求なので、秘密を守るように注意する必要があります。 Visual Studio では、安全な方法でシークレットにアクセスするためのサポートがあります。 シークレットの処理に関する詳細については、ドキュメントの このセクション を参照してください。

2 番目のリクエストは認証されたエンドポイント /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 の値が、テスト ファイルが配置されている場所への正しい相対パスであることを確認します。

テストを適切なフォルダーに追加し、プロジェクト/ソリューションをビルドします。 その後、テスト エクスプローラーにテスト ケースが表示されます。

vitest テストを使用したテスト エクスプローラー

テスト エクスプローラーでは、検出されたさまざまなテスト ケースを表示し、テスト ケースを実行できます。

デバッグのサポートはまだ追加されていませんが、近々追加される予定です。 もう 1 つの既知の問題は、テスト エクスプローラーでテスト ケースをダブルクリックすると、テスト ケースが定義されているファイルの最初の行に移動するということです。 このエクスペリエンスも改善していきます。

📣 フィードバックを共有し、会話を続けるには、 機能チケット を参照してください。

より多くの言語でのインレイ ヒント 📣

JavaScript、TypeScript、Python、Razor にインレイヒントのサポートが追加され、その動作を制御する設定も追加されました。

インレイヒントは、インラインでレンダリングされるソースコードに関する追加情報を表示します。 これは通常、コードから推論された型、パラメータ名、その他の暗黙的な情報をエディターに直接表示するために使用されます。

JavaScript、TypeScript、Razor、Python でインレイヒントを表示するためのサポートが追加されました。 また、これらの言語間でヒントの動作をカスタマイズできるように、新しい設定も追加しました。 この設定はまだ C# および C++ には適用されません。 これらの言語でインレイ ヒントを有効にするには、 [ツール] > [オプション] > [テキスト エディター] > [すべての言語] > [インレイ ヒント]の新しい設定を使用します。 新しいオプションは次の画像で確認できます。

インレイヒントのグローバル設定

インレイヒントには 3 つの異なる値があります。

  • 常に: インレイ ヒントを表示します。
  • Alt+F1 を押しているとき:Alt キー と F1 キー を押している間のみインレイヒントが表示されます。 これが既定値です。
  • 表示しない: インレイ ヒントは表示されません。

JavaScript および TypeScript の場合、インレイヒントの動作を構成するための追加のオプション ページがあります。 これは、 ツール > オプション > テキストエディタ > JavaScript/TypeScript > 詳細 > 全般にあります。

これらのオプションは次の画像に示されています。

インレイヒントのグローバル TypeScript 設定

デフォルトでは、これらのオプションはすべて無効になっているため、JavaScript および TypeScript ファイルで表示したいヒントを有効にする必要があります。 将来のアップデートで、これらのオプションのデフォルト値が変更される可能性があります。 下の画像では、インレイヒントを表示する JavaScript ファイルを確認できます。

インレイのヒント

前の画像では、インレイ ヒントは、変数の型を示す : number が付いた灰色のボックスとして表示されています。

📣 フィードバックを共有し、会話を続けるには、 機能チケット を参照してください。

HTTP ファイルの共有環境 📣

HTTP 環境ファイルでは、環境間で変数を共有するためのサポートが追加されました。

HTTP ファイル を使用する際、Visual Studio で、 環境 を定義できるため、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 で共有値を定義しました。これは、 HostAddress に設定されている localhost:7293 変数で構成されています。

定義されている 3 つの環境のうち、どちらの開発環境も HostAddress の値を指定していませんが、ステージングには値があります。

環境 dev または dev2 環境のいずれかを使用する場合、これらの環境には、 HostAddressの値がないため、 $shared の値は、 HostAddress から取得されます。 ステージング環境を使用する場合、 HostAddress の値は、 https://sayedrest.example.com に設定されます。

📣 フィードバックを共有し、会話を続けるには、 機能チケット を参照してください。

データ​​

SSDT の SDK スタイルの SQL プロジェクト 📣

これで、SQL Server Data Tools プロジェクトで SDK スタイルのプロジェクト ファイル形式を使用できるようになりました。

この更新プログラムは、Microsoft.Build.Sql SDK に基づく SQL プロジェクトを追加します。これにより、クロスプラットフォームのサポートが提供され、SQL Server Data Tools (SSDT) プロジェクトへのパッケージ参照が強化されます。 NuGet パッケージへのプロジェクト ファイルとデータベース参照を減らすことで、チームは、1 つのプロジェクトの大規模なデータベースでより効率的に共同作業を行ったり、複数のプロジェクトから複数のオブジェクト セットをコンパイルしたりできます。

ソリューション エクスプローラーの SDK スタイル SQL プロジェクト

Microsoft.Build.Sql プロジェクトからのデータベースデプロイは、Microsoft.SqlPackage dotnet ツールが SQL プロジェクトからビルド アーティファクト (.dacpac) を発行する Windows および Linux 環境で自動化できます。 SDK スタイルの SQL プロジェクトと DevOps for SQLのプレビューについて確認する。

Microsoft.Build.Sql プロジェクト SDK はオープンソースで、 Github で開発されます。

最新の SSDT プレビュー コンポーネントを Visual Studio インストーラーにインストールし、SDK スタイル SQL プロジェクトをソリューションで使用するようにします。

インストーラーでプレビュー SSDT 機能を有効にする

📣 フィードバックを共有し、会話を続けるには、 機能チケット を参照してください。

C++

C++ コマンド ライン引数を設定する

ツールバーから直接コマンド ライン引数を設定する新しい方法。

新しい [引数の設定] ツール バーを使用して、C++ プロジェクトのコマンド ライン引数をすばやく設定します。 このコンボ ボックスを使用すると、ツールバーから直接コマンド ライン引数を設定できるため、引数をすばやく変更できます。 プロジェクトを実行すると、ボックスに入力されたすべての引数が渡されます。

C++ によるゲーム開発 ワークロードがインストールされている場合、このツール バー コンポーネントは既定で表示されます。 表示されない場合は、ツール バーを右クリックし、 [引数の設定] を選択して追加できます。

注: この機能は現在、Unreal Engine プロジェクトでのみ使用できます。 一般的な C++ プロジェクトは、今後のリリースでサポートされる予定です。

C++ コマンド ライン引数を設定する

Build Insights ビューの説明

ドキュメントへの新しく追加されたリンクを使用して、Build Insights の各タブを使用する方法について説明します。

Build Insights の各タブの使用方法に関する簡単な説明と、詳細な説明に関するドキュメントへのリンクが表示されるようになりました。

Build Insights ビューの説明

Build Insights のパスの調整

Build Insights でファイルをより明確に表示し、ホバー時の完全なパスを確認します。

煩雑さを減らすために、完全な相対パスが非表示になっています。 完全なパスを表示するには、ファイルの上にマウス ポインターを置きます。 また、ファイルと翻訳単位の両方で、新しい "ファイル名" 列が既定で表示され、長いパスを解析せずに素早くファイルを識別できるようになります。

Build Insights パス調整

Unreal Engine uproject のフォルダーを開く

uproject を開く新しい方法。

Visual Studio の uproject サポートを使用して Unreal Engine uproject を開くエントリ ポイントが追加されました。 File メニューから直接 uproject を開くには、[Unreal Engine プロジェクト>開く選択します。..。これにより、Visual Studio で Unreal Engine プロジェクトが開きます。

この機能の使用方法の詳細については、 「Visual Studio で直接 .uproject を編集する」を参照してください。

Unreal Engine の [フォルダーを開く]

シグネチャの変更の改善

改善された C++ インターフェイスを使用してシグネチャを変更できるようになりました。

C++ のシグネチャの変更インターフェイスを更新しました。 パラメーター構成セクションで、パラメーターを追加、削除、再配置できるようになりました。 また、それらを選択して新しい位置にドラッグすることにより、順序を変更できます。

アクセス方法は同じです。Ctrl+. を押して [クイック アクションとリファクタリング] メニューをトリガーし、[署名の変更] を選択します。

署名変更の改善

ユーザーから報告された上位のバグ修正

📣このリリースに組み込まれた、ユーザーから報告されたすべてのバグ修正の完全なリストをご覧ください。

既知の問題

バージョン 17.12.3

2024 年 12 月 3 日rdリリース

主なバグの修正 コミュニティから
.NET 9 を使用して VS v17.11.6 から v17.12 にアップグレードした後の NuGet エラー。 フィードバック チケットの
プライベート Unity メッセージが、未使用のIDE0051として正しくマークされていません。 フィードバック チケットの
Intellisense が Word C++ プロジェクトで動作を停止しました。 フィードバック チケットの
埋め込み言語を含むファイルに入力するときに文字が重複する可能性がある問題を修正しました。 フィードバック チケットの
.razor ファイルと .cshtml ファイルのマージ競合を解決すると、ウィンドウが空になる問題を修正しました。 フィードバック チケットの
Visual Studio 2022 の Azure Devops Permalink は機能しません。 フィードバック チケットの
環境変数DOTNET_SYSTEM_GLOBALIZATION_INVARIANTが 1 に設定されている場合に Visual Studio がクラッシュする問題を修正しました。 フィードバック チケットの
C++ プロジェクトのパフォーマンス プロファイラーの起動エラーを修正しました。 フィードバック チケットの

バージョン 17.12.2

Novemeber 26th, 2024

主なバグの修正 コミュニティから
Visual Studio 17.11 で IntelliSense が動作していたプロジェクトのエラーが C++ IntelliSense に表示されなくなりました。 フィードバック チケットの
Copilot インデクサー プロセスでファイルがロックされなくなりました。 フィードバック チケットの
.NET Core を対象とし、パラメーター配列を使用する C++/CLI コードのコンパイラ クラッシュを修正しました。 フィードバック チケットの
.NET for iOS/tvOS/macOS/macCatalyst リリース ノート
Windows update KB5041580後、マージ エディター ウィンドウを開くと、Visual Studio がサイレント モードでクラッシュします。 フィードバック チケットの
[LKG18]圧縮ラップされた関数の中には、セカンダリ フラグメントに不完全なアンワインド情報が含まれているものもあります。 フィードバック チケットの
arm64 ビルドの内部コンパイラ エラー C1001。 フィードバック チケットの
VS17.12 で重大エラーが発生して SSDT がクラッシュしました。 フィードバック チケットの

バージョン 17.12.1

2024 年 19 月 19 日 リリース

主なバグの修正 コミュニティから
スクロール中の構文の色のちらつきの問題を修正しました https://github.com/dotnet/roslyn/pull/75796
このリリースには、国際言語法への準拠を維持するための更新プログラムが含まれています。

Visual Studio をお選びいただき、チーム一同感謝いたします。 ご質問がある場合は、 Twitter または Developer Communityでお問い合わせください。

コーディングを楽しんでください。
Visual Studio チーム


Note

この更新プログラムには、 サード パーティの通知 またはその付随するライセンスに規定されているとおり、別途ライセンスされている新しい Microsoft またはサード パーティ製ソフトウェアが含まれる場合があります。