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



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


Note

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



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

サポート期間

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

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

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

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

Visual Studio 2019 ブログ

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


Visual Studio 2019 バージョン 16.8 で作成されたすべての開発者コミュニティ項目の完全な一覧を表示します

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

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

この Visual Studio 2019 バージョン 16.8.7 リリースで対処された問題

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

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.8.6

"リリース日: 2021 年 2 月 22 日"

この Visual Studio 2019 バージョン 16.8.6 リリースで対処された問題


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

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

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

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 で実行されているシステムにのみ存在します。

この Visual Studio 2019 バージョン 16.8.5 リリースで対処された問題

  • ExtensionSDK にインストールされた x86 Microsoft. VCLibs Appx が正しい署名で更新されるイシューを修正しました。
  • C++ DesignTime 機能使用時のメモリ リークを修正しました。
  • 既存のデータベースを SSDT プロジェクトにインポートするときにパスワードが記憶されない場合に例外が発生するイシューを修正しました。
  • 初めて顧客が .NET Core プロジェクトをフォルダーまたはその他のホスト ターゲットに発行するときに [発行] ボタンが無効になっているイシューを修正しました。
  • 開発者が [発行プロファイル] ビュー ページを開いたときにときどき発生するハングを修正しました。
  • Xcode 12.4 のサポートが追加されました。

Developer Community で報告された項目


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

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

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

CVE-2021-1651 / CVE-2021-1680 診断ハブ標準コレクター サービスの特権の昇格の脆弱性

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

CVE-2020-26870 Visual Studio インストーラーのリモート コード実行の脆弱性

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

CVE-2021-1723 ASP.NET Core と Visual Studio のサービス拒否の脆弱性

Kestrel による HTTP/2 要求の解析方法に、サービス拒否の脆弱性が存在します。

この Visual Studio 2019 バージョン 16.8.4 リリースで対処された問題

  • 以前のバージョンの Visual Studio で Visual Studio Marketplace から IntelliCode が以前にインストールされていた場合に、C# 固有の IntelliCode コンポーネントがインストールされないイシューを修正しました
  • PackageReference プロジェクトが PackageReference の依存関係を持つ packages.config プロジェクトを参照するときに、推移的なプロジェクト参照が考慮されるようになりました。
  • Xcode 12.3 のサポートが追加されました。
  • x86_64 watchOS 7.0 以上のシミュレーターのサポートが修正されました
  • 関数から返されるバリアントを使用するために、偽陽性 (C33001 - C33005) を修正しました。
  • プロジェクトまたはソリューションを閉じるときに、WinForms .NET Core デザイナーで間欠的な VS クラッシュを修正しました。
  • データベース プロジェクトを修正しました: ソリューション エクスプローラーから開いているファイルにファイルをドラッグすると、ファイル システムからファイルが削除される。
  • SQL の Schema Compare で [更新] をクリックすると sqlproj ファイルへの変更が保存されない問題を修正しました
  • ビルドが失敗し、"テーブル/列が見つかりませんでした" というエラーが発生するバグを修正しました。
  • [チーム エクスプローラー] -> [分岐] の [マージ後にコミットする] チェックボックスを修正します。
  • 更新プログラムのチェック中に Visual Studio が数秒応答しなくなる可能性があるエラーを修正しました。
  • DeploymentAppRecipe.exe ツールは現在の任意のディレクトリからの実行をサポートするようになりました。 また、デプロイが失敗するたびに 0 以外の戻り値が返され、エラー メッセージが標準エラー ストリームに出力されるようになりました。

Developer Community から



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

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

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

CVE-2020-17156 Visual Studio のリモート コード実行の脆弱性

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

この Visual Studio 2019 バージョン 16.8.3 リリースで対処された問題

  • 入れ子になった関数テンプレートが親クラスの外部で定義される場合の内部コンパイラ エラーを修正しました。
  • 非静的データ メンバーの初期化子で 'this' が使用されている場合の不適切なエラー C2355 を修正しました。
  • /analyze:ruleset オプションを /analyze:rulesetdirectory や /analyze:projectdirectory オプションと共に使用するカスタム ルールセットに関するルールセット読み込みエラーを修正しました。
  • WinForms .NET Core デザイナーを使用しているときの Visual Studio の断続的なクラッシュを修正しています。
  • Visual Studio v 16.8.3 への .NET 5.0.1 の挿入
  • UI コンテキストのアクティブ化されたツール ウィンドウの一部によって Visual Studio がクラッシュする問題を修正しました。
  • Git リモート追跡ブランチが存在しない場合の [ブランチの管理] ページからのプッシュを修正しました。
  • Xcode 12.2 のサポートを追加しました。

Developer Community から



Release Notes IconVisual Studio 2019 バージョン 16.8.2

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

この Visual Studio 2019 バージョン 16.8.2 リリースで対処された問題

  • ループ内の最適化に関するバグを修正しました。
  • 保証されたコピー省略 (C++17 機能) の実装で発生する内部コンパイラ エラーを修正しました。
  • 匿名型の大規模な使用に対するビルド パフォーマンスの低下を修正しました。
  • C# コードを編集するときに、メッセージ "指定された引数は、有効な値の範囲内にありません" を含む金色のバーが表示されるという問題を解決しました。
  • T4 テンプレートを含むプロジェクトをビルドするときに MissingMethodException が発生する可能性があるという問題を修正しました。
  • [新しいプロジェクト] ダイアログでの検索で返される結果が 0 になる可能性があるという問題を修正します。

Developer Community から



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

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

この Visual Studio 2019 バージョン 16.8.1 リリースで対処された問題

  • チーム エクスプローラーでリポジトリを複製していると表示される、「'SourceExplorerPackage' パッケージを正しく読み込むことができませんでした。」という 影響の大きい警告の問題を修正しました。 この問題がユーザーで発生した場合、製品の応答が停止します。

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

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

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


F# :

  • F# 5 が .NET 5 と共にリリースされるようになりました
  • F# ツール バージョン 11.0.0 を使用した Visual Studio ツールのパフォーマンスの向上と修正
  • GitHub で入手できる完全なリリース ノート

C++:

  • C++20 コルーチンは、/std:c++latest および <coroutine> ヘッダーでサポートされるようになりました。
  • IntelliSense で、C++20 の <concepts> と <ranges> ヘッダー、および概念の定義の名前変更と参照がサポートされるようになりました。
  • STL で、C++20 Ranges の多くがサポートされるようになりました。
  • 条件付きで自明な特殊メンバー関数が MSVC でサポートされるようになりました。
  • C11 と C17 が、/std:c11 および /std:c17 スイッチでサポートされるようになりました。
  • STL のその他の機能強化としては、std::atomic_refstd::midpoint and std::lerp および std::execution::unseq の完全なサポートおよび、std::reverse_copy の最適化などがあります。
  • Visual Studio に付属している CMake のバージョンを CMake 3.18 にアップグレードしました。
  • コード分析ツールで、業界標準の静的な分析ログ形式である SARIF 2.1 標準がサポートされるようになりました。
  • Linux プロジェクトで見つからないビルド ツールがある場合、ツール バーには警告が表示され、エラー一覧には不足しているツールが明記されるようになりました。
  • Linux コア ダンプを、リモートの Linux システムまたは WSL の Visual Studio から直接デバッグできるようになりました。
  • C++ Doxygen でのコメントの生成用に、新しいコメント スタイル オプションが追加されました (/*! と //!)。
  • その他の vcpkg announcements
  • 未評価のコンテキストでのラムダのコンパイラ サポート
  • マルチスレッドでの pdb の作成により、/debug:full リンクのパフォーマンスが向上しました。 いくつかの大規模なアプリケーションと AAA ゲームでは、リンクの速度が 2 から 4 倍高速になっています。
  • Visual Studio デバッガーで char8_t がサポートされるようになりました。
  • clang-cl を使用した ARM64 プロジェクトのサポート。
  • Intel AMX 組み込みサポート。

デバッガー:

  • .NET Core Linux でのコア ダンプのデバッグのサポート
  • .NET と .NET Core の自動分析
  • .NET および .NET Core メモリのホット パスの自動分析

試験段階の Razor エディターの更新:

  • Blazor 電球
  • C# 電球
  • 強化された Razor 書式設定
  • .razor ファイルのマークアップ内の Razor コンポーネントの名前変更
  • Blazor コンポーネント タグ名前空間での定義への移動
  • C# のポイント時の色付け
  • C# 入力候補ツールヒントの色付け
  • Razor 用の定義への移動/実装 (閉じたファイルを含む)
  • 閉じられている Razor ファイルですべての参照を検索する
  • 大規模なプロジェクトとソリューションの Razor 編集パフォーマンスと安定性の向上

SDK スタイル プロジェクトでの Fakes:

  • SDK スタイル プロジェクトの新しい Fakes サポートを使用する場合、shim の生成時に一部のユーザーで次のエラーが発生しました

Git の生産性:

  • すべての Git 機能の使用方法の詳細については、新しいオンライン ドキュメントを参照してください
  • [Git Changes]\(Git 変更\) ウィンドウ、[表示] メニュー、ステータス バーを使用して、いつでも [Git リポジトリ] ウィンドウを開ける
  • [Git Changes]\(Git 変更\) ウィンドウで複数のリモートからフェッチ、プル、プッシュを行う
  • [Git リポジトリ] ウィンドウの上部に Git コマンドの成功およびエラー メッセージを表示する
  • Azure DevOps の作業項目から新しいブランチを作成する
  • Git メニューのお使いのローカル リポジトリの一覧から Git リポジトリを開く
  • 既定のソース管理プロバイダーは TFVC ではなく Git になった
  • Git リポジトリ ウィンドウのブランチ履歴をシングル クリックで切り替える
  • リポジトリを開いた後、ソリューション エクスプローラーでソリューションの一覧を表示して選択する
  • [Git リポジトリ] ウィンドウのツール バーを使用して、履歴ビューを変更し、コミットを検索する
  • ブランチの履歴グラフの入力方向と出力方向のコミット セクションからフェッチ、プル、およびプッシュを行う
  • ブランチをリモートにプッシュした後でプル要求を作成するように求めるメッセージを表示する
  • ブランチ リスト コンテキスト メニューのマージおよびリベース コマンドでブランチ名を表示する
  • ソリューション エクスプローラーとエディターのコンテキスト メニューを使用して Git コマンドにアクセスする
  • プロセスをバックグラウンドに移動するオプションを使用して、新しいモーダル ダイアログでクローンの進行状況を監視する

IntelliCode:

  • Visual Studio ドキュメントで個人用にカスタマイズした IntelliCode の入力候補を取得する
  • IntelliCode の入力候補をコードベースで最新の状態に保ち、チームの CI ワークフロー ドキュメントの一部として共有する

.NET の生産性:

  • Roslyn アナライザーが .NET 5.0 SDK に含まれるようになった
  • 抑制演算子があるときに、C# 9 not の新しいパターン マッチング構文を導入できるリファクタリング
  • 1 つのステートメント本体内で static、instance、および extension メソッドの使用法を置き換えるのに役立つインライン メソッド リファクタリング
  • C# の typeof のインスタンスを nameof に、Visual Basic の GetTypeNameOf に変換するためのコード修正
  • 関数呼び出しの各引数の前に、リテラル、キャストされたリテラル、オブジェクト インスタンス化に対する装飾が挿入されるインライン パラメーター名ヒントの C# と Visual Basic でのサポート
  • C# と Visual Basic の両方で、選択したクラスのメンバーを新しい基底クラスに抽出するリファクタリング
  • コード クリーンアップに、1 つのファイルまたはソリューション全体に対し、EditorConfig ファイル内で設定されている書式設定とファイル ヘッダーの基本設定を適用できる新しい構成オプションが追加された
  • 引数の参照渡しができない in キーワードを削除するためのコード修正
  • 新しい C#9 パターン連結子とパターン マッチングの提案を導入するリファクタリング (該当する場合に is を使用するように == を変換するなど)
  • 抽象ではないクラスで抽象メソッドを記述しようとするときにクラスを抽象にするためのコード修正
  • 最初の引用符が入力されると、DateTime および TimeSpan 文字列リテラルの IntelliSense 入力候補が自動的に表示される
  • 不要な pragma suppressions および不要な SuppressMessageAttributes を削除するためのコード修正
  • RenameFind All References は、グローバル SuppressMessageAttributes のターゲット文字列内のシンボルへの参照を認識する
  • ByVal は不要であるためフェードアウトされ、Visual Basic 内の不要な ByVal を削除するためにコードを修正
  • 複数のランタイム (.NET Framework や .NET Core など) に対してインタラクティブ ウィンドウをサポート。
  • アナライザーの作成者が追加ファイル用のアナライザーを作成できるようにする新しい RegisterAdditionalFileAction API。

Visual Studio 2019 IDE:

  • アカウント管理エクスペリエンスを使用した GitHub アカウントの追加
  • このリリースでは、従来の "フォルダーを指定して検索" エクスペリエンスが非推奨とされ、すべてのユーザーが新しいエクスペリエンスに移行されます。 エディター チームは、最新の "フォルダーを指定して検索" エクスペリエンスに関して問題に遭遇し、Developer Community にフィードバックを残してくれた人達と共に取り組んでいます。
  • .NET Core 3.1 および .NET 5.0 の Windows デスクトップ アプリ用に ClickOnce 発行プロバイダーを使用できるようになりました。

テスト エクスプローラーの [テストの詳細] ペインの折り返し:

  • テスト エクスプローラーの [テストの詳細] ペインでテキストを折り返すことができるようになりました。

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

  • XAML バインド エラー診断の強化
  • XAML ホット リロードの設定の [デバッグ] > [ホット リロード] への移動
  • 参照されていない NuGet パッケージからのツールボックスへの入力

JavaScript/TypeScript:

  • JavaScript/TypeScript デバッガーでは、サービス ワーカー、Web ワーカー、iFrame、およびページ JavaScript のデバッグがすべて同時にサポートされるようになりました。 さらに、新しいデバッグ エクスペリエンスでは、バックエンド ノード サーバー アプリケーションとクライアント側 JavaScript をブラウザーで同時にデバッグするためのサポートが追加されています。 この機能はまだ試験段階です。 [デバッグ オプション] メニューで新しいデバッグ エクスペリエンスを有効にすることができます
  • コード アクション ショートカット (ctrl +.) を使用して、使用可能な場所であればどこででもリファクターをトリガーできるようになりました。 テキストを選択する必要もありません - TypeScript は、使用できる最適なリファクターのカーソル位置を調べるのに十分にスマートになっています。
  • TypeScript によって自動インポートの完了が検索されるパッケージを微調整できるようになりました。 これにより、依存関係が多数ある一部のプロジェクトでパフォーマンスが向上する可能性があります。 詳細については、TypeScript 4.0 (リリースノート) [https://www.typescriptlang.org/docs/handbook/release-notes/typescript-4-0.html] を参照してください
  • Intellisense をサポートするためにインストールする型を示すメッセージを出力ウィンドウに追加しました。 使用する型をカスタマイズするには、tsconfig をプロジェクトに追加することをお勧めします。
  • TypeScript 4.0 コンパイラと言語サービスが含まれていることに注意してください

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

CVE-2020-17100 Visual Studio の改ざんの脆弱性

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

このリリースで対処された問題

  • Visual Studio 2019 16.7 で Intel C++ コンパイラの 80 ビット long double を使用してコンパイルすると、コンパイラ エラーが発生し、プロジェクトをビルドできなくなるという問題を修正しました。
  • 一部のシナリオで Live Unit Testing が開始しないという問題を修正した。
  • .NET 5.0.RC2 が Visual Studio 2019 v16.8 Preview 4 に追加されました
  • 不定期の Git 操作が開始されると、終了しないというバグを修正しました。
  • Visual Studio Codespaces の作成と接続に新しい機能を追加しました。
  • ASP.NET Core ソリューションから終了または移動したときに Visual Studio 2019 がクラッシュまたは応答を停止するバグを修正した。
  • Visual Studio 2019 をアンインストールして再インストールした後、C++ プロジェクト システムによる読み込みが失敗する問題を修正しました。

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

C++

  • C++20 コルーチンは、/std:c++latest および <coroutine> ヘッダーでサポートされるようになりました。 従来の動作は、<experimental/coroutine> と /await switch でサポートされています。
  • IntelliSense で、C++20 の <concepts> と <ranges> ヘッダー、および概念の定義の名前変更と参照がサポートされるようになりました。 Preview 4 で対処される予定の既知の問題があります。
  • STL で、C++20 Ranges の多くがサポートされるようになりました。 進捗については、ranges に関する GitHub イシューのページを参照してください。
  • 条件付きで自明な特殊メンバー関数が MSVC でサポートされるようになりました。
  • C11 と C17 が、/std:c11 および /std:c17 スイッチでサポートされるようになりました。
  • STL のその他の機能強化としては、std::atomic_refstd::midpoint and std::lerp および std::execution::unseq の完全なサポートおよび、std::reverse_copy の最適化などがあります。 すべての更新については、変更ログを参照してください。
  • Visual Studio に付属している CMake のバージョンが CMake 3.18 にアップグレードされました。
  • コード分析ツールで、業界標準の静的な分析ログ形式である SARIF 2.1 標準がサポートされるようになりました。 SARIF の形式の詳細については、正式な仕様に関するページを参照してください。
  • Linux プロジェクトで見つからないビルド ツールがある場合、ツール バーには警告が表示され、エラー一覧には不足しているツールが明記されるようになりました。
  • Linux コア ダンプを、リモートの Linux システムまたは WSL の Visual Studio から直接デバッグできるようになりました。
  • C++ Doxygen でのコメントの生成用に、新しいコメント スタイル オプションが追加されました (/*! と //!)。
  • その他の vcpkg announcements
  • 未評価のコンテキスト内のラムダに対するコンパイラ サポートが追加されました。これにより、decltype 指定子でラムダを使用できるようになります。
  • Visual Studio で、入力時のリンターと修正が使用できるようになりました。 構成するには、[ツール]、[オプション]、[テキスト エディター]、[C/ C++]、[CodeStyle]、[リンター]、[Linter + Fixups]\(リンターおよび修正\) を使用します。
As-you-type linter showing warning for using bitwise & instead of logical && on bools
入力時のリンター

デバッガー

.NET Core Linux でのコア ダンプのデバッグのサポート

Windows での管理された Linux コア ダンプのデバッグは、今までは困難でした。これは、実稼働を完全にミラーした Linux 環境を別途構成して、分析用に一連のツールをインストールする必要があることを意味していました。 Visual Studio 2019 16.8 Preview 3 ではさいわいにも、管理された Linux コア ダンプを直接 IDE にドラッグ アンド ドロップして、即座にデバッグを開始できます。

.NET 自動分析

ここ数年、.NET プラットフォームで非同期 (async) プログラミングが行われてきましたが、上手に行うことは歴史的に困難でした。 次のシナリオとアンチパターンを識別する、マネージド メモリ ダンプ アナライザーを導入しました。

  • Sync-over-Async
  • Threadpool の枯渇

.NET および .NET Core メモリのホット パスの自動分析

これによりお客様は、[Diagnositcs Memory Tool]\(診断メモリ ツール\) ウィンドウで炎の注釈を使用し、メモリ ヒープ内に多いオブジェクトの種類を直感的に表示できます。

SDK スタイル プロジェクトの Fakes で shim の問題が発生する

SDK スタイル プロジェクトの新しい Fakes サポートを使用する場合、shim の生成時に一部のユーザーで次のエラーが発生しました。

Cannot generate shim for System.DateTime: type is not supported because of internal limitations

この修正プログラムは、16.8 Preview 3 でリリースされています。 16.7.* リリースを使用している場合は、次の回避策を使用できます。

  1. .csproj ファイルの PropertyGroup に <FakesUseV2Generation>False</FakesUseV2Generation> を追加します。
  2. <Fakes Include="Fakes\*.fakes" /> を csproj ファイルの ItemGroup に追加します。
  3. 生成された Fakes アセンブリへの参照を ProjectDir/FakesAssemblies に追加します。

開発者コミュニティのフィードバックに従って、追加の更新プログラムを確認することもできます。

試験段階の Razor エディターの更新

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

  • Blazor 電球:
    • 分離コードに抽出*:
    • タグ* からコンポーネントを作成する
    • コンポーネント用の @using ディレクティブを追加する
    • コンポーネント タグ名を完全に修飾する
  • C# 電球
    • @using ディレクティブを追加する
    • 型名を完全に修飾する
  • 強化された Razor 書式設定
  • .razor ファイルのマークアップ内の Razor コンポーネントの名前変更
  • Blazor コンポーネント タグ名での定義への移動
  • C# のポイント時の色付け
  • C# 入力候補ツールヒントの色付け
  • 閉じられている Razor ファイルですべての参照を検索する
  • 大規模なプロジェクトとソリューションの Razor 編集パフォーマンスと安定性の向上

* ローカル Razor シナリオでのみ機能し、Visual Studio Codespaces または Live Share ではまだサポートされていません。

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

Visual Studio 2019 IDE

  • お使いの GitHub アカウントを、Visual Studio アカウントをいつも管理している方法で追加します。 すると、バージョン管理、統合されたターミナルなどの機能で、お使いのアカウントの資格情報が GitHub の認証要求で利用されるようになります。
Inline parameter name hints with GitHub
Visual Studio に GitHub アカウントを追加する
  • .NET Core 3.1 および .NET 5.0 の Windows デスクトップ アプリ用に ClickOnce 発行プロバイダーを使用できるようになりました。 作業を開始するには、ソリューション エクスプローラー内でプロジェクトを右クリックし、[発行] を選択するか、[ビルド] > [<AppName> の発行] メニューを選択します。 ClickOnce は、フォルダー カテゴリにあります。
Inline parameter name hints with GitHub Image
Visual Studio 内の ClickOnce 発行プロバイダー

Git の生産性

  • Azure DevOps の作業項目から新しいブランチを作成する
Create a new branch from an Azure DevOps work item
作業項目から新しいブランチを作成する
  • Git メニューのお使いのローカル リポジトリの一覧から Git リポジトリを開く
Local Repositories list
Git メニューのローカル リポジトリ一覧
  • 既定のソース管理プロバイダーが、TFVC ではなく Git になりました。これは、[ツール]、[オプション]、[ソース管理] から変更できます。

  • Git リポジトリ ウィンドウのブランチ履歴をシングル クリックで切り替える

  • リポジトリを開いた後、ソリューション エクスプローラーでリポジトリ内のソリューションのリストを表示して選択する

Preview Feature toggle to show list of Views when opening a repo
リポジトリを開いているときにビューの一覧表示に切り替えるプレビュー機能
List of Views in Solution Explorer
ソリューション エクスプローラーでのビューの一覧

.NET の生産性

  • .NET のコンパイラ プラットフォーム (Roslyn) アナライザーでは、お使いの C# コードまたは Visual Basic コードに安全性、パフォーマンス、設計およびその他の問題がないか検査を行います。 .NET 5.0 以降、これらのアナライザーは .NET SDK に含まれるようになりました。 アナライザーは、.NET 5.0 以降を対象とするプロジェクトでは既定で有効になっています。 EnableNETAnalyzers プロパティを true に設定すると、以前のバージョンの .NET を対象とするプロジェクトで、.NET コード分析を有効にできます。 自分のプロジェクトでコード分析を無効にするには、EnableNETAnalyzersfalse に設定します。 [プロジェクトのプロパティ] ウィンドウで .NET アナライザーを有効または無効にすることも可能です。 [プロジェクトのプロパティ] ウィンドウに移動するには、ソリューション エクスプローラーでプロジェクトを右クリックし、[プロパティ] を選択します。 次に、.NET アナライザーを有効にするチェックボックスのオン/オフを選択できる、[Code Analysis] タブを選択します。
Project Properties window to enable .NET Analyzers
.NET アナライザーを有効にするための [プロジェクトのプロパティ] ウィンドウ
  • 抑制演算子があるときに、C# 9 not の新しいパターン マッチング構文を導入できるリファクタリングが追加されました。 抑制演算子にカーソルを置きます。 (Ctrl+. ) キーを押して、 [クイック アクションとリファクタリング] メニューをトリガーします。 [パターン マッチングを使用します] を選択します。
Refactoring introducing C# 9 not pattern matching syntax
リファクタリングでの C# 9 not パターン マッチング構文の導入
  • メソッドのインライン化リファクタリングが導入されました。これにより、1 つのステートメント本文内で使用されている static、instance、および extension メソッドを、元のメソッド宣言を削除するオプションと置き換えることができます。 メソッドの使用にカーソルを置きます。 (Ctrl+. ) キーを押して、 [クイック アクションとリファクタリング] メニューをトリガーします。 次に、以下のオプションのいずれかを選択します。

インライン <QualifiedMethodName> を選択し、インラインメソッド宣言を削除します:

Inline Method refactoring removing declaration
メソッドのインライン化リファクタリングでの宣言の削除

インライン を選択し、 <QualifiedMethodName> を保持して元のメソッド宣言を保持します:

Inline Method refactoring preserving declaration
メソッドのインライン化リファクタリングでの宣言の保持
  • テンプレートから作成した新しい C# または Visual Basic のファイルは、EditorConfig のコード スタイル設定に従っています。 新しいファイルが作成されると、ファイル ヘッダー、ディレクティブを使用した並べ替え、名前空間の内外でのディレクティブを使用した配置のコード スタイルが自動的に適用されます。

  • 関数呼び出しの各引数の前に、リテラル、キャストされたリテラル、オブジェクト インスタンス化に対する修飾が挿入されるインライン パラメーター名ヒントが、C# と Visual Basic でサポートされるようになりました。 最初に、[ツール]>[オプション]>[テキスト エディター]>[C#] または [Basic]>[詳細][Display inline parameter name hints (experimental)]\(インライン パラメーター名ヒントを表示する (試験段階)\) を選択して、このオプションをオンにする必要があります。 その後、インライン パラメーター名ヒントが C# または Visual Basic のファイルに表示されるようになります。

Inline parameter name hints
インライン パラメーター名ヒント
  • 新しい基底クラスの抽出リファクタリングを使用して、選択したクラスから新しい基底クラスにメンバーを抽出できるようになりました。 クラス名または強調表示されたメンバーのいずれかにカーソルを置きます。 (Ctrl+. ) キーを押して、 [クイック アクションとリファクタリング] メニューをトリガーします。 [メンバーを新しい基底クラスに引き上げます] を選択します。 新しい [Extract Base Class]\(基底クラスの抽出\) ダイアログ ボックスが開き、基底クラスの名前と配置先の場所を指定できます。 新しい基底クラスに転送するメンバーを選択し、[抽象化する] 列のチェック ボックスをオンにすることで、メンバーを抽象にすることができます。
Extract Base Class
基底クラスの抽出

[OK] を選択すると、新しい基底クラスとそのメンバーが追加されます。

C# の場合、[typeof から nameof へ変換] を選択します。

Convert typeof to nameof
typeof を nameof に変換する

Visual Basic の場合、[GetType から NameOf へ変換] を選択します。

Convert GetType to NameOf
GetType から NameOf へ変換
  • コード クリーンアップに、1 つのファイルまたはソリューション全体に対し、EditorConfig ファイルで設定されている書式設定とファイルヘッダーの基本設定を適用できる、新しい構成オプションが追加されました。
Formatting and File Header support in Code Cleanup
コード クリーンアップでの書式設定とファイル ヘッダーのサポート
  • 引数の参照渡しができない in キーワードを削除するためのコード修正が加えられました。 エラーにカーソルを置きます。 (Ctrl+. ) キーを押して、 [クイック アクションとリファクタリング] メニューをトリガーします。 [Remove ‘in’ keyword]\(‘in’ キーワードの削除\) を選択します。
Remove in keyword code fix
`in` キーワードの削除のコード修正
  • 新しい C#9 パターン連結子を導入するリファクタリングが追加されました。 このコード修正は、該当する場合に is を使用するように == を変換するなどのパターン マッチングを提案すると共に、複数の異なるパターンと否定をマッチングするときに andor、および not のパターン連結子を提案します。 ステートメント内にカーソルを置きます。 (Ctrl+. ) キーを押して、 [クイック アクションとリファクタリング] メニューをトリガーします。 [パターン マッチングを使用します] を選択します。
Introduce C#9 Pattern Combinators
C#9 パターン連結子の導入
  • 抽象ではないクラスで抽象メソッドを記述しようとするときにクラスを抽象にするためのコード修正が加えられました。 メソッド エラーにカーソルを置きます。 (Ctrl+. ) キーを押して、 [クイック アクションとリファクタリング] メニューをトリガーします。 [Make class ‘abstract’]\(クラスを ‘abstract’ にします\) を選択します。
Make Class Abstract
クラスを抽象にする
  • 16.7 Preview 1 で、DateTime および TimeSpan 文字列リテラルに IntelliSense の入力候補が追加されました。 このリリースでは、最初の引用符が入力されると、この入力候補一覧が自動的に表示されます。 以前は、この入力候補一覧を表示するには、(Ctrl+Space) を押す必要がありました。 DateTime または TimeSpan 文字列リテラル内にカーソルを置き、最初の二重引用符を入力します。 入力候補オプションと、各文字の意味についての説明が表示されます。 日時形式と例の両方が提供されます。
IntelliSense Completion in DateTime and TimeSpan String Literals
DateTime および TimeSpan 文字列リテラルにおける IntelliSense 入力候補
This improvement also works for interpolated strings when you type a colon
この改善は、コロンを入力したときの補間された文字列にも適用されます
  • 不要な pragma 抑制および不要な SuppressMessageAttributes を削除するためのコード修正が加えられました。 pragma 警告または SuppressMessageAttribute にカーソルを置きます。 (Ctrl+. ) キーを押して、 [クイック アクションとリファクタリング] メニューをトリガーします。 [Remove unnecessary suppression]\(不要な抑制を削除する\) を選択します。
Remove Unnecessary Pragmas
不要な pragma を削除する
Remove Unnecessary SuppressMessageAttributes
不要な SuppressMessageAttributes を削除する
  • [名前の変更] および [すべての参照の検索] で、グローバルの SuppressMessageAttribute 抑制の対象文字列内でシンボルへの参照が認識されるようになりました。
Rename SuppressMessageAttribute
SuppressMessageAttribute の名前の変更
Find All References for SuppressMessageAttribute
SuppressMessageAttribute のすべての参照の検索
  • Visual Basic には、パラメーターを渡すための複数の方法がありました。ByVal および ByRef です。また、長い間、ByVal は省略可能でした。 ByVal は不要であり、フェードアウトされます。不要な ByVal を削除するためのコード修正も加えられました。 ByVal キーワードにカーソルを置きます。 (Ctrl+. ) キーを押して、 [クイック アクションとリファクタリング] メニューをトリガーします。 [‘ByVal’ keyword is unnecessary and can be removed]\(‘ByVal’ キーワードは不要であり、削除できます\) を選択します。
Visual Basic Remove ByVal Refactoring
Visual Basic の ByVal リファクタリングの削除
  • 複数のランタイム (.NET Framework や .NET Core など) に対してインタラクティブ ウィンドウがサポートされるようになりました。
Interactive Window Support in .NET Core
.NET Core でのインタラクティブ ウィンドウ
  • 新しい RegisterAdditionalFileAction API により、アナライザーの作成者は追加ファイル用のアナライザーを作成できるようになります。

テスト エクスプローラーの [テストの詳細] ペインの折り返し

この要望の多かった機能によって、ユーザーはテキストの折り返しを選択したり、既定のテキスト行の配置をそのまま使用したりできます。 テキストの配置が不要な場合、折り返すことで、テスト実行からのフィードバックが見やすくなり、水平スクロール バーが不要になります。 これは、テスト エクスプローラーの設定メニューまたは [概要] ペインのコンテキスト メニューから有効にすることができます。

Wrap test details from the Test Settings menu
テストの設定メニュー
Wrap test details from the right-click context menu
右クリックのコンテキスト メニューからテストの詳細を折り返す

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

XAML バインド エラー診断の強化

WPF、UWP、WinUI、および Xamarin.Forms プロジェクトで作業している開発者は、多くの場合、アプリケーションの XAML データ バインド エラーを検出して解決する必要があります。 このシナリオで診断ツールを改善するために、Visual Studio 2019 バージョン 16.8 以降に 2 つの新しいエクスペリエンスを追加しました。

  • XAML バインド エラー インジケーター アイコン: 新しい XAML バインド エラー インジケーター アイコンが、WPF および UWP プロジェクトのアプリ内ツール バー、および Xamarin.Forms を含むすべての XAML プロジェクトのライブ ビジュアル ツリーに存在するようになりました。 このアイコンには、少なくとも 1 つのバインド エラーが検出された場合に赤色のインジケーターが表示されます。 また、アイコンをクリックすると、新しい [XAML Binding Failures]\(XAML バインド エラー\) ウィンドウに移動します。
Binding Failure Icon (in-app toolbar)
バインド エラー アイコン (アプリ内ツール バー)
  • [XAML Binding Failures]\(XAML バインド エラー\) ウィンドウ: WPF、UWP、WinUI、および Xamarin.Forms プロジェクトで新しい [XAML Binding Failures]\(XAML バインド エラー\) ウィンドウを使用できるようになりました。 この新しい専用のエクスペリエンスにより、以前は出力ウィンドウでしか利用できなかったバインド エラー情報に対する豊富なユーザー インターフェイスが提供されます。 機能強化には、並べ替え、カスタマイズ、および完全検索が可能な一連の列としてエラーを表示する機能が含まれます。 また、類似のエラーをグループ化して、データ バインド テンプレートのエラーの特定の組み合わせで発生する可能性があるノイズを制限しています。ただし、元の未加工エラー情報はすべて使用可能であり、右クリック メニュー オプションを使用して簡単にコピーできます。 (注: Xamarin バージョン 4.5.0.266-pre3 以上が必要です)
  • バインド エラーのソースへの移動: WPF チームとのパートナーシップでは、.NET 5 (RC2 以降) 上で WPF を対象としているお客様向けに、バインド エラーのソースに移動する機能を有効にしました。
XAML Binding Failure Window & LVT Icon
[XAML Binding Failures]\(XAML バインド エラー\) ウィンドウと LVT アイコン

XAML ホット リロード

  • Xamarin.Forms の "変更のみ" の XAML ホット リロードが UWP でサポートされるようになる: このリリースでは、UWP が対象のときに Xamarin.Forms プロジェクトでの新しい変更のみの XAML ホット リロードのサポートを有効にするという、要望の多かった機能のサポートのロールアウトが開始されます。 この機能はまだ開発中で、XAML を編集すると実行中のアプリで更新がトリガーされますが、アプリ内ツール バー (要素の選択など) などの他の機能はまだ完全には実装されておらず、将来のリリースで追加されることに注意してください。
  • XAML ホット リロードの設定の [デバッグ] > [ホット リロード] への移動: このリリースでは、WPF、UWP、Xamarin.Forms の XAML ホット リロード設定を、[デバッグ] > [ホット リロード] の下にある統合設定画面に統合しました。 また、この機能を使用できるタイミングを完全に制御できるように、プラットフォームごとに XAML ホット リロードを無効または有効にする機能を初めて有効にしました。 (注: この移行の間に設定は変更されないため、既存のすべての選択はこの新しい場所で引き続き有効です)。
XAML Hot Reload Consolidated Settings
XAML ホット リロードの設定の統合

XAML コード エディター:

  • WinUI 3.0 IntelliSense サポート: このリリースでは、新しい WinUI 3.0 Preview 3 以降を使用してアプリを構築する開発者向けに、より優れた IntelliSense のサポートを有効にしました。 WinUI 3.0 の詳細については、ドキュメント を参照してください。フィードバックを提供するには、Windows UI XAML GitHub リポジトリを参照してください。 注: 更新されたツール エクスペリエンスを得るために、16.9 Preview 1 では最新の WinUI 3.0 Preview が推奨されます。
  • MVVM サポートの向上: XAML ドキュメントを作成するときに、d:DataContext を設定して、その XAML ドキュメントに適切な IntelliSense をバインドできます。 今まで、data-contex 型の手動での指定は煩雑でした。XAML ドキュメントを終了し、目的の view-model 型を見つけて、d:DataContext 宣言にその名前空間と名前をコピーして貼り付ける必要がありました。 このリリースでは、電球が使用され view-model の候補が提案される、d:DataContext を迅速に宣言できる新機能が導入されています。
XAML IntelliSense for MVVM d:DataContext
MVVM d:DataContext 用の XAML IntelliSense

拡張性

  • 参照されていない NuGet パッケージのツール ボックスへの入力: このリリースでは、参照されていない NuGet パッケージのコントロールをツールボックスに入力するときの TargetFrameworkMoniker 固有の VisualStudioToolsManifest.xml ファイルのサポートが追加されました。 したがって、たとえばお使いのパッケージで、.NET Core 3.1 および .NET 5.0 プロジェクトに別のコントロール セットを公開できるようになりました。

Developer Community から



既知の問題

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

フィードバックと提案

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


ブログ

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


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

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


ページのトップへ