RCLogoVisual Studio 2019 バージョン 16.7 リリース ノート


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


Note

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



サポート期間

Visual Studio 2019 バージョン 16.7 は現在サポートされていません。

Visual Studio 2019 バージョン 16.7 の Enterprise および Professional のユーザーは、2022 月 4 月までサポートされており、セキュリティの脆弱性に対する修正プログラムを受け取りました。 この期間は、2021 年 3 月に Visual Studio 2019 バージョン 16.9 が Visual Studio 2019 製品の次のサービス ベースラインとして指定されたことによって決定されました。 Visual Studio でサポートされるベースラインの詳細については、Visual Studio 2019 のサポート ポリシーに関するページを参照してください。 

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

Visual Studio 2019 バージョン 16.7 リリース

Visual Studio 2019 アーカイブされているリリース ノート

Visual Studio ブログ

Visual Studio ブログは、Visual Studio エンジニアリング チームからの製品の情報の公式な情報源です。 Visual Studio リリースの詳細については、次の投稿を参照してください。


Release Notes Icon Visual Studio 2019 バージョン 16.7.28

リリース日: 2022 年 4 月 19 日

この Visual Studio 2019 バージョン 16.7.28 リリースの内容

  • vctip.exe の 16.7.27 からの回帰を修正しました

Release Notes Icon Visual Studio 2019 バージョン 16.7.27

リリース日 2022 年 4 月 12 日

この Visual Studio 2019 バージョン 16.7.27 リリースの内容

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

CVE-2022-24765 特権の昇格の脆弱性Windows の Git には特権の昇格の脆弱性が存在するおそれがあります。これにより、Git ディレクトリを検索中に Git 操作がリポジトリの外部で実行される場合があります。 Windows の Git はバージョン 2.35.2.1 にアップデートされました。

CVE-2022-24767 DLL 乗っ取りの脆弱性 SYSTEM ユーザー アカウントでアンインストーラーを実行すると、Windows インストーラーの Git に DLL が乗っ取られる脆弱性が存在するおそれがあります。 Windows の Git はバージョン 2.35.2.1 にアップデートされました。

CVE-2022-24513 特権の昇格の脆弱性Microsoft Visual Studio アップデータ サービスがローカル構成データを不適切に解析すると、特権の昇格の脆弱性が発生するおそれがあります。


Release Notes Icon Visual Studio 2019 バージョン 16.7.26

"リリース日: 2022 年 3 月 8 日"

この Visual Studio 2019 バージョン 16.7.26 リリースの内容

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

CVE-2020-8927 の脆弱性 .NET 5.0 および .NET Core 3.1 にリモート コード実行の脆弱性が存在し、1.0.8 より前のバージョンの Brotli ライブラリにバッファー オーバーフローが存在します。

CVE-2022-24464 の脆弱性 特定の種類の http フォーム要求を解析するときに、.NET 6.0、.NET 5.0、および .NET CORE 3.1 にサービス拒否の脆弱性が存在します。

CVE-2022-24512 の脆弱性 .NET Double Parse ルーチンでスタック バッファー オーバーランが発生する .NET 6.0、.NET 5.0、および .NET Core 3.1 にリモート コード実行の脆弱性が存在します。

CVE-2021-3711 OpenSSL バッファー オーバーフローの脆弱性 Git for Windows で使用される OpenSSL には、バッファー オーバーフローの潜在的な脆弱性が存在します。 Git for Windows がバージョン 2.35.1.2 に更新され、この問題が対処されています。


Release Notes Icon Visual Studio 2019 バージョン 16.7.25

リリース日: 2022 年 2 月 8 日

この Visual Studio 2019 バージョン 16.7.25 リリースの内容

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

CVE-2022-21871 診断ハブ標準コレクター ランタイムの特権の昇格の脆弱性 診断ハブ標準コレクターがデータ操作を適切に処理しなかったとき、特権が昇格される脆弱性があります。


Release Notes Icon Visual Studio 2019 バージョン 16.7.24

リリース日: 2022 年 1 月 11 日

この Visual Studio 2019 バージョン 16.7.24 リリースの内容

  • Windows ターミナルを既定のターミナルとして使用したときにアプリケーションを複数回デバッグできないという問題を修正しました。
  • 制限付き構成上で顧客のブロックを解除するためのセットアップ修正
  • クライアントが最新のブートストラップを更新できないという問題を修正しました。 クライアントが 2022 年 1 月以降に出荷されたブートストラップとインストーラーを使用すると、後続のブートストラップを使用する更新プログラムはすべて、製品のライフサイクルの期間中は機能します。

Developer Community から


Release Notes Icon Visual Studio 2019 バージョン 16.7.23

リリース日: 2021 年 12 月 14 日

この Visual Studio 2019 バージョン 16.7.23 リリースの内容

  • Python 3.9.7 を Python ワークロードに追加しました。 セキュリティの脆弱性のため、Python 3.7.8 が削除されました。

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

CVE-2021-43877 脆弱性 特権の昇格の脆弱性が ANCM に存在し、これによって .NET core、.NET 5、.NET 6 のアプリケーションが IIS 内でホストされている場合に特権の昇格が許可される場合があります。


Release Notes Icon Visual Studio 2019 バージョン 16.7.22

リリース日: 2021 年 11 月 16 日

この Visual Studio 2019 バージョン 16.7.22 リリースの内容

  • ブートストラップで --useLatestInstaller パラメーターが考慮され、最新のインストーラーがレイアウトに統合されるようになりました。 Visual Studio 2022 に含まれるこの最新のインストーラーを使用すると、企業がクライアントをあるレイアウトの場所から別の場所に移行するシナリオが可能になります。 詳細については、[Visual Studio 管理者ガイド] を参照してください (* ブートストラップに --useLatestInstaller パラメーターが適用されるようになりました。これにより、最新のインストーラーがレイアウトに統合されます。Visual Studio 2022 に付属するこの最新のインストーラーにより、企業がクライアントをあるレイアウトの場所から別のレイアウトの場所に移行するシナリオが可能になります。詳細については、「Visual Studio 管理者ガイド」を参照してください)。

Release Notes Icon Visual Studio 2019 バージョン 16.7.21

リリース日: 2021 年 11 月 9 日

この Visual Studio 2019 バージョン 16.7.21 リリースの内容

  • [スタート] メニューのショートカット リンクが非表示になる原因となっていたバグを修正しました。 このバグは、同じコンピューター上で各種製品 SKU の複数のインスタンスを更新する場合にのみ発生していました。

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

CVE-2021-42319 特権の昇格の脆弱性 Visual Studio インストーラーに含まれている WMI プロバイダーに、特権の昇格の脆弱性が存在します。

CVE-2021-42277 診断ハブ標準コレクター サービスの特権の昇格の脆弱性 診断ハブ標準コレクターがファイル操作を適切に処理しなかった場合、特権の昇格の脆弱性が存在します。


Release Notes Icon Visual Studio 2019 バージョン 16.7.20

リリース日: 2021 年 10 月 12 日

この Visual Studio 2019 バージョン 16.7.20 リリースの内容

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

CVE-2021-41355 .NET 5.0 の漏えいの脆弱性 .NET には、Linux 上で System.DirectoryServices.Protocols.LdapConnection がプレーン テキストで資格情報を送信するという情報漏えいの脆弱性が存在します。

CVE-2020-1971 OpenSSL のサービス拒否の脆弱性 Git によって使用される OpenSSL ライブラリに、潜在的なサービス拒否の脆弱性が存在します。

CVE-2021-3449 OpenSSL のサービス拒否の脆弱性 Git によって使用される OpenSSL ライブラリに、潜在的なサービス拒否の脆弱性が存在します。

CVE-2021-3450 OpenSSL のサービス拒否の脆弱性 Git によって使用される OpenSSL ライブラリに、潜在的なフラグ バイパスが存在します。


Release Notes Icon Visual Studio 2019 バージョン 16.7.19

リリース日: 2021 年 9 月 14 日

この Visual Studio 2019 バージョン 16.7.19 リリースの内容

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

CVE-2021-26434 Visual Studio の不適切なアクセス許可の割り当てによる特権の昇格の脆弱性C++ によるゲーム開発をインストールし、[Unreal Engine のインストーラー] ワークロードを選択すると、Visual Studio にアクセス許可の割り当ての脆弱性が存在します。 インストール中、システムは LPE に対して脆弱です。すべてのユーザーへの書き込みアクセス権を使用してディレクトリが作成されます。

CVE-2021-36952 Visual Studio リモート コード実行の脆弱性 Visual Studio では、メモリ内のオブジェクトが誤って処理されたときにリモート コード実行の脆弱性が存在します。 脆弱性の悪用に成功した攻撃者は、現在のユーザーのコンテキストで任意のコードを実行することができます。


Release Notes Icon Visual Studio 2019 バージョン 16.7.18

''リリース日: 2021 年 8 月 10 日''

この Visual Studio 2019 バージョン 16.7.18 リリースの内容

  • update コマンドのコマンド ライン実行に影響していた問題を修正しました。 更新が初めて失敗した場合、その後に update コマンドを発行すると、更新によって前の操作が中断した箇所から再開されるようになりました。

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

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

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

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


Release Notes Icon Visual Studio 2019 バージョン 16.7.17

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

この Visual Studio 2019 バージョン 16.7.17 リリースの内容

  • .NET 3.1.411 SDK が Visual Studio 2019 に追加されました。

Release Notes Icon Visual Studio 2019 バージョン 16.7.16

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

この Visual Studio 2019 バージョン 16.7.16 リリースの内容

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

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


Release Notes Icon Visual Studio 2019 バージョン 16.7.15

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

この Visual Studio 2019 バージョン 16.7.15 リリースの内容

  • 管理者が更新プログラムを配置するために Visual Studio の新しいレイアウトを作成するときに、更新が失敗する原因になっていた問題を修正しました。 レイアウトの場所が移動されていたため、クライアント コンピューターの更新が失敗します。

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

CVE-2021-27068 入れ子になったフォルダーに python.exe を配置するときの RCE の可能性 Python コードを使用してワークスペースを開くとき、そのワークスペースの scripts サブフォルダーに python.exe が含まれていると、リモート コード実行の脆弱性が存在します。

CVE-2021-31204 .NET Core の特権の昇格の脆弱性 .NET 5.0 と .NET Core 3.1 には、ユーザーが Linux または macOS ベースのオペレーティング システムで単一ファイルのアプリケーションを実行するときに、特権の昇格の脆弱性が存在します。


Release Notes Icon Visual Studio 2019 バージョン 16.7.14

"リリース日: 2021 年 4 月 13 日"

この Visual Studio 2019 バージョン 16.7.14 リリースの内容

  • オプティマイザーによってアクティブなコードが誤って削除される
  • 通常の出力詳細度でパッケージを復元すると、NuGet によってパッケージ ソースとパッケージ コンテンツのハッシュがレポートされる
  • NuGet によって、グローバル パッケージフォルダー内のパッケージの .nupkg.metadata ファイルにパッケージ ソースが保存される。 グローバル パッケージ フォルダー内の既存のパッケージで、この追加情報は取得されません。 グローバル パッケージ フォルダーをクリアすれば、すべてのパッケージのパッケージ ソース情報を収集することができます。

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

CVE-2021-27064 Visual Studio インストーラーの特権の昇格の脆弱性 Visual Studio インストーラーによって、フィードバック クライアントが昇格された状態で実行された場合に、リモート コード実行の脆弱性が存在します。

CVE-2021-28313 / CVE-2021-28321/ CVE-2021-28322 診断ハブ標準コレクター サービスの特権の昇格の脆弱性診断ハブ標準コレクターがデータ操作を適切に処理しなかった場合、特権の昇格の脆弱性が存在します。


Release Notes Icon Visual Studio 2019 バージョン 16.7.13

"リリース日: 2021 年 3 月 9 日"

この Visual Studio 2019 バージョン 16.7.13 リリースの内容

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

CVE-2021-21300 Git for Visual Studio のリモート コード実行の脆弱性 Visual Studio を使用して悪意のあるリポジトリを複製するときに、リモート コード実行の脆弱性が存在します。

CVE-2021-26701 .NET Core のリモート コード実行の脆弱性 テキスト エンコードの実行方法が原因で、.NET 5 と .NET Core にリモート コード実行の脆弱性が存在します。


Release Notes Icon Visual Studio 2019 バージョン 16.7.12

リリース日: 2021 年 2 月 9 日

この Visual Studio 2019 バージョン 16.7.12 リリースの内容


Release Notes Icon Visual Studio 2019 バージョン 16.7.11

リリース日: 2021 年 2 月 9 日

この Visual Studio 2019 バージョン 16.7.11 リリースの内容

Visual Studio 2019 バージョン 16.7.6 の最適化コンパイラのバグ

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

CVE-2021-1639 TypeScript 言語サービスのリモート コード実行の脆弱性 Visual Studio で、JavaScript または TypeScript コード ファイルが含まれる悪意のあるリポジトリを読み込む場合、リモート コード実行の脆弱性が存在します。

CVE-2021-1721 .NET Core のサービス拒否の脆弱性 X509 証明書チェーンのビルド中に HTTPS Web 要求を作成する場合、サービス拒否の脆弱性が存在します。

CVE-2021-24112 .NET 5 および .NET Core のリモート コード実行の脆弱性 メタファイルを破棄するときにグラフィックス インターフェイスにそのメタファイルへの参照が残っている場合、リモート コード実行の脆弱性が存在します。 この脆弱性は、MacOS または Linux で実行されているシステムにのみ存在します。


Release Notes Icon Visual Studio 2019 バージョン 16.7.10

リリース日: 2021 年 1 月 12 日

この Visual Studio 2019 バージョン 16.7.10 リリースの内容

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

CVE-2021-1651 / CVE-2021-1680 診断ハブ標準コレクター サービスの特権の昇格の脆弱性診断ハブ標準コレクターがデータ操作を適切に処理しなかった場合、特権の昇格の脆弱性が存在します。

CVE-2020-26870 Visual Studio インストーラーのリモート コード実行の脆弱性 Visual Studio インストーラーが悪意のあるマークダウンを表示しようとする場合、リモート コード実行の脆弱性が存在します。

CVE-2021-1723 .NET Core および Visual Studio のサービス拒否の脆弱性 Kestrel の実装にサービス拒否の脆弱性が存在します。


Release Notes Icon Visual Studio 2019 バージョン 16.7.9

"リリース日: 2020 年 12 月 8 日"

この Visual Studio 2019 バージョン 16.7.9 リリースの内容

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

CVE-2020-17156 Visual Studio のリモート コード実行の脆弱性 Visual Studio を使用して悪意のあるリポジトリを複製するときに、リモート コード実行の脆弱性が存在します。


Release Notes Icon Visual Studio 2019 バージョン 16.7.8

リリース日: 2020 年 11 月 10 日

この Visual Studio 2019 バージョン 16.7.8 リリースの内容

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

CVE-2020-17100 Visual Studio の改ざんの脆弱性 Python Tools for Visual Studio によって python27 フォルダーが作成された場合、改ざんの脆弱性が存在します。 この脆弱性の悪用に成功した攻撃者は、昇格されたコンテキストでプロセスを実行できます。



Release Notes Icon Visual Studio 2019 バージョン 16.7.7

リリース日: 2020 年 10 月 27 日

この Visual Studio 2019 バージョン 16.7.7 リリースの内容


Release Notes Icon Visual Studio 2019 バージョン 16.7.6

リリース日: 2020 年 10 月 13 日

この Visual Studio 2019 バージョン 16.7.6 リリースの内容


Release Notes Icon Visual Studio 2019 バージョン 16.7.5

"リリース日: 2020 年 9 月 29 日"

この Visual Studio 2019 バージョン 16.7.5 リリースの内容


Release Notes Icon Visual Studio 2019 バージョン 16.7.4

"リリース日: 2020 年 9 月 21 日"

この Visual Studio 2019 バージョン 16.7.4 リリースの内容

  • Xcode 12.0 GM サポートが追加されます。
  • Info.plist エディターで色をアクセント カラーとして設定するためのサポートが追加されます。

Release Notes Icon Visual Studio 2019 バージョン 16.7.3

リリース日: 2020 年 9 月 8 日

この Visual Studio 2019 バージョン 16.7.3 リリースの内容

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

CVE-2020-1130 診断ハブ標準コレクターの特権の昇格の脆弱性 診断ハブ標準コレクターがデータ操作を適切に処理しなかった場合、特権の昇格の脆弱性が存在します。 この脆弱性の悪用に成功した攻撃者は、昇格されたコンテキストでプロセスを実行できます。

CVE-2020-1133 診断ハブ標準コレクターの特権の昇格の脆弱性 診断ハブ標準コレクターがファイル操作を適切に処理しなかった場合、特権の昇格の脆弱性が存在します。 この脆弱性の悪用に成功した攻撃者は、昇格されたコンテキストでプロセスを実行できます。

CVE-2020-16856 Visual Studio のリモート コード実行の脆弱性 Visual Studio でメモリ内のオブジェクトが適切に処理されなかった場合、リモート コード実行の脆弱性が存在します。 脆弱性の悪用に成功した攻撃者は、現在のユーザーのコンテキストで任意のコードを実行することができます。

CVE-2020-16874 Visual Studio のリモート コード実行の脆弱性 Visual Studio でメモリ内のオブジェクトが適切に処理されなかった場合、リモート コード実行の脆弱性が存在します。 脆弱性の悪用に成功した攻撃者は、現在のユーザーのコンテキストで任意のコードを実行することができます。

CVE-2020-1045 Microsoft ASP.NET Core のセキュリティ機能のバイパスの脆弱性 Microsoft ASP.NET Core によるエンコードされた Cookie 名の解析方法に、セキュリティ機能のバイパスの脆弱性が存在します。 ASP.NET Core Cookie パーサーは Cookie 文字列全体をデコードします。これにより、悪意のある攻撃者によって、名前がパーセント エンコーディングされた 2 番目の Cookie が設定される可能性があります。

このリリースで修正された主なイシュー

  • パターン マッチングを使用する switch ステートメントまたは switch 式でコンパイラがクラッシュする問題を修正しました。
  • テストの実行を終了し、単体テストの "デバッグの停止 (Shift + F5)" ワークフローを復元しました。
  • WinForms .NET Core デザイナーで変更が保存されていないとき、プロジェクトの構成を切り替える場合に、VS がクラッシュするのを防ぎます。
  • .NET Core のサポート対象外のバージョンが、VS のセットアップ時以外で削除されている場合、修復またはアップグレード時に再インストールされなくなりました。
  • [フォルダーを指定して検索] で外部の依存関係が正しく検索されなかった場合の問題を修正しました。
  • ソリューション エクスプローラーのコンテキスト メニューの Git サブメニューの [コミット…] ボタンを再追加しました。
  • TFVC のチェックイン メモ ラベルが非表示になってしまう原因のバグを修正しました。
  • ターゲット フレームワークが複数ある SDK 形式の .csproj で、WinForm デザイナーを使用した場合のクラッシュを修正しました。
  • <d:Style.DataContext> の無効なマークアップ エラーが報告される問題を修正しました。

Visual Studio 2019 バージョン 16.7.3 で修正された Developer Community の主なイシュー


Release Notes Icon Visual Studio 2019 バージョン 16.7.2

リリース日: 2020 年 8 月 18 日

この Visual Studio 2019 バージョン 16.7.2 リリースの内容

Visual Studio 2019 バージョン 16.7.2 で修正された Developer Community の主なイシュー


Release Notes Icon Visual Studio 2019 バージョン 16.7.1

リリース日: 2020 年 8 月 11 日

この Visual Studio 2019 バージョン 16.7.1 リリースの内容

Visual Studio 2019 バージョン 16.7.1 で修正された Developer Community の主なイシュー


Release Notes Icon Visual Studio 2019 バージョン 16.7.0

リリース日: 2020 年 8 月 5 日

この Visual Studio 2019 バージョン 16.7.0 リリースの内容

C++

  • Microsoft はリモート C++ について、sh、csh、bash、tsch、ksh、zsh、dash など、幅広い Linux のディストリビューションとシェルをサポートするようになりました。 ConnectionManager.exe を利用して新しい "shell" プロパティを変更することでリモート接続のシェル選択をオーバーライドできます。 このサポートは、リモート Linux システムまたは WSL をターゲットにする MSBuild ベースの Linux プロジェクトと CMake プロジェクトの両方でテストされています。
  • Ninja (インクリメンタル ビルドを非常に短時間で評価するビルド システム) を使用し、MSBuild ベースの Linux プロジェクトのインクリメンタル ビルド時間を改善できるようになりました。 [全般プロパティ] ページで [インクリメンタル ビルドを有効にする] を [With Ninja](Ninja を使用する) に設定することでこの機能を選択できます。 Ninja (ninja-build) はリモートの Linux システムまたは WSL にインストールする必要があります。
  • 新しい C++20 標準ライブラリ機能が実装されました。 詳細な一覧については、GitHub の STL Changelog を参照してください。
  • 接続マネージャーで、既定のリモート SSH 接続を編集および設定できるようになりました。 つまり、既存のリモート接続を編集したり (IP アドレスが変更された場合など)、既定の接続を CMakeSettings.json および launch.vs.json 内で使用されるように設定したりすることができます。 リモート SSH 接続を使用すると、リモートの Linux システム上でのプロジェクトのビルドおよびデバッグを、Visual Studio から直接行うことができます。
Edit remote connections in the Connection Manager
接続マネージャーでのリモート接続の編集
  • Visual Studio で、Windows 上の Clang (clang-cl) に対する IntelliSense サポートが強化されました。 clang インクルード パスに clang ライブラリが含まれるようになりました。std ライブラリを使用する際のエディター内の波線表示を改善しました。clang モードに C++2a のサポートを追加しました。
  • C++ プロジェクトで、コード エラーに下線を引いてみると、提案されるより多くのクイック修正を参照できるようになりました。 この機能を有効にするには、[ツール] > [オプション] > [テキスト エディター] > [C/C++] > [試験的] で、[実験的なコード リンターの無効化] を false に設定します。 詳細については、C++ チーム ブログを参照してください。
IntelliSense code linter
IntelliSense コード リンター
  • 追加の安全機能を C++ に組み込むための新しいコード分析規則を 4 つ追加しました: C26817C26818C26819C26820
  • gdbserver を使用してリモート システム上で CMake プロジェクトをデバッグするための最上級のサポートが追加されました。
  • Visual Studio での C++ 用の AddressSanitizer の試験的な実装により、メモリ破損エラーを簡単に見つけることができるようになりました。現在、x64 ネイティブ プロジェクトで利用できます。 デバッグ ランタイム (/MTd、/MDd、/LDd) の使用もサポートされるようになりました。
  • IntelliSense で、概念、指定された初期化子などの C++20 の機能が基本サポートされるようになりました。
  • .ixx ファイルおよび .cppm ファイルは C++ として認識されるようになり、構文で強調表示され、IntelliSense によってそのように扱われるようになりました。

プレイリストを動的に定義する

プロジェクト、クラス、または名前空間に基づいて、プレイリストを動的に定義できるようになりました。 これは、特定のプロジェクト/クラス/名前空間内にあるものをすべて含むようにプレイリストを構成できることを意味します。そのグループに追加された新しいテストは、プレイリストに自動的に含まれます。

  • テスト エクスプローラーでプロジェクト、名前空間、またはクラスのグループを右クリックしてプレイリストを作成します。
Test Explorer: Create a playlist
テスト エクスプローラー: プレイリストを作成する
  • ツール バーの編集ボタンをクリックして、どのグループがプレイリストに含まれるかを編集します。 チェック ボックスが表示されます。 必要に応じてグループを編集します。
Test Explorer: Edit a playlist
テスト エクスプローラー:プレイリストを編集する
  • これらのプレイリストは、テストの静的リストになるのではなく、ルールに基づいて動的に更新されます。 どのルールによって動的なプレイリストが生成されているのかをより深く理解するには、保存ボタンを使用してプレイリスト ファイルをディスクに保存し、xml で生成されたルールを確認します。
PlayList file dynamic rule set
プレイリスト ファイルの動的なルール セット
  • 個々のテストを含めたり除外したりすることができます。また、プレイリストでは、動的なルールを更新したり、テストを静的リストとして追跡するように切り替えたりできます。 特徴を使用して、プレイリストの xml ファイルを直接編集することによって動的なグループを定義することもできます。

Git の生産性

[ツール]、[オプション] の [New Git User Experience]\(新しい Git ユーザー エクスペリエンス\) プレビュー機能をオンにすると、このエクスペリエンスを利用できるようになります。

  • 任意のフォルダーまたはまったく新しいフォルダーから新しい Git リポジトリを生成する
  • 新しい複製操作を開始する前に、開いているフォルダーまたはソリューションを保存して閉じる
  • コミット テキスト ボックス内でコミット メッセージ エラーまたは一時退避メッセージ エラーを明確に表示する
  • 新しい Git リポジトリ ウィンドウ内のツリー ビューで Git ブランチを表示し、管理する
  • Git リポジトリ ウィンドウで各ブランチの履歴グラフを切り替え、グラフを操作する
  • [Git リポジトリ] ウィンドウでの送信および発信中のコミットの表示
  • 最新機能の詳細を含む Git 生産性チームのブログ
Manage branches and view history in a focused Git Repository window
フォーカスされた Git リポジトリ ウィンドウでブランチを管理し、履歴を表示する

Git で重点が置かれているマージ エディターで、以下を使用して、マージ競合を解決します。

  • マージ競合を含むファイル内の情報バー。これにより、マージ エディターを開くように求めるメッセージ表示されます。
  • よりわかりやすいタイトルおよびキャプション。マージ エディター内での不明瞭の削減。
  • 競合内の差分。一致する行が揃えられ、単語レベルの違いが表示され、表示可能な空白が唯一の違いである場合にそれが表示されます。
  • ファイル レベルの追加、追加の競合に対する双方向のマージ
  • 1 回のクリックで、どちらか一方とのすべての競合を解決する機能
  • 競合のみに焦点を当てて、競合していない相違点は無視するためのトグル。
New Merge Editor Experience
マージ エディターを使用してマージ競合を解決する

JavaScript/TypeScript

  • LiveShare シナリオをより適切にサポートするために、完了とクイックヒントの実装が更新されました。

Local Process with Kubernetes

Local Process with Kubernetes
Kubernetes を使用したローカル プロセス

Local Process with Kubernetes を使用すると、開発用のワークステーション上で .NET のコードの記述、テスト、デバッグを行いながら、使用する残りのアプリケーションまたはサービスが置かれている Kubernetes クラスターとの接続を保つことができます。 開発ワークステーションをクラスターに接続すれば、開発用コンピューター上で依存サービスを手動で実行および構成する必要がなくなります。 クラスターからの環境変数、接続文字列、およびボリュームは、ローカルで実行されているマイクロサービス コードで使用できます。 Dockerfile や Kubernetes マニフェストなどの追加のアセットは必要ありません。 通常どおりに、.NET コードを実行、デバッグ、およびテストします。

Kubernetes を使用してローカル プロセスを有効にするには、[ツール] > [オプション] > [環境] > [プレビュー機能] に移動し、[Kubernetes サービスのローカル デバッグを有効にします] を選択します。

Enable Preview Features
プレビュー機能を有効にする

.NET コンソール アプリケーションの場合は、追加の手順が必要です。 "Microsoft.VisualStudio.Azure.Kubernetes.Tools.Targets" NuGet パッケージをインストールします。

.NET の生産性

抑制演算子があるが効果がないとき、警告とコード修正が表示されるようになりました。 正しい否定式を提案する 2 つ目のコード修正も利用できます。 抑制演算子にカーソルを置きます。 (Ctrl + . ) キーを押して、 [クイック アクションとリファクタリング] メニューをトリガーします。 次に、次のいずれかを選択します。

  • 演算子を完全に削除するには、[Remove operator (preserves semantics)]\(演算子を削除する (セマンティクスを残す)\) を選択します。
Code fix to remove suppression operator
抑制演算子を削除するコード修正
  • 式を否定するには、[Negate expression (change semantics)\(式を否定する (セマンティクスを変更する)\)] を選択します。
Code fix to negate expression
式を否定するコード修正
  • プロジェクトで利用できる場合、新しい C# 9 not パターンで式を否定することもできます。
Code fix to negate expression using not
not を使用して式を否定するコード修正

型でコンストラクターを生成するとき、プロパティを生成できるようになりました。 インスタンスにカーソルを合わせます。 (Ctrl + . ) キーを押して、 [クイック アクションとリファクタリング] メニューをトリガーします。 [Generate constructor in <QualifiedName> (with properties)] (<修飾名> でコンストラクターを生成する (プロパティを指定する)) を選択します。

Generate properties when generating constructor
コンストラクター生成時にプロパティを生成する
  • クイック ヒントには、診断 ID に加えて、ご自分のコード内の警告とエラーの詳細を確認できる Microsoft のドキュメントに容易に移動できるヘルプ リンクが表示されるようになりました。
Quick Info Diagnostic ID and Help Link
クイック ヒントの診断 ID とヘルプリンク
  • デバッガーの表示属性をクラスに追加するためのクイック アクションが導入されました。 これにより、デバッガー内のプロパティをコード内にプログラムによってピン留めすることができます。 クラス名にカーソルを置きます。 (Ctrl+. ) キーを押して、 [クイック アクションとリファクタリング] メニューをトリガーします。 [Add 'DebuggerDisplay' attribute]\('DebuggerDisplay' 属性の追加\) を選択します。 これにより、デバッガーの表示属性がクラスの先頭に追加され、ToString () を返す auto メソッドが生成されます。このメソッドを編集して、デバッガー内でピン留めするプロパティ値を返すことができます。
Add Debugger Display Attribute
デバッガーの表示属性の追加
  • 誤った割り当てや同じ変数との比較に対するコード修正が導入されました。 警告にカーソルを合わせます。 (Ctrl+. ) キーを押して、 [クイック アクションとリファクタリング] メニューをトリガーします。 誤った割り当ての場合は、[<QualifiedName>.value に割り当て] を選択します。 誤った比較の場合は、[<QualifiedName>.value と比較] を選択します。
Accidental Assignments Code Fix
誤った割り当てのコード修正
Accidental Comparisons Code Fix
誤った比較のコード修正
  • IComparable を実装する型に対して比較演算子を生成できるようになりました。 クラス内または IComparable 上にカーソルを置きます。 (Ctrl+. ) キーを押して、 [クイック アクションとリファクタリング] メニューをトリガーします。 [Generate comparison operators]\(比較演算子を生成\) を選択します。 比較演算子を使用してボイラー プレートが生成されます。
Generate Comparison Operators
[Generate Comparison Operators]\(比較演算子を生成\)
  • 構造体の .Equals を生成するときに IEquatable 演算子を生成できるようになりました。 値の型に対する[Equals および GetHashCode を生成する] へのリファクタリングは既にありました。 現在は、構造体を使用して、IEquatable と equals 演算子および not equals 演算子が自動的に追加されます。 構造体内にカーソルを置きます。 (Ctrl+. ) キーを押して、 [クイック アクションとリファクタリング] メニューをトリガーします。 [Equals(object) を生成する] を選択します。
Generate IEquatable Operators
IEquatable 演算子を生成する
  • 使用されていないすべてのコンストラクター パラメーターのプロパティまたはフィールドを作成して割り当てることができるようになりました。 これを個々のパラメーターに対して実行できるクイック アクションは既にありましたが、一度にすべての未使用パラメーターに対して実行できるようになりました。 残りのパラメーターのいずれかにカーソルを置きます。 (Ctrl+. ) キーを押して、 [クイック アクションとリファクタリング] メニューをトリガーします。 プロパティを作成して初期化するには、[Create and assign remaining as properties]\(残りをプロパティとして作成し、割り当てる\) を選択します。 フィールドを作成して初期化するには、[Create and assign remaining as fields]\(残りをフィールドとして作成し、割り当てる\) を選択します。
Create and Assign Remaining Fields
残りのフィールドを作成して割り当てる
Create and Assign Remaining Properties
残りのプロパティを作成して割り当てる
  • DateTime および TimeSpan 文字列リテラルに IntelliSense の入力候補が用意されました。 DateTime または TimeSpan 文字列リテラル内にカーソルを置き、(Ctrl+Space) キーを押します。 入力候補オプションと、各文字の意味についての説明が表示されます。 日時形式と例の両方が提供されます。
IntelliSense Completion in DateTime and TimeSpan
DateTime および TimeSpan 文字列リテラルにおける IntelliSense 入力候補
  • [シグネチャの変更] ダイアログ内でパラメーターを追加できるようになりました。 メソッドの署名内にカーソルを置きます。 (Ctrl+. ) キーを押して、 [クイック アクションとリファクタリング] メニューをトリガーします。 [シグネチャの変更] を選択します。 次のダイアログが開きます。このダイアログで、[追加] を選択してパラメーターを追加できるようになりました。 [追加] を選択すると、新しい [パラメーターの追加] ダイアログが開きます。 [パラメーターの追加] ダイアログでは、型名とパラメーター名を追加できます。 既定値を使用してパラメーターを必須または省略可能にすることを選択できます。 その後、呼び出しサイトで値を追加し、その値の名前付き引数を選択するか、TODO 変数を導入できます。 TODO 変数では TODO がコードに挿入されるので、各エラーにアクセスし、それぞれの呼び出しサイトを個別に確認して、何を渡すかを決定することができます。 省略可能なパラメーターについては、呼び出しサイトを完全に省略するオプションがあります。
Change Signature Dialog
[シグネチャの変更] ダイアログ
Add Parameter Dialog
[パラメーターの追加] ダイアログ
  • アナライザーの作成者は、NuGet を使用してアナライザーを配布するときに、IntelliSense の入力候補として CompletionProviders を使用できるようになりました。 以前は、CompletionProviders は VSIX でしか使用できなかったため、ライブラリの作成者が別個の VSIX を作成する必要がありました。 現在は、ライブラリの作成者は、アナライザーがある NuGet パッケージ内に IntelliSense の入力候補を実装できるようになり、これを個別に行う必要はなくなりました。 NuGet パッケージに実装されている入力候補プロバイダーでは、個々のプロジェクトに固有の提案も提供され、その機能をサポートする各 IDE で自動的に機能します。

Razor

[Enable experimental Razor editor]\(試験的な Razor エディターを有効にする\) プレビュー機能を選択して、すべての Razor ファイル (.cshtml/.razor) で新しい試験的言語サーバー プロトコル (LSP) を使用した Razor エディターをお試しください。

テスト エクスプローラー

[Run/Debug All Tests In View]\(ビューの全テストの実行/デバッグ\) がテスト エクスプローラーに追加されました。 これらのコマンドは、テスト エクスプローラーに表示された [すべてのテストを実行する][すべてのテストをデバッグする] のコマンドを置き換えるものです。 この変更により、ウィンドウで表示されるテストのみが実行されるように、これらのコマンドがテスト エクスプローラーのフィルターに従うことが明確になります。 これには、列フィルターと検索ボックス フィルターの両方が含まれます。

Test Explorer Run/Debug All Tests in View commands
テスト エクスプローラーの [Run/Debug All Tests In View]\(ビューの全テストの実行/デバッグ\) コマンド

[Global Run/Debug All]\(グローバル実行/すべてデバッグ\) コマンドが、最上位の [テスト] メニューにのみ表示されるようになりました。 これらは、テスト エクスプローラーのツール バーやテスト ウィンドウ ビューのコンテキスト メニューには含まれなくなりました。 テスト エクスプローラーからトリガーされるときに、[すべてのテストのコード カバレッジ分析] がテスト ウィンドウ ビューにも適用されるようになりました。

ショートカット キー:

  • Ctrl R、A - [Run All Test]\(すべてのテストを実行\) - グローバル コマンドは常にすべてのテストを実行します
  • Ctrl R、V - [Run All Tests In View]\(ビューのすべてのテストを実行\) - テスト ウィンドウ (テスト エクスプローラー、プレイリスト、Live Unit Testing ウィンドウ) がアクティブなウィンドウの場合にのみ有効なコマンド
  • Ctrl R、Ctrl A - [Debug All Test]\(すべてのテストをデバッグ\) - グローバル コマンドは常にすべてのテストをデバッグします
  • Ctrl R、Ctrl V - [Debug All Tests In View]\(ビューのすべてのテストをデバッグ\) - テスト ウィンドウ (テスト エクスプローラー、プレイリスト、Live Unit Testing ウィンドウ) がアクティブなウィンドウの場合にのみ有効なコマンド

デバッガー

ネイティブ ポインターを使用したマネージド COM オブジェクトの表示

この機能では、ネイティブ ポインターに参照されるマネージド COM オブジェクトを自動的にデコードし、[ローカル] ウィンドウで値を完全に検査できるようにします。 詳細については、Visual Studio のブログを参照してください。

Profiler

新しい .NET パフォーマンス カウンター ツール

.NET Performance Counters Tool
.NET パフォーマンス カウンター ツール

.NET パフォーマンス カウンター ツールを使用して、Visual Studio プロファイラー内から dotnet カウンターを直接表示します。 このツールを試すには、[デバッグ] -> [パフォーマンス プロファイラー] -> [Checkmark .NET Performance Counters Tool] (チェックマーク .NET パフォーマンス カウンター ツール) にアクセスします。

Xamarin

  • Android レイアウト ファイルを使用するときに発生する最も一般的な種類の問題を解決するためにコード修正ツールを導入しました。
  • Xamarin.Forms テンプレート選択操作が新しくなり、視覚的にわかりやすくなりました。Flyout テンプレートと Tabbed テンプレートで Shell が使用されるようになりました。 Shell の詳細については、こちらを参照してください。 何らかの理由から Shell を使用しない場合、Blank テンプレートを使用してください。
New Xamarin.Forms template selection experience
Xamarin.Forms テンプレートを選択する

XAML ツール (WPF、UWP、Xamarin.Forms)

XAML ホット リロード:

  • アプリ内ツール バーの機能強化: WPF と UWP の XAML ホット リロード ツール ワークフローに含まれるアプリ内ツール バー エクスペリエンスをさらに改良しました。 変更には、ツール バーを短くしたことが含まれます。それにより、実行中のアプリケーションが隠されることがなくなりました。また、折りたたみメカニズムが変更され、クリックすると XAML ホット リロード テキストが最初に折りたたまれ、次に 2 回目のクリックでバーが完全に折りたたまれるようになりました。

XAML デザイナー:

  • WPF と UWP の拡張されたデザイン時データ サポート: このリリースでは、WPF .NET Core と UWP の開発者のための新しいデザイン時データ機能を導入します。 この新機能では、現在使用可能なデザイン時プロパティ一覧を、d: プレフィックスを使用して拡張します。 Xamarin.Forms の開発者には、プロパティがデザイン時にのみレンダリングされるよう指定される、実行中のアプリにはプロパティがコンパイルされない "d:" プレフィックスを使用した同じアプローチを使用できるこの機能は、なじみ深いでしょう。 このリリースでは、WPF および UWP の既定のコントロールがすべてサポートされ、今後のリリースでは、サードパーティ製およびカスタム コントロールがサポートされる予定です。
  • XAML デザイナー更新ボタン: XAML デザイナーに更新ボタンを追加しました。この新しいアイコンは、左下のアイコン領域にあります。ズーム レベル インジケーターの近くです。 この更新アクションでは、レンダリング問題の解決で必要になるまれな状況でデザイナー ビューを閉じ、再び開くというリセット アクションと同じ動作が行われます。 この機能は WPF .NET Core と UWP の開発者が利用できます。

XAML コード エディター:

  • カラー ビジュアライザー: WPF .NET Core、WPF .NET Framework、Xamarin.Froms プロジェクトの XAML コード エディターの新しいカラー ビジュアライザーをさらに改良しました。 このリリースでは、各種リソースから届く色の視覚化サポートを追加しました。前回のプレビューではサポートされていませんでした。
Inline Color Previews in XAML Code Editor
XAML コード エディターでのインライン カラー プレビュー

パッケージ参照を使用せずに NuGet パッケージからツールボックス項目を表示する

コントロール ライブラリの作成者の多くは、現在のプロジェクトでライブラリがまだ参照されていない場合でも、自分のコントロールをツールボックスに表示してほしいと望んでいます。それは検索可能性に役立つからです。 WPF .NET Framework SDK では、それはこれまでレジストリ エントリを使用して実現されてきました。しかし、それは .NET Core ではサポートされていません。 WPF .NET Core の場合、NuGet フォールバック フォルダー内の WPF .NET Core NuGet パッケージ内にある VisualStudioToolsManifest.xml ファイルから、コントロールをツールボックスに入力できるようになりました。 詳細については、GitHub リポジトリの XAML デザイナーの拡張に関するドキュメントを参照してください。

Windows フォーム

.NET Core での Windows フォーム デザイナー

.NET Core プロジェクトに対して Windows フォーム デザイナーを使用できるようになりました。 Visual Studio 内でデザイナーを有効にするには、[ツール] > [オプション] > [環境] > [プレビュー機能] に移動し、[Use the preview Windows Forms designer for .NET Core apps] (プレビュー版 Windows フォーム デザイナー (.NET Core アプリ) を使用する) オプションを選択します。

このリリースでは、次のコントロールとその他の機能強化がサポートされるようになりました。

  • UserControl とカスタム コントロール インフラストラクチャ
  • TableLayoutPanel
  • サードパーティ製コントロールのサポートの基盤
  • データ バインディング サポートの基盤
  • デザイナーと TableLayoutPanel の相互作用の強化

バグ修正

Visual Studio 2019 バージョン 16.7.0 で修正された主なイシュー

  • WMI プロバイダー コンポーネントのインストール エラーを修正しました。
  • ユーザーがバーの下部にある左側のボタンをクリックしてテストの実行の進捗を確認できないイシューを修正しました。
  • 使用可能な Visual Studio Codespace の課金プランの検出のパフォーマンスが向上しました。
  • Visual Studio Codespace を作成するときの、既定の中断時間を 30 分から 3 時間に変更しました。
  • [Git 変更] のウィンドウで、実際には存在しない受信/送信のコミットがユーザーに通知されるバグを修正しました。
  • 診断ツールとパフォーマンス プロファイラーの安定性が向上しました。
  • マイナー バージョンの不一致により、Azure Sphere Visual Studio 拡張機能が自動的に更新されないイシューに対処しました。 修正により、VSIX 自動アップデーターの実行時に、Azure Sphere が自動的に更新されるようになります。

Developer Community から


既知の問題

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

フィードバックと提案

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


ブログ

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


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

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


ページのトップへ