次の方法で共有


2019LogoVisual Studio 2019 バージョン 16.10 リリース ノート



開発者コミュニティ | システム要件 | 互換性 | 頒布可能コード | リリース履歴 | ライセンス条項 | ブログ | Visual Studio のドキュメントの最新情報


Note

これは Visual Studio の最新バージョンではありません。 最新のリリースをダウンロードするには、Visual Studio のサイトにアクセスしてください。



Visual Studio 2019 バージョン 16.10 の新機能

サポート期間

このバージョンはサポート対象外になりました。 Visual Studio のサポートの詳細については、Visual Studio 2019 のサポート ポリシーに関するページを参照してください。

最新バージョンのリリース ノートを参照するか、Visual Studio サイトにアクセスして、サポートされている最新バージョンの Visual Studio 2019 をダウンロードしてください。

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 12.4 以降がインストールされている Mac デバイスとペアリングされている場合、次の Xcode シミュレーター機能は使用できません。
    • シミュレートされたメモリの警告
    • シミュレートされた場所

セキュリティ アドバイザリ メモ

CVE-2021-26423 .NET Core のサービス拒否の脆弱性

サービス拒否の脆弱性があり、WebSocket エンドポイントを提供する .NET (Core) サーバー アプリケーションが、1 つの WebSocket フレームを読み取ろうとしている間に、無限ループに陥る可能性があります。

CVE-2021-34485 .NET Core 情報漏えいの脆弱性

必要に応じてクラッシュ ダンプとダンプを収集するツールによって作成されたダンプが、Linux および macOS のグローバル読み取りアクセス許可を使用して作成されるときに、情報漏えいの脆弱性が存在します。

CVE-2021-34532 ASP.NET Core 情報漏えいの脆弱性

情報漏えいの脆弱性は、JWT トークンが解析できない場合にログに記録される場所に存在します。

16.10.4 Visual Studio 2019 バージョン 16.10.4

リリース日: 2021 年 7 月 20 日

Visual Studio 2019 バージョン 16.10.4 のこのリリースの新機能の概要

このリリースで修正された主な問題

  • memset で許可されていないレジスタの使用を削除しました。
  • ビット単位の not 演算子を含む複雑な入れ子にされた式に関する codegen のバグを修正しました。
  • VS Graphics Analyzer のシェーダーのデバッグを修正しました。
  • クラス内テンプレートの特殊化で静的データ メンバーを処理するときに発生する IntelliSense のクラッシュを修正しました。
  • /installer/passive スイッチを指定して X64 VC Redist を実行した場合、ランタイム ファイルが削除されなくなりました。
  • "インクルード ディレクトリ" を前に付けた場合に、インクルード検索の順序が正しくなくなることがあるイシューを修正しました。
  • VARIANT の誤用のバグを検出するチェッカー拡張機能の 1 つによって引き起こされるパフォーマンス問題と擬陽性を修正しました。
  • 列挙値をインデックスとして誤用するバグを検出するチェッカー拡張機能の 1 つによって引き起こされるパフォーマンスの問題を修正しました。
  • Live Share 言語サービスの修正プログラムを導入しました。これにより、コラボレーション セッション参加者向けの主要なコード編集機能 (コード補完、構文の強調表示、エラーなど) を復元しました。
  • コンカレンシー アナライザーにより、自動ロック パターンを伴う C26110 (ロック取得の失敗) という誤った警告が生成されなくなりました。
  • C# および Visual Basic のコンパイラで、InternalsVisibleTo が他のアセンブリ レベル属性と衝突するクラッシュを修正しました。
  • WPF NetCore アプリと Project Reunion アプリなど、Windows アプリケーション パッケージ プロジェクトを使用してプロジェクトをパッケージ化する際に発生するイシューを修正しました。

エラー アセット ファイル '...\obj\wappublish\win10-x86\project.assets.json' が見つかりません。 このファイルを生成するには、NuGet パッケージの復元を実行します。 App4 (パッケージ) C:\Program Files\dotnet\sdk\5.0.302\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets 242

この問題は、パッケージ プロジェクトによって project.assets.json ファイルが検索される際に、win-$(configuration) ではなく、win10-$(configuration) という誤ったディレクトリが検索されることにより発生していました。

Developer Community から


16.10.3 Visual Studio 2019 バージョン 16.10.3

リリース日: 2021 年 6 月 29 日

Visual Studio 2019 バージョン 16.10.3 のこのリリースの新機能の概要

このリリースで修正された主な問題

  • モジュールからインポートされたシンボルの [定義へ移動] によって、そのシンボルの定義ではなくモジュール ファイルの開始に移動するイシューを修正しています。
  • テキスト ボックスの境界線の色の明るさ比が 3:1 未満であるため、視覚障がいのある開発者が、画面のフォーカスを特定するのが困難なイシューを修正しました。
  • データベース プロジェクトを修正しました: ソリューション エクスプローラーから開いているファイルにファイルをドラッグすると、ファイル システムからファイルが削除される。
  • データベース プロジェクトで merge ステートメントを使用するとビルド エラーが発生するイシューを修正しました。
  • インストールされている拡張機能を報告するときに、ディスクのパスを送信しなくなりました。
  • クイック スタート ウィンドウを閉じようとすると、Visual Studio がクラッシュすることがあるイシューを修正しました。
  • ツール ウィンドウを表示すると VS がクラッシュするイシューを修正しました。
  • 関連のない G++/GCC で生成されたシンボルがアプリケーションに読み込まれる場合の、ユーザーコードでの C++ のエディット コンティニュを修正しました。
  • iAd フレームワークからのプライベート セレクターの使用を修正します。
  • XAML デザイナーで発生するエラーが原因の VS でのクラッシュを修正しました
  • .netcoreapp プロジェクトを参照する Windows アプリケーション パッケージ プロジェクトで .msixbundle が生成されるイシューを修正しました。
  • プロジェクトが最新であり、変更が不要な場合でも、WAP プロジェクトに迅速で最新のチェックを実行できず、それらのプロジェクトが (スキップされずに) ビルドされ、IDE での増分ビルド時間がさらに長くなっている問題を修正しています。

Developer Community から


16.10.2 Visual Studio 2019 バージョン 16.10.2

リリース日: 2021 年 6 月 15 日

Visual Studio 2019 バージョン 16.10.2 のこのリリースの新機能の概要

このリリースで修正された主な問題

  • コード分析でのコンカレンシー チェック機能が向上しました。 複雑な制御フローの改ざんがより難しくなりました。
  • この修正プログラムにより、外部ヘッダーの分析がスキップされ、外部ヘッダーからの警告が抑制されることで、外部ヘッダーの動作が復元されます。
  • 不完全な IntelliSense が表示される、またはパフォーマンスが低下する可能性がある .aspx/ascx ファイルを修正しました。
  • 大規模なプロジェクトで作業する際の Unity CodeLens プロバイダーのスケーラビリティのイシューを修正しました。
  • Azure サービス認証オプション ページの翻訳済み文字列が元に戻りました。
  • Resharper 拡張機能を使用する場合の断続的なビジュアル コード表示のイシューを修正しました。
  • 特定のツール ウィンドウ、エディター、およびデザイナーのレンダリングが小さすぎてコンテンツが表示されないイシューを修正しました。
  • アプリを実行する場合、または App Store に発行しようとするときに、Xamarin iOS にアプリ アイコンが見つからない問題を修正しました。
  • AOT+LLVM を使用したプロジェクトのビルドが、XA3001 エラーで失敗しなくなりました。
  • Visual Studio 2019 バージョン 16.10 にアップグレードした後、特定の状況では、UWP アプリの発行が失敗し、"指定されたリソース名がイメージ ファイルに見つかりません" というエラー メッセージにより失敗することがあります。 これが修正されました。
  • デバイス構成が変更されると Visual Studio 2019 の応答が停止するイシューを修正しました。
  • MSBuild の次の 3 つのイシューが修正されます。
    • Azure DevOps でのビルド時に MSB4017 エラーが回避される。
    • $([MSBuild]::MakeRelative()) で入力時の末尾のスラッシュが再び保持されるようになった。
    • 末尾に ** パターンを持つ glob を除外すると、ピリオドのないファイルが再び除外されるようになった characters

Developer Community から


16.10.1 Visual Studio 2019 バージョン 16.10.1

リリース日: 2021 年 6 月 8 日

Visual Studio 2019 バージョン 16.10.1 のこのリリースの新機能の概要

このリリースで修正された主な問題

  • IntelliSense コンパイラでクラッシュする原因となるイシューを修正しました。
  • テスト エクスプローラーがソリューションで開いている場合に Visual Studio 2019 インスタンスが終了する原因となるイシューを修正しました。
  • 開発者がコマンド ラインから部分的なソリューションをビルドする場合の失敗を修正しました。
  • .NET Core アプリケーションの ClickOnce 発行の失敗を修正しました。
  • 呼び出し履歴ウィンドウで Visual Studio 2019 がクラッシュすることがあるイシューを修正します。
  • iOS バインド プロジェクトをビルドするときの、"メタデータ ファイル '***\bin\Debug\NativeLibrary.dll' が見つかりませんでした" というビルド エラーを修正します。

セキュリティ アドバイザリ メモ

CVE-2021-31957 ASP.NET サービス拒否の脆弱性

ASP.NET Core によってクライアントの切断が不適切に処理される場合、サービス拒否の脆弱性が存在します。

Developer Community から


16.10.0 Visual Studio 2019 バージョン 16.10.0

リリース日: 2021 年 5 月 25 日

Visual Studio 2019 バージョン 16.10.0 のこのリリースの新機能の概要

C++

  • /std:c++latest スイッチですべての C++20 の機能を使用できるようになりました。 MSVC の C++20 標準 (現在は ISO によって発行されている) の実装は機能が完全ですが、いくつかの重要な C++20 ライブラリ機能は、後の欠陥レポート (ISO C++20 バグ修正) によって修正されることが予想されます。これらは ABI と互換性のない方法で変更される可能性があります。 詳細については、Microsoft/STL のイシュー #1814 を参照してください。
    • C++20 の即時関数と constinit のサポートが、16.10 で追加されました
    • <chrono> の最後の部分: 新しいクロック、うるう秒、タイム ゾーン、解析
    • テキストの書式設定に対する <format> の実装
  • /openmp:llvm が、x64 に加えて、x86 と ARM64 でも使用できるようになりました。
  • カスタマイズされたコンパイル警告レベルとコード分析設定により、インクルード ディレクトリを外部として指定できるようになりました。
  • 以前の言語モードに C++20 スタイルのコルーチンを有効にする /await:strict スイッチを追加しました。
  • デバッガーで std::coroutine_handle<T> が視覚化され、元のコルーチン関数の名前とシグネチャ、および現在の中断ポイントが表示されるようになりました。
  • CMakePresets のサポートを追加しました。
  • Visual Studio で新しいリモート接続を追加するときに、サーバーによって提示されるホスト キーのフィンガープリントを受け入れるか拒否するかが求められるようになります。
  • 警告の目的で外部として扱われる必要があるヘッダーを指定するために、MSVC に /external スイッチを追加しました。

Docker ツールの機能強化

  • どのサービスを開始するかを構成する起動プロファイルを Compose ファイル内に作成する機能。
  • イメージにタグを付ける機能。
  • コンテナーの [ボリューム] タブを追加しました。
  • コンテナーの [ラベル] タブを追加しました。
  • イメージの [ラベル] タブを追加しました。
  • コンテナーは、Compose プロジェクトによってグループ化されました。

[エディター]

  • すっきりした表示がお好みの場合は、Visual Studio の検索 (Ctrl + Q) で "行間" を検索して、行間を変更できます。 このオプションは、[テキスト エディター] > [全般] の下にあります。
  • [フォルダーを指定して検索] と [すべての参照の検索] には、結果を保持するためのコントロールがあります。 コミュニティからのフィードバックに基づいて、[結果を保持] オプションを既定でオンに切り替えるオプションを追加しました。 このオプションは、Visual Studio の検索 (Ctrl + Q) で "既定で検索結果を保持する" を検索することで見つけることができます。 このオプションは、[環境] > [検索と置換] の下にあります。 現在、ユーザーは、[フォルダーを指定して検索] は 5 件、[すべての参照の検索] はさらに 5 件の結果に制限されています。
  • [フォルダーを指定して検索] の新しいオプションを使用すると、ユーザーは追加の検索を実行し、その結果を前の検索に追加できます。

エディターの拡張性

  • IntraTextAdornmentTags を管理するコードの動作が変更されました。 この変更により、他の ITagger と同様に、基になるタグが変更された場合はタグ変更イベントを発生させる必要があります。 そうしないと、タグが更新されないおそれがあります。

デバッグと診断

  • メモリ ダンプの診断分析に、マネージド Linux のコア ダンプが含まれるようになりました。

Git の生産性

  • ディープ リンクを使用して Web に移動し、新しい pull request を作成し、Git メニューから GitHub または Azure DevOps の PR を表示します。
  • ブランチ ピッカーから 1 回の選択でローカルとリモートのブランチをチェックアウトします。
  • コンテキスト メニューを使用して、リポジトリ ピッカーから項目を削除します。
  • [Git] > [設定] を使用して、Git リポジトリを開くときのソリューションの自動読み込みを有効にします。
  • [Git] > [設定] を使用して、Git リポジトリ ウィンドウからブランチをチェックアウトするためのダブルクリックの動作を切り替えます。
  • [Git 変更] ウィンドウのオーバーフロー メニューから、ブランチと複数のリモートを同期 (プルしてプッシュ) します。
  • オーバーフロー メニューから、[Git 変更] ウィンドウのツール バーに表示される操作 (フェッチ、プル、プッシュ、同期) をカスタマイズします。
  • [Git 変更] ウィンドウのオーバーフロー メニューから、ブラウザーでリポジトリを開きます。
  • ステータス バーからローカル ブランチとリモート ブランチを検索してチェックアウトします。
  • ステータス バーからローカル Git リポジトリを検索して切り替えます。
  • [Git] メニューのローカル リポジトリの一覧が Visual Studio の起動時に読み込まれない問題を修正しました。
  • リポジトリを開いたときに、入れ子になったプロジェクトのサブリポジトリをローカル リポジトリの一覧に追加します。
  • [Git] > [設定] を使用してリポジトリを切り替えるときに、ソリューションを開いたままにします。
  • [Git] > [設定] を使用してリポジトリを開くときに、フォルダーを開く機能を無効にします。
  • ステータス バーの [プッシュされていないコミット] ボタンまたは [Git] メニューの [同期] コマンドを使用して、ブランチをリモートと同期します。
  • 受信コミットがない場合でも、[Git リポジトリ] ウィンドウの履歴ペインからフェッチしてプルします。
  • [コミットの詳細] と、[Git リポジトリ] ウィンドウに埋め込まれたファイルの変更の比較を表示します。
  • Azure DevOps Git リポジトリを開いたときに、自動的に再接続するか、最初の Azure DevOps 接続を確立するようにプロンプトを表示します。
  • マージやリベースの際に、ソースとターゲットという紛らわしい用語に代わって、ブランチ名が表示されます。
  • ソリューション エクスプローラーのソース管理のグリフのパフォーマンスと信頼性を強化しました。
  • 空の場合でも、[Git リポジトリ] ウィンドウで受信セクションと送信セクションが保持されます。
  • [Git Changes]\(Git 変更\) ウィンドウの複数のリモートのフェッチ/プル/プッシュのドロップダウンを 1 つのアクション メニューに統合しました。

.NET の生産性

  • メソッド呼び出しの引数入力候補
  • EditorConfig UI
  • 継承チェーンを視覚的に検査して移動する
  • キャスト、インデクサー、および演算子の IntelliSense 入力候補
  • ソース ジェネレーターのデバッガー サポート
  • Visual Basic のコード クリーンアップ サポート
  • エディット コンティニュ (EnC) の更新
  • Remove Unused References\(未使用の参照の削除\)
  • スマート改行
  • [LINQ 式の簡略化] のリファクタリング
  • 列挙値に対する IntelliSense 入力候補
  • IntelliSense 入力候補のモード設定
  • 新しい行のコード スタイルの設定
  • ソース ジェネレーターでの [すべての参照の検索] のサポート

Razor (ASP.NET Core) プレビュー エディター

  • IntelliSense 入力候補の更新
  • ジェネリック コンポーネントの定義サポートに移動します
  • タブとスペースの新しいコード スタイルの構成
  • ツール オプションの Razor テキスト エディターが Razor (ASP.NET Core) と呼ばれるようになりました

テスト エクスペリエンスのアクセシビリティの向上

  • Console.Writeline がテスト エクスプローラーに表示されるようになりました
  • テスト出力でタグを保持できるようになったため、ログ ファイルからでもハイパーリンクとスタックトレース リンクをナビゲートできます。
  • 出力が 300 文字を超える場合、またはテスト結果に 10 個を超えるファイルがアタッチされている場合は、1 回のテスト結果に対してログ ファイルが作成されます。
  • また、ログ ファイルをプレビューで開くことができるようになり、タブの管理が容易になりました。
  • ログ ファイルとテスト エクスプローラーは、カーソルを移動する Ctrl + PgUp/PgDn と、選択のための Shift + Ctrl PgUp/PgDn をサポートしています。
  • ログ ファイル エディターで IVsTextView インターフェイスが使用されるようになり、非常に大きなテキスト ファイルを開くことができるようになります。 これにより、ユーザーは切り捨てられたログの Copy All を行い、メモ帳などの別のエディターで開く必要がなくなります。 MSTest の場合は、データ行ごとに個別のログ ファイルを用意するだけではなく、すべての出力を集計する単一のログ ファイルも含まれるようになりました。
  • .NET CLI を使用して Ubuntu および Alpine のコマンド ラインでクロスプラットフォームのコード カバレッジを取得できるようになりました。 そのようなプラットフォームを対象とするマシンでコード カバレッジを取得することに関心があるユーザーが、Windows で通常使用するものと同じコード カバレッジ コレクション コマンドを追加できるようになりました。 .NET テストの詳細については、こちらも参照してください。
  • テスト エクスプローラーの [すべて折りたたむ] ボタンの横に [すべて展開] ボタンが表示されるようになりました。 このコマンドは、キーボード ショートカット (Ctrl + A、Ctrl + →) で実行できますが、フィードバックにより、ボタンを追加して UI を増やした方がよいことがわかりました。 いつも https://developercommunity.visualstudio.com/ からご意見をお寄せいただきありがとうございます。
  • また、テスト エクスプローラーが "期限切れ" を表示する方法にも若干の変更が加えられています。"期限切れ" は、結果が最新のテスト実行のものではないことを示す、グレー表示の、または "フェード表示された" テスト結果です。 最新のテスト実行のものでない結果は、古いものとして表示されます。 以前は、新しいテスト結果 (または再検出された古いテスト結果) も、単色アイコンで表示されていました。 これにより、なぜ一部の "実行されていない" テストがフェード表示され、他のテストがされていないのかに混乱が生じました。 この変更により、"期限切れ" の複雑さが軽減されます。
  • 永続化されたテスト結果機能 (バージョン 16.2 で追加) により、Visual Studio を閉じて再度開いた場合でも、前回のテスト実行のテスト結果を表示できます。 これにより、中断した箇所を記憶でき、別のテスト実行を必要とすることなく、より多くのコンテキストが提供されます。 また、永続化された結果が常に古いものとして表示されるように動作を変更しました。 これにより、そのテスト実行が現在の Visual Studio セッション中に実行されたものではないことがわかりやすくなります。

Web ツール:

  • Azure AD プロビジョニング用の API の V2 への切り替え
  • 接続済みサービスとしての Azure App Configuration が動的構成に対応するようになった

Windows アプリケーション パッケージ プロジェクトの依存関係ツリー

  • WAP プロジェクトに "依存関係ツリー" が追加されました

XAML ツールの機能強化

  • Xamarin.Forms のお客様向けの XAML IntelliSense と XAML ホット リロード
  • WPF の ItemsControls を選択するための XAML サンプルデータを導入しました
  • 一般的に編集されるプロパティにすばやくアクセスするための新しい電球を追加しました
  • ビューモデルの作成に便利な新しい電球を XAML エディターに追加しました

Service Fabric ツール

  • Service Fabric アプリケーションに StartupServices.xml を導入しました

Visual Studio 2019 バージョン 16.10 の新機能の詳細

Docker ツール

[コンテナー] ツール ウィンドウ

このリリースでは、コンテナーとイメージを簡単に表示して操作できるように、[コンテナー] ツール ウィンドウに追加しました。 新しい機能を試すには、[表示] > [その他のウィンドウ] > [コンテナー] に移動するだけです。

  • コンテナーは、Compose プロジェクトによってグループ化されました。 これにより、どのコンテナーがアプリケーションを表しているかを簡単に判断できます。 また、開発中に使用しているラベルを簡単に確認できるように、[コンテナー] に [ラベル] タブを追加しました。

Compose grouping option and containers label tab

  • イメージの [ラベル] タブも追加しました。

Images Label tab

  • 新しい [ボリューム] タブで、実行中のコンテナーのボリュームを表示でき、Visual Studio でファイルを開くこともできます。

Container Volumes tab

  • [コンテナー] ツール ウィンドウからイメージにタグを付ける機能をサポートしました。 [イメージ] から、イメージを右クリックして [タグ] を選択します。

Tagging an image

作成
  • Visual Studio の Docker Compose ツールに、Compose ファイルで定義したサービスの任意の組み合わせを実行する機能が備わりました。 [デバッグ] ドロップダウンを開くか、docker-compose プロジェクトを右クリックして、[Manage Docker Compose Launch Settings]\(Docker Compose 起動設定の管理\) を選択して作業を開始します。

Manage Docker Compose Launch Settings

Git の生産性

  • Visual Studio で pull request を容易に作成できるように、リポジトリの PR を作成したり PR の一覧を表示したりすることができる Web ページへのディープ リンク ショートカットであるメニュー項目を追加しました。 リポジトリが GitHub と Azure DevOps のどちらにあるかに基づいて、メニューは動的に作成されます。

Create a PR and view list of PRs on the web from the Git menu

  • ステータス バーのブランチ ピッカーと [Git 変更] ウィンドウで、ブランチをシングル選択すると、ローカルまたはリモートのブランチがチェックアウトされるようになりました。 コンテキスト メニューには、その他のアクションが表示されます。

Left click to check out a branch and right click for additional actions

  • ステータス バーの新しいリポジトリ ピッカーには、一覧から項目を削除できる右クリックのコンテキスト メニューがあります。

Remove items from the repository picker list through the context menu

  • リポジトリ ピッカーまたは Git メニューのローカル リポジトリ一覧を使用すると、リポジトリを開いてもソリューションは自動的に読み込まれなくなります。 代わりに、フォルダー ビューと使用できるソリューションが一覧に表示されて選択できます。 この動作は、[Git] > [設定] でチェック ボックスを切り替えて変更できます。

  • [Git リポジトリ] ウィンドウでブランチ名をダブルクリックすることにより、ブランチをチェックアウトできます。 この動作を変更する場合は、[Git] > [設定] でチェック ボックスを切り替えます。

Settings to toggle auto-sln load and branch check out.

  • [Git 変更] ウィンドウからさらに多くのアクションを実行できるようになりました。 ツール バーのアイコンはカスタマイズ可能であり、表示するアクションを選択できます。 オーバーフロー メニューから複数のリモートと同期できます。 また、ブラウザーでリポジトリのリモート Web ページを開くことができます。

Git Changes overflow menu with callouts to Sync, open in browser, and toolbar actions.

  • ローカル ブランチとリモート ブランチを検索し、ステータス バーのブランチ ピッカーから一般的なブランチ アクションを実行します。

Branch picker in the status bar.

  • ステータス バーのリポジトリ ピッカーからローカル Git リポジトリを検索して切り替えます。

Repo picker in the status bar.

  • Git メニューのローカル リポジトリの一覧が Visual Studio の起動時に読み込まれない問題を修正しました。
  • [Git] > [設定] に、リポジトリを開いて切り替える方法を管理する 2 つの新しいオプションを追加しました。 別のリポジトリに切り替えるときに、現在のソリューションを開いたままにすることができるようになりました

Setting to keep solution open.

  • リポジトリを開くときにリポジトリのルート フォルダーを読み込まないように選択することもできます。

Setting to open the folder

  • ステータス バーの [プッシュされていないコミット] ボタンまたは [Git] メニューの [同期] コマンドを使用して、ブランチをリモートと同期 (プルしてからプッシュ) します。

Sync button in the status bar.

  • 受信コミットがない場合でも、[Git リポジトリ] ウィンドウの履歴ペインからフェッチしてプルします。 これらのセクションには、ステータス バーまたはキーボード ショートカットの Ctrl + 0 + Y からアクセスします。

Incoming section in Git Repository window with a callout to fetch and pull buttons.

  • [Git リポジトリ] ウィンドウでコミットを選択すると、その詳細とファイルの変更の比較が表示されるので、他のウィンドウに移動する必要がありません。 2 つのコミットを選択し、右クリックして同じウィンドウ内で比較します。 詳細をそれぞれのウィンドウに全画面でポップアップ表示して、変更点を詳しく調べます。

Embedded commit details and file comparison in Git Repository window.

  • ファイル内の削除と挿入の数を表示し、比較のレイアウトを変更します。

Popped out Commit window with callouts to number of file changes and layout view buttons in toolbar

  • Azure DevOps Git リポジトリを開いたときに、自動的に再接続するか、最初の Azure DevOps 接続を確立するようにプロンプトを表示します。 これにより、開いているリポジトリの作業項目とビルドにアクセスできるようになります。

Info bar in Git Changes window prompting you to connect to Azure DevOps for the current repository.">

  • リベースまたはマージの競合を解決すると、マージ エディターとコンテキスト メニューに、現在のブランチと受信ブランチの名前が表示されます。 これにより、ソースとターゲットという紛らわしい用語が修正されます。

Context menu when resolving conflicts displays the branch names.

Rebase and Merge editor displays branch names in the headings.

.NET の生産性

  • 使用していないプロジェクト参照と NuGet パッケージをクリーンアップできる、[Remove Unused References]\(未使用の参照の削除\) コマンドを追加しました。 このオプションは既定でオフになっているので、[ツール]>[オプション]>[テキスト エディター]>[C#]>[詳細設定] で、[Show “remove Unused References” command in Solution Explorer (experimental)]\(ソリューション エクスプローラーで "未使用の参照の削除" コマンドを表示する (実験段階)\) をオンにする必要があります。 このオプションをオンにすると、[Remove Unused References]\(未使用の参照の削除\) コマンドがプロジェクト名の右クリック メニューまたはソリューション エクスプローラーの Dependencies ノードに表示されます。

Remove Unused References command

[Remove Unused References]\(未使用の参照の削除\) を選択すると、ダイアログが開き、削除されるすべての参照が表示されます。維持する必要がある参照を保持するオプションも用意されています。

Remove Unused References dialog

  • コミット文字として Shift+Enter を使用すると、一組の中かっこを自動的に挿入し、それらのかっこの間にキャレットを配置する、スマート改行という新しいコマンドを追加しました。 スマート改行は、中かっこのほかにプロパティ、イベント、フィールド、およびオブジェクト作成式を必要とする、すべての型宣言で機能します。 以下の例では、クラスとフィールドにスマート改行を使用しています。 フィールドの末尾にセミコロンがない場合は、Shift+Enter を押すと、一組の中かっこが追加され、フィールドがプロパティに変換されます。 もう一度 Shift+Enter を押してコミットを取り消すことができます。これにより、フィールドの末尾にセミコロンが自動的に追加されます。

Smart Break Line

  • [LINQ 式の簡略化] がリファクタリングされました。これにより、.Where() メソッドの Enumerable に対する不要な呼び出しが削除され、パフォーマンスと読みやすさの向上につながります。 LINQ 式にカーソルを置きます。 (Ctrl+. ) キーを押して、 [クイック アクションとリファクタリング] メニューをトリガーします。 [LINQ 式の簡略化] を選択します。

Simplify LINQ Expression

  • 列挙型名が入力されていなくても、型がわかっている場合に、列挙値に対して IntelliSense 入力補完が機能するようになりました。

IntelliSense completion for Enum values

  • IntelliSense 入力補完の新しいモード設定を追加しました。これにより、入力補完の既定のオプションを設定できます。 この新しい設定は、[ツール]>[オプション]>[テキスト エディター]>[詳細設定]>[Default IntelliSense completion mode]\(IntelliSense 入力補完の既定のモード\) から使用できます。Ctrl+Alt+Space で最後に使用した設定が保持される [Last used]\(最後の使用\)、タブ上でのみ補完する [Tab-only]\(タブのみ\)、現在の既定の動作で、句読点と特殊文字を補完する [自動] のオプションの中から選択できます。

IntelliSense completion mode setting

  • 新しい行の新しいコード スタイルの基本設定を追加しました。 これらの基本設定を構成するには、EditorConfig ファイルを使用するか、[ツール]>[オプション]>[テキスト エディター]>[C#]>[コード スタイル]>[New line preferences (experimental)]\(改行設定 (実験段階)\) で構成します。

Code style options for new lines

たとえば、コード スタイルの基本設定を設定して、診断を報告し、余分な空白行を削除するコード修正を提供できます。

Code fix remove extra blank lines

  • ソース ジェネレーターで [すべての参照の検索] がサポートされることで、ソースが生成されたドキュメントで参照を見つけることができるようになりました。

  • これで、メソッド呼び出しを記述するときに引数を自動的に挿入する補完オプションが追加されました。 この機能は既定ではオフになっているため、[ツール] > [オプション] > [テキスト エディター] > [C#] > [IntelliSense] で有効にし、Tab キーを 2 回選択して引数を挿入する必要があります (実験段階)。 メソッド呼び出しの記述を開始し、Tab キーを 2 回 (Tab + Tab) 押します。 メソッド呼び出しに、メソッドの既定値に基づく引数が挿入されることに注目します。 次に、パラメーター ヒントを使用して、挿入したい引数の一覧を上下方向キーを押して循環させることができます。 また、引数の入力を開始して IntelliSense 入力候補一覧を表示し、セミコロンを入力してその引数をコミットし、メソッド呼び出しの末尾にセミコロンを追加することができます。

Method call argument completion

  • EditorConfig 用の UI を作成しました。 ソリューションから C# または Visual Basic EditorConfig ファイルを開きます。 新しい UI が開き、C# と Visual Basic の両方のコード スタイルとコード品質構成オプションが表示されることに注目します。

EditorConfig UI

  • これで、継承チェーンの移動と検査を視覚的に表現できるようになりました。 このオプションは既定でオフになっているので、[ツール] > [オプション] > [テキスト エディター] > [C#] > [詳細設定] を選択し、[Show inheritance margin]\(継承の余白を表示\) を選択します。 継承の余白を有効にすると、コードの実装とオーバーライドを表す新しいアイコンが余白に追加されます。 [Inheritance Margin]\(継承の余白\) アイコンをクリックすると、移動先として選択できる継承オプションが表示されます。

Inheritance Margin Icons

  • キャスト、インデクサー、および演算子の IntelliSense 入力候補が追加されました。

IntelliSense completion for casts, indexers, and operators

  • ソース ジェネレーターのデバッガー サポートが追加されました。 まず、Visual Studio インストーラーから .NET Compiler Platform SDK コンポーネントをインストールする必要があります。 次に、自分のプロジェクト ファイルに <IsRoslynComponent>true</IsRoslynComponent> プロパティを追加する必要があります。 次に、[Project Properties Debug]\(プロジェクト プロパティのデバッグ\) ページで、'Roslyn コンポーネント' デバッガー オプションを有効にして、適切なターゲット プロジェクトを選択します。 次に、ジェネレーター プロジェクトで F5 キーを押します。これにより、ターゲット プロジェクトをビルドする CSC.exe/VBC.exe が開始され、ジェネレーター コードをデバッグできるようになります。

Source Generator debugger

Source Generator debugger target project

このリリースでは、Visual Studio のエディット コンティニュ (EnC) デバッグ エクスペリエンスに次の拡張機能も追加しました。

  • 部分クラス内のコードに変更を適用できるようになりました。
  • 生成されたソース ファイル内で変更を適用できるようになりました。
  • using ディレクティブを追加または変更できるようになりました。
  • 信頼性の向上とメモリ消費の削減。

3 つの変更はすべて、EnC が現在サポートされている場所であればどこでも利用でき、C# と Visual Basic の両方のソース ファイルで動作します。

デバッガーと診断

  • マネージド メモリ ダンプの一般的な問題を検出するために、いくつかのアナライザーを開発しました。 この分析が、マネージド Linux のコア ダンプで実行できるようになりました。

Automatically analyze memory dumps

ありがとう

最後になりましたが、今月の .NET の生産性に貢献してくれた以下の方々に感謝いたします。(または Roslyn):

Razor (ASP.NET Core) プレビュー エディター

新しいプレビューの Razor エディターで、以下の Razor 編集機能がサポートされるようになりました。

  • IntelliSense 入力候補で、HTML コンポーネント、TagHelper 要素、および C# 属性がフィルター処理されるようになりました。

Razor IntelliSense filters

  • C# オーバーライドの IntelliSense 入力候補。
  • ジェネリック コンポーネントの定義サポートに移動します。
  • タブとスペースの新しいコード スタイルの構成オプション。 これらのコード スタイルは、新しい Razor ファイルを入力、書式設定、および作成するときに尊重されます。 [ツール] > [オプション] > [テキスト エディター] > [Razor (ASP.NET Core)] > [タブ] でタブとスペースを構成できます。
  • [ツール] オプションの Razor テキスト エディターの名前が "ASP.NET Core Razor 言語サービス" から Razor (ASP.NET Core) に変更されました。

新しいプレビューの Razor エディターを有効にするには、[ツール] > [オプション] > [環境] > [プレビュー機能] に移動し、[Enable experimental Razor editor]\(試験段階の Razor エディターを有効にする\) を選択して、Visual Studio を再起動します。

テスト エクスペリエンスのアクセシビリティの向上

  • Console.Writeline がテスト エクスプローラーに表示されるようになりました。 長い出力は、[テスト詳細の概要] ペインに折りたたみ可能なセクションとして表示されます。 出力が一定の長さを超える場合、最初の数行が表示され、テスト ログを別のウィンドウで開くオプションにより、切り捨てられます。 20 個を超えるフレームがある場合はスタックトレースが切り捨てられ、最初と最後の 10 フレームのみが表示されます。 切り捨てデザインの重要な部分として、テストの実行で大きな出力がある場合の VS のフリーズを減らすことにも重点を置きました。 出力が大きいテストによって、UI スレッドがブロックされることがなくなります。

Test output includes Console.Writeline

  • テスト出力でタグを保持できるようになったため、ログ ファイルからでもハイパーリンクとスタックトレース リンクをナビゲートできます。 これらのリンクが、キーボードにも対応しました。

Test output preserves hyperlinks and stacktraces

Test logs also preserve hyperlinks and stacktraces

  • 出力が 300 文字を超える場合、またはテスト結果に 10 個を超えるファイルがアタッチされている場合は、1 回のテスト結果に対してログ ファイルが作成されます。 また、ログ ファイルをプレビューで開くことができるようになり、タブの管理が容易になりました。 ログ ファイルとテスト エクスプローラーは、カーソルを移動する Ctrl + PgUp/PgDn と、選択のための Shift + Ctrl PgUp/PgDn をサポートしています。

Test logs are easier to select with keyboard shortcuts

  • ログ ファイル エディターで IVsTextView インターフェイスが使用されるようになり、非常に大きなテキスト ファイルを開くことができるようになります。 これにより、ユーザーは切り捨てられたログの Copy All を行い、メモ帳などの別のエディターで開く必要がなくなります。 MSTest の場合は、データ行ごとに個別のログ ファイルを用意するだけではなく、すべての出力を集計する単一のログ ファイルも含まれるようになりました。

テスト ツール

  • .NET CLI を使用して Ubuntu および Alpine のコマンド ラインでクロスプラットフォームのコード カバレッジを取得できるようになりました。 そのようなプラットフォームを対象とするマシンでコード カバレッジを取得することに関心があるユーザーが、Windows で通常使用するものと同じコード カバレッジ コレクション コマンドを追加できるようになりました。 .NET テストの詳細については、こちらも参照してください。
  • テスト エクスプローラーの [すべて折りたたむ] ボタンの横に [すべて展開] ボタンが表示されるようになりました。 このコマンドは、キーボード ショートカット (Ctrl + A、Ctrl + →) で実行できますが、フィードバックにより、ボタンを追加して UI を増やした方がよいことがわかりました。 いつも https://developercommunity.visualstudio.com/ からご意見をお寄せいただきありがとうございます。
  • また、テスト エクスプローラーが "期限切れ" を表示する方法にも若干の変更が加えられています。"期限切れ" は、結果が最新のテスト実行のものではないことを示す、グレー表示の、または "フェード表示された" テスト結果です。 最新のテスト実行のものでない結果は、古いものとして表示されます。 以前は、新しいテスト結果 (または再検出された古いテスト結果) も、単色アイコンで表示されていました。 これにより、なぜ一部の "実行されていない" テストがフェード表示され、他のテストがされていないのかに混乱が生じました。 この変更により、"期限切れ" の複雑さが軽減されます。
  • 永続化されたテスト結果機能 (バージョン 16.2 で追加) により、Visual Studio を閉じて再度開いた場合でも、前回のテスト実行のテスト結果を表示できます。 これにより、中断した箇所を記憶でき、別のテスト実行を必要とすることなく、より多くのコンテキストが提供されます。 また、永続化された結果が常に古いものとして表示されるように動作を変更しました。 これにより、そのテスト実行が現在の Visual Studio セッション中に実行されたものではないことがわかりやすくなります。

Persisted test results from last Visual Studio session appear faded

Web ツール

動的構成により、構成リソースをミドルウェアを使用して自動的に最新の情報に更新できます。 接続済みサービスとしての App Configuration で、動的構成をアプリケーションに自動的に統合できるようになりました。 この接続済みサービスを使用するには、[接続済みサービス] をクリックし、Azure App Configuration を [サービスの依存関係] として追加します

Windows アプリケーション パッケージ プロジェクトの "依存関係ツリー"

  • Windows アプリケーション パッケージ プロジェクト (WAP) で NuGet パッケージ参照を有効にするための昨年の作業に引き続き、WAP のソリューション エクスプローラー エクスペリエンスで新しい UI を有効にしました。 古いエクスペリエンスでは、このようなパッケージ参照が表示されないか、UI を使用して NuGet パッケージを追加できませんでした。

Windows Application Packaging Project Old User Interface.

  • 新しいエクスペリエンスでは、CPS と .NET プロジェクト システムを利用して、"アプリケーション" サブツリーを介してプロジェクト参照を引き続き表示する一方、NuGet パッケージを管理できる "パッケージ" サブツリーも備えた、"依存関係ツリー" が有効にされました。

Windows Application Packaging Project New User Interface.

XAML ツールの機能強化 (WPF & Xamarin.Forms)

Xamarin.Forms

このリリースでは、Xamarin.Forms のお客様向けに XAML IntelliSense と XAML ホット リロードの 2 つの小さな改良を行いました。 ホット リロードの “変更のみ” で次の誤ったエラーが報告されなくなります。

  • VisualStateManager のセッターで型を指定せずにプロパティを参照 (<Setter Property="BackgroundColor" Value="Red"> など)。
  • マージされた ResourceDictionary が <ResourceDictionary.MergedDictionaries> 要素にラップされていない

例:

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

XAML サンプル データ

このリリースでは、ItemsControls に汎用サンプル データを追加する新しい方法を導入して、XAML デザイナーのデザイン時データ機能をさらに強化しました。 この機能は、WPF の ListBox、ListView、DataGrid に対してのみ機能します。

  • ListBox、ListView、または DataGrid に d:ItemSource='{d:SampleData}' を設定することで、サンプル データを有効にできます
  • これにより、デザイナーのコントロールに、DataTemplates とバインディング パスに一致する 5 つの項目セットのみが表示されます
  • ItemCount プロパティを使用して、生成される項目の数を変更できます。例: d:ItemSource='{d:SampleData ItemCount=3}'

ListBox showing Sample Data.

XAML デザイナーのクイック アクション

  • XAML デザイナーでコントロールを選択すると隅に表示される新しい電球アイコンを使用すると、そのコントロールの一般的に編集されるプロパティにすばやくアクセスできます。

  • サポートされているコントロールは次のとおりです。

    • UWP: Border、Button、Canvas、CheckBox、ComboBox、Grid、HyperlinkButton、Image、ListBox、ListView、NavigationView、RadioButton、Slider、StackPanel、TextBlock、TextBox
    • WPF: Border、Button、Canvas、CheckBox、ComboBox、Grid、Image、Label、ListBox、ListView、StackPanel、TextBlock、TextBox
  • この機能は、UWP、WPF .NET Core、WPF .NET Framework (".NET Framework 用の新しい WPF XAML デザイナー" プレビュー機能がオプション ダイアログで有効になっている場合) で使用できます。

  • XAML デザイナーのクイック アクションには、機能拡張モデルも用意されています。 独自のアクションの作成の詳細については、XAML デザイナー拡張性の GitHub を参照してください

XAML Designer Quick Actions on a Button

XAML 用 MVVM ツール

このリリースでは、ビューモデルを作成するための電球を XAML エディターに導入しました。 この電球は、プロジェクトで MVVM フレームワークが使用されているのが検出されると、XAML ドキュメントのルート要素に表示されます。 ダイアログから、生成されたビューモデル名前空間、フォルダー、継承された基本ビューモデルをカスタマイズできます。

Create view-model lightbulb experience

また、この電球は、生成されたビューモデルを XAML ドキュメントの x:DataType (Xamarin.Forms) または d:DataContext (他のすべてのプラットフォーム) として設定します。これで、ユーザーは XAML エディターの電球をさらに活用して、ビューモデルでバインドされたプロパティとコマンドを生成できます。

Service Fabric Tools

この機能により、Service Fabric アプリケーション設計で StartupServices.xml が導入されます。 このファイルは、ApplicationManifest.xml の DefaultServices セクションをホストします。 この実装により、DefaultServices とサービス定義関連のパラメータは、既存の ApplicationManifest.xml から StartupServices.xml という新しいファイルに移動します。 このファイルは、Visual Studio の各機能 (ビルド/リビルド/F5/Ctrl+F5/発行) で使用されます。

このリリースで修正された主な問題

  • Edit.SmartBreakline コマンドを呼び出す C# 開発者によってプロパティのアクセサー内のすべてのコンテンツが削除されるイシューを修正しました。
  • コードスタイル設定を更新する開発者によって、目的のフォルダー内だけでなく、すべての Visual Studio インスタンスに変更が適用されるイシューを修正しました。
  • "コード変更を適用" アイコンが、ネイティブの、またはマージされたプロジェクトが開くたびに表示されていました。 これが、開発者がデバッグを開始した後にのみ有効になります。
  • AudioUnitPropertyIDType の破壊的変更を修正します
  • UWP 単体テスト フレームワークを使用している開発者がリモート デバイスでテストを実行できないイシューを修正しました。

Developer Community から

Developer Community には、このリリースに付属しているすべての項目の完全な一覧があります。

16.10 でリリースされた投票上位のイシューの一部を次に示します。


既知の問題

Visual Studio 2019 のすべての未解決のイシューと、利用可能な回避策を以下のリンクから参照してください。

フィードバックと提案

皆様のご意見をお待ちしております。 問題がある場合は、インストーラーまたは Visual Studio IDE 自体の右上隅にある [問題の報告] オプションからお知らせください。 右上隅に Feedback Icon アイコンがあります。 製品に関する提案をしたり、Visual Studio 開発者コミュニティで問題を追跡したりすることにより、質問、回答の検索、新機能を提案したりすることができます。 ライブ チャット サポートを介して、無料のインストールのヘルプを取得することもできます。


ブログ

開発者ツールのブログで提供されている洞察や推奨事項を活用すると、すべての新しいリリースに関する最新情報を入手し続けることができ、さまざまな機能について掘り下げた記事を参照することもできます。


Visual Studio 2019 リリース ノート履歴

過去のバージョンの Visual Studio 2019 に関連する詳細については、「Visual Studio 2019 リリース ノート履歴」のページを参照してください。


ページのトップへ