Note
このバージョンの Visual Studio 2019 はサポートされなくなりました。 サポートされている最新バージョンは 16.11 です。 インストールを更新するか 、Visual Studio の最新バージョン にアップグレードして、引き続きサポートされるようにします。
Visual Studio 2019 のすべてのリリース ノートの一覧については、 リリース履歴ページを参照してください。
Important
これは Visual Studio の最新バージョンではありません。 最新のリリースをダウンロードするには、 https://visualstudio.microsoft.com/downloads/ にアクセスし、 Visual Studio 2022 リリース ノートを参照してください。
Visual Studio 2019 バージョン 16.8 リリース
- 2021 年 3 月 9 日 — Visual Studio 2019 バージョン 16.8.7
- 2021 年 2 月 22 日 — Visual Studio 2019 バージョン 16.8.6
- 2021 年 2 月 9 日 — Visual Studio 2019 バージョン 16.8.5
- 2021 年 1 月 12 日 — Visual Studio 2019 バージョン 16.8.4
- 2020 年 12 月 8 日 — Visual Studio 2019 バージョン 16.8.3
- 2020 年 11 月 19 日 — Visual Studio 2019 バージョン 16.8.2
- 2020 年 11 月 12 日 — Visual Studio 2019 バージョン 16.8.1
- 2020 年 11 月 10 日 — Visual Studio 2019 バージョン 16.8.0
Visual Studio 2019 ブログ
Visual Studio 2019 ブログ は、Visual Studio エンジニアリング チームからの製品の分析情報の公式な情報源です。 Visual Studio 2019 リリースの詳細については、次の投稿を参照してください。
- Visual Studio 2019 v16.9 プレビュー 3、本日入手可能
- Visual Studio 2019 v16.9 Preview 2 と年末のご挨拶
- Visual Studio 2019 v16.8 および v16.9 プレビュー、本日入手可能
- Visual Studio 2019 v16.8 Preview 3.1 の新機能
- Visual Studio 2019 v16.8 プレビュー 2 の新機能、本日リリース
- Visual Studio 2019 v16.7 および v16.8 プレビュー 1、本日リリース
- Visual Studio 2019 v16.7 プレビュー 2、本日入手可能
- Visual Studio での Git エクスペリエンスに関する新しい更新プログラム
- 本日リリース。 Visual Studio 2019 v16.6 & v16.7 Preview 1
- Visual Studio 2019 バージョン 16.6 Preview 2 では新しい機能がリリースされています
- Visual Studio 2019 バージョン 16.5 が利用可能になりました
- Visual Studio 2019 v16.4 リリースのシーズン
- Visual Studio 2019 バージョン 16.4 Preview 2、秋の味覚と風物詩
- Visual Studio 2019 バージョン 16.3 での .NET Core サポートなど - 今すぐ更新
- Visual Studio 2019 バージョン 16.3 Preview 2 および Visual Studio 2019 for Mac バージョン 8.3 Preview 2 がリリースされました
- Visual Studio 2019 バージョン 16.2 および 16.3 Preview 1 が利用できるようになりました
- Visual Studio 2019 バージョン 16.2 Preview 2
- Visual Studio 2019 バージョン 16.1 と 16.2 Preview
- Visual Studio 2019: コードの高速化。 作業をよりスマートに。 未来を作る
Visual Studio 2019 バージョン 16.8 で作成されたすべての開発者コミュニティ項目の完全な一覧を表示します
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 にリモート コード実行の脆弱性が存在します。
Visual Studio 2019 バージョン 16.8.6
"リリース日: 2021 年 2 月 22 日"
この Visual Studio 2019 バージョン 16.8.6 リリースで対処された問題
- 開発者が Visual Studio 2019 から Azure Functions またはその他 Azure リソースにコードをプッシュすることを妨げている、優先順位の高いバグを修正しました。
- VS 16.8.5 Git リポジトリを作成する - 新しい GitHub リポジトリを作成する - パブリック (オフになっているプライベート オプション) - 失敗
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 で報告された項目
- 変更しても .sqlproj が更新されないイシューを修正しましした。
- Chromium ソリューションで OOM エラーが発生すると、Visual Studio 2019 がクラッシュします。
- Visual Studio 2019 バージョン 16.7.6 の最適化コンパイラのバグ
- データベース プロジェクトで新しい項目 -> テーブルを追加すると、Visual Studio がクラッシュします。
- VSDIIUnregisterServer によって、Visual Studio 2019 の動作が遅くなっています。
- Visual Studio 2019 でウィンドウをドッキングまたは分割するときに予期せずクラッシュします。
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 から
- 特定のルールを警告に設定しているにもかかわらず、更新プログラム 16.8 後に多数のコード分析エラーが表示される
- ClickOnce によってインストールされた .NET Core 3.1 または .NET 5.0 アプリケーションがインストール後に起動しない場合がある。
- C33005 が _variant_t で擬陽性になる
- Git のマージとコミット操作のバグ
- net 5.0-windows* TFM でタスクまたは並列スタックの情報を表示できない
- SQL の Schema Compare で [更新] をクリックすると sqlproj ファイルへの変更が保存されない
- データベース プロジェクト: ソリューション エクスプローラーから、開いているファイルにファイルをドラッグすると、ファイル システムからファイルが削除される
- Intellicode モデル トレーニングが Visual Studio 2019 で失敗する
- Open LiveShare コラボレーション セッションが失敗する
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 から
Visual Studio 2019 バージョン 16.8.2
リリース日: 2020 年 11 月 19 日
この Visual Studio 2019 バージョン 16.8.2 リリースで対処された問題
- ループ内の最適化に関するバグを修正しました。
- 保証されたコピー省略 (C++17 機能) の実装で発生する内部コンパイラ エラーを修正しました。
- 匿名型の大規模な使用に対するビルド パフォーマンスの低下を修正しました。
- C# コードを編集するときに、メッセージ "指定された引数は、有効な値の範囲内にありません" を含む金色のバーが表示されるという問題を解決しました。
- T4 テンプレートを含むプロジェクトをビルドするときに MissingMethodException が発生する可能性があるという問題を修正しました。
- [新しいプロジェクト] ダイアログでの検索で返される結果が 0 になる可能性があるという問題を修正します。
Developer Community から
- SolutionAssetStorage.GetAssetAsync によって KeyNotFoundException が報告されると、金色のバーが生成される
- designtime のビルドで 'GetClCommandLineForReference' ターゲットを見つけられないため、IntelliSense が失敗する
- GetAssetAsync によって IOException (パイプが壊れている) が報告される
- 検索が機能していない
- オプティマイザーによって EH 情報が誤って削除され、一部の例外がクラッシュする原因となる
Visual Studio 2019 バージョン 16.8.1
リリース日: 2020 年 11 月 12 日
この Visual Studio 2019 バージョン 16.8.1 リリースで対処された問題
- チーム エクスプローラーでリポジトリを複製していると表示される、「'SourceExplorerPackage' パッケージを正しく読み込むことができませんでした。」という 影響の大きい警告の問題を修正しました。 この問題がユーザーで発生した場合、製品の応答が停止します。
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_ref、std::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 組み込みサポート。
- 新しいリンク オプションである
legacy_stdio_float_rounding.objが追加され、従来の浮動小数点値を表示する従来の動作が有効になりました。Dev16.2 では、正確に表現可能な浮動小数点数を適切に四捨五入するように変更されました。 詳細については、「printf、_printf_l、wprintf、_wprintf_l」を参照してください。
- .NET Core Linux でのコア ダンプのデバッグのサポート
- .NET と .NET Core の自動分析
- .NET および .NET Core メモリのホット パスの自動分析
- Blazor 電球
- C# 電球
- 強化された Razor 書式設定
- .razor ファイルのマークアップ内の Razor コンポーネントの名前変更
- Blazor コンポーネント タグ名前空間での定義への移動
- C# のポイント時の色付け
- C# 入力候補ツールヒントの色付け
- Razor 用の定義への移動/実装 (閉じたファイルを含む)
- 閉じられている Razor ファイルですべての参照を検索する
- 大規模なプロジェクトとソリューションの Razor 編集パフォーマンスと安定性の向上
- SDK スタイル プロジェクトの新しい Fakes サポートを使用する場合、shim の生成時に一部のユーザーで次のエラーが発生しました
- すべての 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 ワークフロー ドキュメントの一部として共有する
- Roslyn アナライザーが .NET 5.0 SDK に含まれるようになった
- 抑制演算子があるときに、C# 9
notの新しいパターン マッチング構文を導入できるリファクタリング - 1 つのステートメント本体内で static、instance、および extension メソッドの使用法を置き換えるのに役立つインライン メソッド リファクタリング
- C# の
typeofのインスタンスをnameofに、Visual Basic のGetTypeをNameOfに変換するためのコード修正 - 関数呼び出しの各引数の前に、リテラル、キャストされたリテラル、オブジェクト インスタンス化に対する装飾が挿入されるインライン パラメーター名ヒントの C# と Visual Basic でのサポート
- C# と Visual Basic の両方で、選択したクラスのメンバーを新しい基底クラスに抽出するリファクタリング
- コード クリーンアップに、1 つのファイルまたはソリューション全体に対し、EditorConfig ファイル内で設定されている書式設定とファイル ヘッダーの基本設定を適用できる新しい構成オプションが追加された
- 引数の参照渡しができない
inキーワードを削除するためのコード修正 - 新しい C#9 パターン連結子とパターン マッチングの提案を導入するリファクタリング (該当する場合に
==を使用するようにisを変換するなど) - 抽象ではないクラスで抽象メソッドを記述しようとするときにクラスを抽象にするためのコード修正
- 最初の引用符が入力されると、DateTime および TimeSpan 文字列リテラルの IntelliSense 入力候補が自動的に表示される
- 不要な
pragma suppressionsおよび不要なSuppressMessageAttributesを削除するためのコード修正 -
RenameとFind All Referencesは、グローバルSuppressMessageAttributesのターゲット文字列内のシンボルへの参照を認識する - ByVal は不要であるためフェードアウトされ、Visual Basic 内の不要な ByVal を削除するためにコードを修正
- 複数のランタイム (.NET Framework や .NET Core など) に対してインタラクティブ ウィンドウをサポート。
- アナライザーの作成者が追加ファイル用のアナライザーを作成できるようにする新しい RegisterAdditionalFileAction API。
- アカウント管理エクスペリエンスを使用した 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_ref、std::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]\(リンターおよび修正\) を使用します。
デバッガー
.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.* リリースを使用している場合は、次の回避策を使用できます。
- .csproj ファイルの PropertyGroup に <FakesUseV2Generation>False</FakesUseV2Generation> を追加します。
- <Fakes Include="Fakes\*.fakes" /> を csproj ファイルの ItemGroup に追加します。
- 生成された 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 の認証要求で利用されるようになります。
- .NET Core 3.1 および .NET 5.0 の Windows デスクトップ アプリ用に ClickOnce 発行プロバイダーを使用できるようになりました。 作業を開始するには、ソリューション エクスプローラー内でプロジェクトを右クリックし、[発行] を選択するか、[ビルド] > [<AppName> の発行] メニューを選択します。 ClickOnce は、フォルダー カテゴリにあります。
Git の生産性
- Azure DevOps の作業項目から新しいブランチを作成する
- Git メニューのお使いのローカル リポジトリの一覧から Git リポジトリを開く
既定のソース管理プロバイダーが、TFVC ではなく Git になりました。これは、[ツール]、[オプション]、[ソース管理] から変更できます。
Git リポジトリ ウィンドウのブランチ履歴をシングル クリックで切り替える
リポジトリを開いた後、ソリューション エクスプローラーでリポジトリ内のソリューションのリストを表示して選択する
.NET の生産性
- .NET のコンパイラ プラットフォーム (Roslyn) アナライザーでは、お使いの C# コードまたは Visual Basic コードに安全性、パフォーマンス、設計およびその他の問題がないか検査を行います。 .NET 5.0 以降、これらのアナライザーは .NET SDK に含まれるようになりました。 アナライザーは、.NET 5.0 以降を対象とするプロジェクトでは既定で有効になっています。 EnableNETAnalyzers プロパティを true に設定すると、以前のバージョンの .NET を対象とするプロジェクトで、.NET コード分析を有効にできます。 自分のプロジェクトでコード分析を無効にするには、EnableNETAnalyzers を false に設定します。 [プロジェクトのプロパティ] ウィンドウで .NET アナライザーを有効または無効にすることも可能です。 [プロジェクトのプロパティ] ウィンドウに移動するには、ソリューション エクスプローラーでプロジェクトを右クリックし、[プロパティ] を選択します。 次に、.NET アナライザーを有効にするチェックボックスのオン/オフを選択できる、[Code Analysis] タブを選択します。
- 抑制演算子があるときに、C# 9
notの新しいパターン マッチング構文を導入できるリファクタリングが追加されました。 抑制演算子にカーソルを置きます。 (Ctrl+. ) キーを押して、 [クイック アクションとリファクタリング] メニューをトリガーします。 [パターン マッチングを使用します] を選択します。
- メソッドのインライン化リファクタリングが導入されました。これにより、1 つのステートメント本文内で使用されている static、instance、および extension メソッドを、元のメソッド宣言を削除するオプションと置き換えることができます。 メソッドの使用にカーソルを置きます。 (Ctrl+. ) キーを押して、 [クイック アクションとリファクタリング] メニューをトリガーします。 次に、以下のオプションのいずれかを選択します。
インライン <QualifiedMethodName> を選択し、インラインメソッド宣言を削除します:
インライン を選択し、 <QualifiedMethodName> を保持して元のメソッド宣言を保持します:
テンプレートから作成した新しい C# または Visual Basic のファイルは、EditorConfig のコード スタイル設定に従っています。 新しいファイルが作成されると、ファイル ヘッダー、ディレクティブを使用した並べ替え、名前空間の内外でのディレクティブを使用した配置のコード スタイルが自動的に適用されます。
関数呼び出しの各引数の前に、リテラル、キャストされたリテラル、オブジェクト インスタンス化に対する修飾が挿入されるインライン パラメーター名ヒントが、C# と Visual Basic でサポートされるようになりました。 最初に、[ツール]>[オプション]>[テキスト エディター]>[C#] または [Basic]>[詳細] で [Display inline parameter name hints (experimental)]\(インライン パラメーター名ヒントを表示する (試験段階)\) を選択して、このオプションをオンにする必要があります。 その後、インライン パラメーター名ヒントが C# または Visual Basic のファイルに表示されるようになります。
- 新しい基底クラスの抽出リファクタリングを使用して、選択したクラスから新しい基底クラスにメンバーを抽出できるようになりました。 クラス名または強調表示されたメンバーのいずれかにカーソルを置きます。 (Ctrl+. ) キーを押して、 [クイック アクションとリファクタリング] メニューをトリガーします。 [メンバーを新しい基底クラスに引き上げます] を選択します。 新しい [Extract Base Class]\(基底クラスの抽出\) ダイアログ ボックスが開き、基底クラスの名前と配置先の場所を指定できます。 新しい基底クラスに転送するメンバーを選択し、[抽象化する] 列のチェック ボックスをオンにすることで、メンバーを抽象にすることができます。
[OK] を選択すると、新しい基底クラスとそのメンバーが追加されます。
- C# で typeof(
<QualifiedType>).Name のインスタンスを nameof(<QualifiedType>) に変換するコード、および Visual Basic で GetType(<QualifiedType>).Name のインスタンスを NameOf(<QualifiedType>) に変換するコードが修正されました。 型の名前の代わりに nameof を使用すると、オブジェクトを取得するときのリフレクションが回避されます。 typeof(<QualifiedType>).Name 内にカーソルを置きます。 (Ctrl+. ) キーを押して、 [クイック アクションとリファクタリング] メニューをトリガーします。 次に、以下のオプションのいずれかを選択します。
C# の場合、[typeof から nameof へ変換] を選択します。
Visual Basic の場合、[GetType から NameOf へ変換] を選択します。
- コード クリーンアップに、1 つのファイルまたはソリューション全体に対し、EditorConfig ファイルで設定されている書式設定とファイルヘッダーの基本設定を適用できる、新しい構成オプションが追加されました。
- 引数の参照渡しができない
inキーワードを削除するためのコード修正が加えられました。 エラーにカーソルを置きます。 (Ctrl+. ) キーを押して、 [クイック アクションとリファクタリング] メニューをトリガーします。 [Remove ‘in’ keyword]\(‘in’ キーワードの削除\) を選択します。
- 新しい C#9 パターン連結子を導入するリファクタリングが追加されました。 このコード修正は、該当する場合に
==を使用するようにisを変換するなどのパターン マッチングを提案すると共に、複数の異なるパターンと否定をマッチングするときにand、or、およびnotのパターン連結子を提案します。 ステートメント内にカーソルを置きます。 (Ctrl+. ) キーを押して、 [クイック アクションとリファクタリング] メニューをトリガーします。 [パターン マッチングを使用します] を選択します。
- 抽象ではないクラスで抽象メソッドを記述しようとするときにクラスを抽象にするためのコード修正が加えられました。 メソッド エラーにカーソルを置きます。 (Ctrl+. ) キーを押して、 [クイック アクションとリファクタリング] メニューをトリガーします。 [Make class ‘abstract’]\(クラスを ‘abstract’ にします\) を選択します。
- 16.7 Preview 1 で、DateTime および TimeSpan 文字列リテラルに IntelliSense の入力候補が追加されました。 このリリースでは、最初の引用符が入力されると、この入力候補一覧が自動的に表示されます。 以前は、この入力候補一覧を表示するには、(Ctrl+Space) を押す必要がありました。 DateTime または TimeSpan 文字列リテラル内にカーソルを置き、最初の二重引用符を入力します。 入力候補オプションと、各文字の意味についての説明が表示されます。 日時形式と例の両方が提供されます。
- 不要な pragma 抑制および不要な
SuppressMessageAttributesを削除するためのコード修正が加えられました。 pragma 警告またはSuppressMessageAttributeにカーソルを置きます。 (Ctrl+. ) キーを押して、 [クイック アクションとリファクタリング] メニューをトリガーします。 [Remove unnecessary suppression]\(不要な抑制を削除する\) を選択します。
-
[名前の変更] および [すべての参照の検索] で、グローバルの
SuppressMessageAttribute抑制の対象文字列内でシンボルへの参照が認識されるようになりました。
- Visual Basic には、パラメーターを渡すための複数の方法がありました。ByVal および ByRef です。また、長い間、ByVal は省略可能でした。 ByVal は不要であり、フェードアウトされます。不要な ByVal を削除するためのコード修正も加えられました。 ByVal キーワードにカーソルを置きます。 (Ctrl+. ) キーを押して、 [クイック アクションとリファクタリング] メニューをトリガーします。 [‘ByVal’ keyword is unnecessary and can be removed]\(‘ByVal’ キーワードは不要であり、削除できます\) を選択します。
- 複数のランタイム (.NET Framework や .NET Core など) に対してインタラクティブ ウィンドウがサポートされるようになりました。
- 新しい RegisterAdditionalFileAction API により、アナライザーの作成者は追加ファイル用のアナライザーを作成できるようになります。
テスト エクスプローラーの [テストの詳細] ペインの折り返し
この要望の多かった機能によって、ユーザーはテキストの折り返しを選択したり、既定のテキスト行の配置をそのまま使用したりできます。 テキストの配置が不要な場合、折り返すことで、テスト実行からのフィードバックが見やすくなり、水平スクロール バーが不要になります。 これは、テスト エクスプローラーの設定メニューまたは [概要] ペインのコンテキスト メニューから有効にすることができます。
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 バインド エラー\) ウィンドウに移動します。
- [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 ホット リロード
- Xamarin.Forms の "変更のみ" の XAML ホット リロードが UWP でサポートされるようになる: このリリースでは、UWP が対象のときに Xamarin.Forms プロジェクトでの新しい変更のみの XAML ホット リロードのサポートを有効にするという、要望の多かった機能のサポートのロールアウトが開始されます。 この機能はまだ開発中で、XAML を編集すると実行中のアプリで更新がトリガーされますが、アプリ内ツール バー (要素の選択など) などの他の機能はまだ完全には実装されておらず、将来のリリースで追加されることに注意してください。
- XAML ホット リロードの設定の [デバッグ] > [ホット リロード] への移動: このリリースでは、WPF、UWP、Xamarin.Forms の XAML ホット リロード設定を、[デバッグ] > [ホット リロード] の下にある統合設定画面に統合しました。 また、この機能を使用できるタイミングを完全に制御できるように、プラットフォームごとに 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 を迅速に宣言できる新機能が導入されています。
拡張性
- 参照されていない NuGet パッケージのツール ボックスへの入力: このリリースでは、参照されていない NuGet パッケージのコントロールをツールボックスに入力するときの TargetFrameworkMoniker 固有の VisualStudioToolsManifest.xml ファイルのサポートが追加されました。 したがって、たとえばお使いのパッケージで、.NET Core 3.1 および .NET 5.0 プロジェクトに別のコントロール セットを公開できるようになりました。
Developer Community から
- .NET 5 を対象とする WPF アプリケーションをコンパイルできない
- Xamarin.iOS のコマンド ラインから msbuild.exe を使用すると、完了時にハングする
- IntelliCode 2.2.733.31896 を無効にすると、.ts ファイルを編集するときに CompositionFailedException により TypeScript 3.x が中断する
- Typescript intellisense が停止したままになる
- VS2019 C++ - Optimize で無効なコードが生成される
- バックグラウンド タスクによって、"C/C++ IntelliSense の操作が進行中です" と無限にレポートされる
- WPF デザイナー エラー: 計算されたノードのパスが無効です -- null->Window:Grid
- Visual Studio 16.8.0 Preview 4 プロセスが表示されない
- [例外設定] ウィンドウをスクロールすると VS がクラッシュする
- atlstdthunk.h の USE_ATL_THUNK2 マクロを未定義にすることができない
- Visual Studio Community 2019 16.7.x が頻繁にクラッシュする
- NuGet パッケージ マネージャーに移動すると Visual Studio がクラッシュする
- avx2 で asan を使用するとスタック バッファー オーバーフローが発生する
- VisualStudio を閉じられない - 破棄されたオブジェクトにアクセスできません
- NullReferenceException 型の例外が発生する。
- Visual Basic アナライザー テンプレートに関する問題
- .cs ファイルの入力中に VS がクラッシュする
- C++ コード分析 (VS 2019 Update 8 Preview 3) の新しいバリアント チェックが発生しない、または機能しない
- 外部依存関係ファイルを使用して C++ ソリューションを開くと、それらの外部依存関係ファイル タブに "...でエラーが発生しました" と表示されます
- Visual Studio 16.7 へのアップグレード後に Windows SDK 8.1 を使用した C++ ビルドが失敗します
- ARM64 C++: 16.4 -> 16.5+ 回帰。
- .csproj がディスク上で変更されました。 エディターを閉じて再度開く
- ServiceHub.Host.CLR.x64 が動作を停止した
- ASAN x64 - CMake はサポートされていないようです
- 最大同時コンパイル ジョブが使用可能なプロセッサの数に設定されていると、VS2019 WSL C++ のコンパイルが断続的に失敗します
- プロジェクトを再構築すると、出力フォルダー全体が削除されます (リモート コンパイル)
- CMakeFiles.txt または CMakeSettings.json に触れるたびに VS2019 によって引き続き CMakeBuild ディレクトリがワイプされます
- IntelliCodeCppPackage の読み込みに失敗しました
- "/mnt/" プレフィックスが原因で CMake プロジェクト WSL 構成でビルド エラーが発生しました
- CMake : VS 16.7 にアップグレードされて以降、CMakeSettings.json で作成された環境変数が拡張されなくなりました
- DACPAC をプロジェクトのソース コードと比較するとき、Schema Compare で SQLCMD 変数が評価されません
- ビルドとデバッグを分離すると o ファイルが配置されません
- パーティションを使用したモジュールがコンパイルされません
- タブを切り替えると「処理中」というメッセージが表示される
- 同名の変数が複数あり Visual Studio 2019 デバッガーが混同する
- かっこの後の文字列リテラル区切り記号が強調表示される
- 既定のコンストラクトでない promise_type を持つコルーチンを定義できない
- C/C++ IntelliSense: C ファイルで算術演算子の入力後、var. と入力した後に メンバー リストが表示されない
- 別のファイルでコードを変更しているときに Codelens の参照が更新されない
- [定義へ移動] でラムダ arg クラスの代わりに std::function コンストラクターに移動する
- HLSL Shader Compiler がヘッダー ファイルの出力ディレクトリの作成に失敗する
- 予期しないエラー C2027: /permissive でテンプレートを使用するときに未定義の型が使われる
- D9025: '/sdl-' が '/GS-' にオーバーライドされる
- constexpr が参照からポインターを嫌っている
- ドキュメントは既にプロジェクトまたはソリューションとして開いており、現時点ではエディターで開けない。
- 16.7 での switch 式のカバレッジの削除
- 無効にしたにもかかわらず C5045 の警告が発せられる
- Xamarin.Forms で iOS のアーカイブを作成できない
- 16.7.0 Preview1 での CImage::Draw() による DrawImage() のあいまいな呼び出し
- ピン留めされたタスク バー アイコンで "フォルダーを開く" プロジェクトを読み込むとビューが見つからない
- C++: コンパイラで間違ったオーバーロード候補が選択される
- CodeFix を使用して新しい VB VSIX プロジェクトを作成できない
- VS2019 の検索結果でフォントと色の設定が使用されない
- 大きなソリューションで .editorconfig ファイルを編集すると、エディターが非常に遅くなり、CPU と RAM の使用率が高くなり、場合によってはクラッシュすることがある
- Ctrl + F キーの検索結果はテキストとして表示されるが、新しい構造化された検索結果ウィンドウで結果を表示したい
- [発行] ボタンが表示されない
- 保存しても保存されない
- 60 文字を超えるソリューション/プロジェクト名が許可されない。
- "You have a new license for Visual Studio Enterprise 2019" (Visual Studio Enterprise 2019 に使用できる新しいライセンスがあります) メッセージ。
- ダークモードの Git ビューが正しく表示されない。
- バックグラウンドでコード分析を実行している間、Visual Studio 2019 がクラッシュし、ファイルが復旧されない。
- 2 段階認証を使用して Apple Developer アカウントを追加できない。
- noexcept の fold 式で構文エラーが生成される。
- 金色のバーが "StreamPipeReader.AdvanceTo: 完了する読み取り操作はありません" の RPC 例外の後に表示される。
- デザイン パネルを使用して列を編集すると、SQL Server プロジェクトがクラッシュする。
- Visual Studio 2019 Preview: ssh+git:// リポジトリが資格情報を要求せず、代わりにエラーを報告する。
- Std::enable_if によってオーバーロード セットから変換演算子が削除されない。
- プル要求ページが壊れている。
- Enable_if_t SFINAE の問題
- Std::condition_variable::wait_for(0) によってロックがロック解除されない
- 一時的なアドレスの取得がコンパイラによってキャッチされない。
- シンボルのファイルと共にクラスの名前を変更すると、NullPointerException がスローされる。
既知の問題
Visual Studio 2019 のすべての未解決のイシューと、利用可能な回避策を以下のリンクから参照してください。
Visual Studio 2019 リリース ノート履歴
過去のバージョンの Visual Studio 2019 に関連する詳細については、「Visual Studio 2019 リリース ノート履歴」のページを参照してください。
Visual Studio 2019 バージョン 16.8 リリース ノート