Visual Studio アイコンVisual Studio 2019 バージョン 16.0 リリース ノート


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


Note

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



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

サポート期間

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

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

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

Visual Studio 2019 バージョン 16.0 のリリース

Visual Studio 2019 ブログ

Visual Studio 2019 ブログは、Visual Studio エンジニアリング チームからの製品の分析情報の公式な情報源です。 そこでは、Visual Studio 2019 リリースの詳細について確認できます。


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

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

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

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

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

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

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


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

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

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

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

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


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

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

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

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

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


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

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

この 16.0.19 リリースの内容

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

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

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

16.0.18 で修正されたイシュー

  • .NET Core のサポート対象外のバージョンが、VS のセットアップ時以外で削除されている場合、修復またはアップグレード時に再インストールされなくなりました。

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

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 コアによるエンコードされた Cookie 名の解析方法に存在します。 ASP.NET Core Cookie パーサーは Cookie 文字列全体をデコードします。これにより、悪意のある攻撃者によって、名前がパーセント エンコーディングされた 2 番目の Cookie が設定される可能性があります。


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

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

16.0.17 で修正されたイシュー

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

CVE-2020-1597 ASP.NET Core サービス拒否の脆弱性

ASP.NET Core によって Web 要求が不適切に処理されない場合、サービス拒否の脆弱性が存在します。 攻撃者がこの脆弱性を悪用して、ASP.NET Core Web アプリケーションに対するサービス拒否を発生させる可能性があります。 この脆弱性はリモートで、認証なしで悪用できます。


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

リリース日: 2020 年 7 月 14 日

16.0.16 で修正されたイシュー

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

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

Windows Diagnostics Hub Standard Collector Service が入力を正しくサニタイズできない場合、特権の昇格の脆弱性が存在し、ライブラリ読み込み動作が安全でなくなります。

CVE-2020-1416 Visual Studio の特権の昇格の脆弱性

Visual Studio でソフトウェアの依存関係を読み込むときに、特権の昇格の脆弱性が存在します。

CVE-2020-1147 .NET Core のサービス拒否の脆弱性

認証を受けていないリモートの攻撃者が、特別に作成された要求を ASP.NET Core アプリケーションや、特定の型の XML を解析する他のアプリケーションに発行して、この脆弱性を悪用する可能性があります。 このセキュリティ更新プログラムは、XML ペイロード内に存在できる型を制限することで、脆弱性に対処します。


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

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

16.0.15 で修正されたイシュー

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

CVE-2020-1108 / CVE-2020-1108.NET Core のサービス拒否の脆弱性

CVE-2020-1108 に包括的に対応するために、Microsoft は .NET Core 2.1 および .NET Core 3.1 の更新プログラムをリリースしました。 これらのバージョンの .NET Core を使用しているお客様は、最新バージョンの .NET Core をインストールする必要があります。 .NET Core を更新する場合の最新のバージョン番号と手順については、リリース ノートを参照してください。

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

診断ハブ標準コレクターまたは Visual Studio 標準コレクターがメモリ内のオブジェクトを正しく処理できない場合、特権の昇格の脆弱性が存在します。

CVE-2020-1293 / CVE-2020-1278 / CVE-2020-1257 診断ハブ標準コレクター サービスの特権の昇格の脆弱性

診断ハブ標準コレクター サービスによってファイル操作が適切に処理されない場合、特権の昇格の脆弱性が存在します


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

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

16.0.14 で修正されたイシュー

  • 企業の IT 管理者と展開エンジニアが、Microsoft Update Catalog と WSUS でホストされている VS2019 16.0 更新プログラムを適用できるかを判断するために Microsoft Update クライアントや SCCM などのツールを構成できるようにするための変更を追加しました。

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

CVE-2020-1108 .NET Core のサービス拒否の脆弱性

認証を受けていないリモートの攻撃者が、特別に作成された要求を .NET Core アプリケーションに発行して、この脆弱性を悪用する可能性があります。 このセキュリティ更新プログラムでは、.NET Core Web アプリケーションによる Web 要求の処理方法を修正することで、脆弱性に対処します。


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

リリース日: 2020 年 4 月 14 日

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

CVE-2020-0899 Microsoft Visual Studio の特権の昇格の脆弱性

特権の昇格脆弱性は、Microsoft Visual Studio アップデーター サービスがファイルのアクセス許可を正しく処理しないときに発生します。 攻撃者がこの脆弱性を悪用すると、ローカル システムのセキュリティ コンテキストで任意のファイルの内容が上書きされる可能性があります。

CVE-2020-0900 Visual Studio 拡張機能インストーラー サービスの特権の昇格脆弱性

特権の昇格脆弱性は、Visual Studio 拡張機能インストーラー サービスがファイル操作を正しく処理しないときに発生します。 この脆弱性の悪用に成功した攻撃者は、昇格されたアクセス許可を使用して任意の場所にあるファイルを削除できます。

CVE-2020-5260 URL に対する検証が不十分なことが原因で発生する Git for Visual Studio の資格情報リークの脆弱性

資格情報リークの脆弱性は、特別に細工された URL が解析され、資格情報ヘルパーに送信されると発生します。 これにより、資格情報が間違ったホストに送信される可能性があります。


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

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

16.0.12 で修正されたイシュー

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

CVE-2020-0793CVE-2020-0810 診断ハブ標準コレクター サービスの特権の昇格の脆弱性

Diagnostics Hub Standard Collector がファイル操作を不適切に処理した場合、または Windows Diagnostics Hub Standard Collector Service が入力を正しくサニタイズできない場合、特権の昇格の脆弱性が存在します。

CVE-2020-0884 Outlook Web アドインの作成時のスプーフィングの脆弱性

多要素認証が有効になっている場合に Outlook Web アドインを作成すると、スプーフィングの脆弱性が発生する

CVE-2020-0789 Visual Studio 拡張機能インストーラー サービスのサービス拒否の脆弱性

Visual Studio 拡張機能インストーラー サービスがハード リンクを正しく処理しない場合、サービス拒否の脆弱性が存在します。 脆弱性の悪用に成功した攻撃者が、ターゲット システムの応答を停止する可能性があります。


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

リリース日: 2020 年 1 月 14 日

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

CVE-2020-0602 ASP.NET Core サービス拒否の脆弱性

認証を受けていないリモートの攻撃者が、特別に作成された要求を ASP.NET Core アプリケーションに発行して、この脆弱性を悪用する可能性があります。 このセキュリティ更新プログラムでは、ASP.NET Core Web アプリケーションによる Web 要求の処理方法を修正することで、脆弱性に対処します。

CVE-2020-0603 ASP.NET Core のリモート コード実行の脆弱性

認証を受けていないリモートの攻撃者が、特別に作成された要求を ASP.NET Core アプリケーションに発行して、この脆弱性を悪用する可能性があります。 このセキュリティ更新プログラムでは、ASP.NET Core Web アプリケーションによるメモリ内の処理方法を修正することで、脆弱性に対処します。


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

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

16.0.10 で修正された問題

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

CVE-2019-1349 サブモジュール名に対する制限が緩すぎることが原因で発生する Git for Visual Studio のリモート実行脆弱性

兄弟サブモジュールのディレクトリ用のサブモジュール名の衝突が Git で発生している場合には、リモート コード実行の脆弱性が存在します。 この脆弱性を悪用した攻撃者によって、ターゲット コンピューター上のコードがリモートで実行される可能性があります。 セキュリティ更新プログラムでは、新しいバージョンの Git for Windows を使用してこの脆弱性に対処します。このバージョンでは、サブモジュールのクローン用のディレクトリを空にする必要があります。

CVE-2019-1350 コマンドライン引数の引用が正しくないことが原因で発生する Git for Visual Studio のリモート実行脆弱性

SSH URL と組み合わせた再帰クローン中に特定の方法で引用されたコマンドライン引数が解釈される場合には、リモート コード実行脆弱性が存在します。 この脆弱性を悪用した攻撃者によって、ターゲット コンピューター上のコードがリモートで実行される可能性があります。 セキュリティ更新プログラムでは、この問題を解決する新しいバージョンの Git for Windows を使用して脆弱性に対処します。

CVE-2019-1351 クローン中にアルファベット以外のドライブ名が使用されることが原因で発生する Git for Visual Studio の任意のファイル上書き脆弱性

アルファベット以外のドライブ名によって git clone での安全性チェックが省略される場合、Git には任意のファイル上書き脆弱性が存在します。 この脆弱性を悪用した攻撃者によって、ターゲット コンピューター上の任意のファイルに対して書き込みが行われる可能性があります。 セキュリティ更新プログラムでは、この問題を解決する新しいバージョンの Git for Windows を使用して脆弱性に対処します。

CVE-2019-1352 NTFS 代替データストリームを認識しないことが原因で発生する Git for Visual Studio のリモート実行脆弱性

NTFS 代替データ ストリームを介して git/ ディレクトリにクローンおよび書き込みを行う場合には、リモート コード実行脆弱性が存在します。 この脆弱性を悪用した攻撃者によって、ターゲット コンピューター上のコードがリモートで実行される可能性があります。 このセキュリティ更新プログラムでは、NTFS 代替データ ストリームを認識するようになった新しいバージョンの Git for Windows を使用して脆弱性に対処します。

CVE-2019-1354 バックスラッシュを含む追跡対象ファイルの書き出しを拒否しないことが原因で発生する Git for Visual Studio の任意のファイル上書き脆弱性

バックスラッシュや悪意のあるシンボリック リンクを含むツリー エントリが処理ツリーを抜け出す可能性がある場合には、Git に任意のファイル上書き脆弱性が存在します。 この脆弱性を悪用した攻撃者によって、ターゲット コンピューター上の任意のファイルに対して書き込みが行われる可能性があります。 セキュリティ更新プログラムでは、このようなバックシュラッシュの使用を許可しない新しいバージョンの Git for Windows を使用して脆弱性に対処します。

CVE-2019-1387 再帰的なクローンにおいてサブモジュール名の検証が緩すぎることが原因で発生する Git for Visual Studio のリモート実行脆弱性

サブモジュールで再帰的なクローンを行う場合は、Git にリモート コード実行脆弱性が存在します。 この脆弱性を悪用した攻撃者によって、ターゲット コンピューター上のコードがリモートで実行される可能性があります。 セキュリティ更新プログラムでは、サブモジュール名の検証を強化した新しいバージョンの Git for Windows を使用して脆弱性に対処します。

CVE-2019-1486 Live Share の拡張 URL リダイレクト脆弱性

Live Share セッションに接続されているゲストが、セッション ホストによって指定された任意の URL にリダイレクトされたときに、Visual Studio Live Share 拡張機能でスプーフィング脆弱性が検出されました。 攻撃者は、この脆弱性を悪用し、ゲストのコンピューターでブラウザーを開き、明示的な同意なしに悪意のある URL に移動できるようになっている可能性があります。 これは、アクティブな Live Share セッション中に自動ポート転送を許可する Live Share の "共有サーバー" 機能の一部でした。 最新の更新プログラムでは、ホストが指定した URL を参照する前に Live Share ゲストの同意を取り消すことで、この脆弱性に対処します。


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

リリース日: 2019 年 10 月 15 日

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

CVE-2019-1425 NPM パッケージの特権の昇格の脆弱性 (2019 年 11 月 12 日公開)

Visual Studio がアーカイブ ファイルを抽出するときにハードリンクを適切に検証できない場合に、特権の昇格の脆弱性が存在します。 この脆弱性は、次の 2 つの NPM アドバイザリで説明されているように、Visual Studio で使用される NPM パッケージによってもたらされました: npmjs.com/advisories/803 および npmjs.com/advisories/886。 これらの NPM パッケージの更新バージョンは、このバージョンの Visual Studio に含まれていました。


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

リリース日: 2019 年 9 月 10 日

Visual Studio 2019 バージョン 16.0.8 で修正された問題

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

CVE-2019-1232 Diagnostics Hub Standard Collector Service の特権の昇格の脆弱性

Diagnostics Hub Standard Collector Service によって特定のファイル操作が適切に偽装されなかった場合に、特権の昇格の脆弱性が存在します。 この脆弱性の悪用に成功した攻撃者は、昇格された特権を取得できます。 脆弱なシステムへの特権のないアクセスを持つ攻撃者が、この脆弱性を悪用する可能性があります。 セキュリティ更新プログラムでは、Diagnostics Hub Standard Collector Service によってファイル操作が正しく偽装されるようにすることで、この脆弱性に対処します。


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

リリース日: 2019 年 8 月 13 日

Visual Studio 2019 バージョン 16.0.7 で修正された問題

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

CVE-2019-1211 Git for Visual Studio の特権の昇格脆弱性

特権の昇格脆弱性は、Git for Visual Studio で構成ファイルが正しく解析されないときに存在します。 脆弱性の悪用に成功した攻撃者は、別のローカル ユーザーのコンテキストでコードを実行することができます。 脆弱性を悪用するには、認証された攻撃者が、アプリケーションが完全にインストールされる前に、システム上の Git 構成ファイルを変更する必要があります。 その後、攻撃者は、システム上の別のユーザーを利用して、特定の Git コマンドを実行させる必要があります。 この更新プログラムでは、構成ファイルの編集に必要なアクセス許可を変更することにより、問題が解決されています。

**CVE-2019-1301: .NET Core のサービス拒否の脆弱性

.NET Core によって Web 要求が不適切に処理されない場合、サービス拒否の脆弱性が存在します。 攻撃者がこの脆弱性を悪用して、.NET Core Web アプリケーションに対するサービス拒否を発生させる可能性があります。 この脆弱性はリモートで、認証なしで悪用できます。

この更新プログラムでは、.NET Core Web アプリケーションによる Web 要求の処理方法を修正することで、脆弱性に対処します。


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

リリース日: 2019 年 7 月 9 日

Visual Studio 2019 バージョン 16.0.6 で修正された問題

  • Windows 10 バージョン 1903 で実行されている、または .NET 4.8 がインストールされているシステムでのナレーターのサポートを修正しました。

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

CVE-2019-1075 ASP.NET Core のなりすましへの脆弱性

本日 .NET Core の更新プログラムがリリースされ、この Visual Studio の更新プログラムに追加されました。 このリリースでは、セキュリティと、その他の重要な問題に対処しています。 詳細は、.NET Core のリリース ノートを参照してください。

CVE-2019-1077 Visual Studio 拡張機能の自動更新プログラムの脆弱性

Visual Studio 拡張機能の自動更新プロセスで特定のファイル操作が適切に処理されなかった場合、特権の昇格の脆弱性が存在します。 この脆弱性の悪用に成功した攻撃者は、任意の場所にあるファイルを削除できます。 この脆弱性を悪用するには、攻撃者が脆弱性のあるシステムに特権なしでアクセスできる必要があります。 セキュリティ更新プログラムでは、Visual Studio 拡張機能の自動更新でファイル操作が実行される場所を保護することで、この脆弱性に対処します。

CVE-2019-1113 WorkflowDesigner の XOML の逆シリアル化でコードが実行される場合がある

特定の型を参照する XOML ファイルを Visual Studio で開くと、ランダムなコードが実行される場合があります。 XOML ファイルで使用できる型に制限が設けられることになりました。 未承認のいずれかの新しい型が含まれる XOML ファイルを開くと、その型が未承認であることを示すメッセージが表示されます。

詳細については、https://support.microsoft.com/help/4512190/remote-code-execution-vulnerability-if-types-are-specified-in-xoml をご覧ください。


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

リリース日: 2019 年 6 月 11 日

Visual Studio 2019 バージョン 16.0.5 で修正された問題


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

リリース日: 2019 年 5 月 14 日

Visual Studio 2019 バージョン 16.0.4 で修正された問題

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

CVE-2019-0727 Diagnostics Hub Standard Collector Service の特権の昇格の脆弱性

Diagnostics Hub Standard Collector Service によって特定のファイル操作が適切に処理されなかった場合に、特権の昇格の脆弱性が存在します。 この脆弱性の悪用に成功した攻撃者は、任意の場所にあるファイルを削除できます。 この脆弱性を悪用するには、攻撃者が脆弱性のあるシステムに特権なしでアクセスできる必要があります。 セキュリティ更新プログラムでは、Diagnostics Hub Standard Collector によってファイル操作が実行される場所を保護することで、この脆弱性に対処します。


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

2019 年 4 月 30 日リリース

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

  • Visual Studio Tools for Kubernetes では、最新の Azure Dev Spaces がサポートされるようになりました。

Visual Studio 2019 バージョン 16.0.3 で修正された問題


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

2019 年 4 月 18 日リリース

Visual Studio 2019 バージョン 16.0.2 で修正された問題


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

2019 年 4 月 9 日リリース

Visual Studio 2019 バージョン 16.0.1 で修正された問題


Release Notes Icon Visual Studio 2019

リリース日: 2019 年 4 月 2 日

Visual Studio 2019 の新機能の概要

インストール

IDE

  • 既定でインストールされる Visual Studio Live Share を使用して他のユーザーとの共同作業を行えます。 C++、VB.NET、および Razor に対する追加の言語サポートにより、ゲストはソリューション ビューを確認し、ソース管理の差異を共有できます。
  • 新しいスタート画面を介して、最近作業していたコードを開いたり、使用頻度の高いフロー (プロジェクトを複製する、開く、作成するなど) のいずれかから開始したりすることができます。
  • 人気度によって並べ替えられたテンプレート一覧を使用して、強化された検索エクスペリエンスやフィルターを備えた新規プロジェクトを作成できます。
  • 新たに加えられた一連の、シェルでの視覚的な変更により、コード用の縦方向の空間が広くなり、最新のルック アンド フィールが提供されています。
  • モニターごとの認識のサポートが強化されましたので、ご利用のディスプレイの構成やスケーリングに関係なく IDE をより鮮明に表示できます。
  • Visual Studio 内で強化された、メニュー、コマンド、オプション、およびインストール可能コンポーネントに対する検索機能を使用できます。
  • ドキュメントインジケーターを使用することで、ご利用のコード ファイルの "正常性" をすばやく把握できます。 インジケーターからのワンクリックでのコードのクリーンアップによって実行および構成を行うことができます。
  • [オプション] ダイアログ内の新しいプレビュー機能ページを使用してオプトインしたプレビュー機能を簡単に管理できます。
  • 新しいプロジェクトの作成で、タグに基づく検索が改善され、[最近使用したプロジェクト テンプレート] の一覧に簡単にアクセスできるようになります。
  • Visual Studio での検索から新しいアイテムを直接作成でき、向上した関連性でいっそう速く結果が見つかります。
  • 新しい通知エクスペリエンスにより、Visual Studio Live Share の要求などの重要な情報が常に提供されます。
  • コードのクリーンアップ中に実行する修正機能を簡単に選択できるように、コード クリーンアップ修正機能のコレクションがプロファイルとして保存されます。
  • 新しい .NET リファクタリングとコード修正がトリガーされます。
  • ファーストクラスのプロジェクト ファイルを使用すると、.NET Core プロジェクトをより簡単に構成できます。
  • [拡張機能と更新プログラム] ダイアログ ボックスで、プレビュー、有料、評価版のタグが付いた拡張機能の状態を確認できます。
  • このプレビューでは既定値がリセットされたので、アクティブにする必要があるプレビュー機能を確認して構成できます。
  • このリリースで非推奨としてマークされた特定のテスト ウィンドウ API を除外することで、拡張機能を最新の状態に保ちます。
  • スタート ウィンドウを使用して、Azure DevOps からホストされているリポジトリにサインイン、参照、ワンクリックで複製または接続できます。
  • 個人や組織によって所有されているリポジトリを表示するため、他のソース管理ホスト用の拡張機能をインストールできます。
  • フィードバックに対応して、明るさの抑制、全体のコントラストの改善、その他の使いやすさの問題への対応が行われ、改善された青のテーマのエクスペリエンスを実感できます。
  • dotnet 形式のグローバル ツールを使用して、コマンドラインからコードのスタイル設定を適用できます。
  • MSBuild および Visual Studio では既定で .NET Framework 4.7.2 が対象とされるようになりました。
  • サーバー エクスプローラーから Azure App Service 関連の機能が削除されました。代わりに Cloud Explorer で同等の機能を使用できます。

パフォーマンス

一般的なデバッグと診断

  • デバッグを行いながら[ウォッチ]、[自動変数]、[ローカル] の各ウィンドウ内でキーワードを検索することができ、オブジェクトまたは値の検索能力が向上します。
  • データを検査する際に [ウォッチ]、[自動変数]、[ローカル] の各ウィンドウで書式指定子のドロップダウンが表示されます。
  • .NET Core との互換性を持つようになったカスタム ビジュアライザーを使用できます。
  • モジュールと PDB を多数備えた大規模なアプリケーションをデバッグできます。
  • カスタム引数を使用して Google Chrome を起動し、JavaScript アプリケーションのデバッグをすべて Visual Studio IDE 内で行うことができます。
  • パフォーマンス プロファイラーで CPU および .NET オブジェクト割り当てツールのホット パスの強調表示を使用できます。
  • .NET Core 3.0 以降のアプリケーションでデータ ブレークポイント (元は C++ 専用の機能) を使用して、特定のオブジェクトのプロパティ値を変更すると、中断できます。
  • Preview 1 以降、自動変数、ローカル、ウォッチの各ウィンドウでの検索の UI を、より単純なインターフェイスに更新してきました。 詳細検索機能は、最初および後続の検索の詳細度をすばやく選択できるように、ドロップダウンに変更されています。

ソース管理とチーム エクスプローラー

  • チーム エクスプローラーで Git 一時退避をサポートする Git ツールを使用して別のタスクで作業ができるように、変更内容を一時的に格納します。
  • Visual Studio Market Place で使用可能なオプションの拡張機能 (Visual Studio 用のプル要求) をチェックアウトします。この拡張機能では、プル要求のレビューが Visual Studio に統合されます。
  • ユーザー固有の作業項目ビュー、作業項目に基づくブランチの作成、#mentions を使用した作業項目の検索、インライン編集などの開発者ワークフローに重点を置いた新しい Azure DevOps 作業項目エクスペリエンスを使用しています。

拡張性

  • NuGet パッケージで、単一の統一された Visual Studio SDK Microsoft.VisualStudio.SDK が使用できるようになりました。
  • AsyncPackage が含まれるようになった、VSIX プロジェクトへの更新プログラムが利用できます。
  • 新しく追加された空の VSIX プロジェクト テンプレートを使用して試してみることができます。
  • 拡張機能が無料、有料、または評価版かどうかがわかるように、[拡張機能と更新プログラム] ダイアログ内に表示されるようになりました。

プログラミング言語

C#

C# コンパイラでサポートされるようになった 8.0 の言語機能のプレビューをお試しください。

  • Null 許容参照型: この機能が有効な場合 (たとえば #nullable enable、またはプロジェクトレベルの <NullableContextOptions>enable</NullableContextOptions> を使用)、? の注釈が付けられている参照型は Null 許容として扱われ、それ以外の場合は NULL 非許容として扱われます。 次に、コンパイラによって NULL 値のフロー先が分析され、安全ではない可能性がある使用法について警告されます。
  • switch: 式コンテキストで switch などのセマンティクスを提供します。
  • 再帰的なパターン マッチング: 新しいパターンでは、(タプルまたは分解の) フィールド/プロパティと位置要素をテストできます。
  • 範囲の x..y リテラル構文を含め、スライスのために CoreFX で使用されている Range 型と Index 型のサポート。
  • IAsyncEnumerable<T> で表される非同期ストリームは、await foreach 使用して非同期に列挙できます。また、async IAsyncEnumerable<T> 反復子メソッドで生成できます。
  • using 宣言: 入れ子のレベルを増やさずに、現在のブロックの末尾にあるものを破棄します。 ref 構造体は、パブリック Dispose() メソッドを実装することで破棄できます。
  • static ローカル関数: static のマークが付いたローカル関数は、this またはその外側の関数内の変数を参照できません。
  • ローカル関数とラムダは、外側の関数の変数名を隠すパラメーターとローカルを宣言できるようになりました。
  • NULL 合体代入: x ??= y; は、xnull の場合にのみ、yxに代入します。

詳細については、Mads の C# 8.0 の概要に関する記事を参照してください。

詳細については、C# 言語機能の状態破壊的変更に関する記事を参照してください。

さらに、Visual Studio の既定で使用できる新しい C# 言語機能はその他にもあります。

C++
  • Visual Studio IntelliCode (コードに対して AI 支援の推奨事項が表示されるオプションの拡張機能) を使用することにより、C++ および XAML コードを記述する際に時間が節約されます。
  • エディター内でコード分析の警告が表示されます。 コード分析はバックグラウンドで自動的に実行されて、警告が緑の波線として表示されます。
  • ピーク ウィンドウ UI が使用され、入れ子になったテンプレートがサポートされている、新しいテンプレート バーを試してください。
  • C++ Lifetime プロファイル チェッカーの新しい更新された実装を実行できます。
  • CMakeSettings.json の代わりになる新しい CMake 設定エディターを使用して CMake プロジェクトを構成できます。
  • OpenMP SIMD ベクター化、リンク時のスピードアップ、よりアグレッシブなインライン化など、さまざまなバックエンドの機能強化を試してください。
  • CMakeGUI などの外部ツールや、カスタマイズされたメタビルド システムによって生成された既存の CMake キャッシュを開けるようになりました。
  • Spectre Variant 1 のリスク軽減サポートを提供するため、/Qspectre を使用した分析が強化されました (CVE-2017-5753)。 詳細については、Visual C++ チームのブログ記事を参照してください。
  • テンプレートの IntelliSense の [テンプレート] バーに [直前に使用] ドロップダウンが追加され、以前のサンプル引数とすばやく切り替えることができます。
F#
  • F# 4.6 がリリースされ、さまざまなコンパイラの機能強化が追加されています。
  • 大規模なソリューションのパフォーマンスの向上と F# および F# ツールのさまざまなバグ修正を行いました。
  • オープン ソースの共同作成者たちが F# 言語とツールに貢献した素晴らしい作業内容をご確認ください。
JavaScript/TypeScript
Python
  • Python の [環境を追加] ダイアログを使用して、Python の仮想環境および conda 環境を容易に追加できます。
  • 新しい Python 環境セレクター ツールバーによる [フォルダーを開く] ワークスペースのサポートの向上など、Python 環境での作業がいっそう容易になっています。
  • Visual Studio Live Share セッションを作成し、他の Visual Studio ユーザーと Python コードで共同作業できます。

Web テクノロジ

コンテナー ツール

Xamarin によるモバイル開発

ユニバーサル Windows プラットフォーム (UWP)

  • デザイナーから編集を行ったときに、コメント、空白文字、名前空間、およびその他のテキスト変更が保持されます。 パッケージ マニフェスト デザイナーで、Package.appxmanifest ファイルの XML に対する変更が厳密に維持されるようになりました。
  • .NET Core プロジェクトに Windows アプリケーション パッケージ プロジェクトを使用して、MSIX パッケージを生成できます。
  • パッケージ作成ウィザードで、Microsoft Store に直接送信できます。
  • Visual Studio 2019 では Windows Mobile デバイスへの展開はサポートされなくなりました。 Windows 10 Mobile デバイスに展開しようとすると、"Visual Studio 2019 では、Windows Mobile デバイスへの展開はサポートされていません" というエラーが発生します。 Windows 10 Mobile デバイス用のアプリケーションで引き続き作業する必要がある場合は、Visual Studio 2017 を引き続きご使用ください。

XAML 用のデバッグ ツール:

  • XAML エディット コンティニュでの x:bind (UWP) のサポート開始: XAML のエディット コンティニュで、パブリック プロパティ、要素名、インデックス付きプロパティ パス (コレクション)、添付プロパティ、およびキャスト プロパティを含むパスの x:bind で作成されたデータ バインディングの編集がサポートされるようになりました。 その他の変更はサポートされていません。 この拡張機能は、最小バージョンと最大バージョンが Windows 10 SDK バージョン 1809 (ビルド 10.0.17763) 以降を対象とするすべてのアプリで使用できます。 (注: XAML のエディット コンティニュは、Visual Studio 2019 Update 2 以降では XAML ホット リロードと呼ばれるようになりました)。

SQL Server Data Tools

  • UTF-8 照合順序のサポートが追加された最新の SSDT と DacFX をご利用ください。

Visual Studio 2019 の新機能の詳細

インストール

  • Visual Studio の更新プログラムのインストール方法を選択できるようになりました。 既定のモードは "全部ダウンロードしてからインストールする" であり、更新プログラムがダウンロードされている間も Visual Studio を使用することができます。 [全部ダウンロードしてからインストールする] を選択する場合は、Visual Studio インストーラーを開いて [続行] を選択し、インストールを完了する必要があることに注意してください。
  • Visual Studio の更新プログラムは、バックグラウンドでダウンロードされます。 これらのダウンロードは、コンピューターがアイドル状態のときにのみ行われます。 ダウンロードが完了すると、ダウンロードをインストールする準備ができたことが、Visual Studio 内で通知されます。
  • [ツール] > [オプション] メニューから [製品の更新プログラム] ページで設定を変更することにより、更新プログラムのインストール モード、および更新プログラムをダウンロードするかどうかを制御できます。
*[製品の更新プログラム] のオプション*

スタート ウィンドウ

新しいスタート画面では、Visual Studio の起動時にご自分のコードにすばやくアクセスするのに役立つ効率化されたラウンチ エクスペリエンスが提供されています。

  • 最近使ったプロジェクトとフォルダーを表示し、1 回のクリックでそれらを開くことができます。 コンテキスト メニューからリストの項目をピン留めし、リストから項目を削除することができます。
  • 公開されている、または非公開の git URL を使用してコードを複製またはチェックアウトします。これにより、IDE でフォルダーも自動的に開かれます。
  • Azure DevOps からホストされているリポジトリへのサインイン、参照、および 1 クリックの複製、または接続できます。また、個人や組織によって所有されているリポジトリを表示するため、他のソース管理ホスト用の拡張機能をインストールできます。
  • ご利用のローカル ディスクまたはネットワーク共有内でプロジェクト、ソリューション、またはコードが含まれている任意のフォルダーを参照し、IDE でそれらを開くことができます。
  • 新しいプロジェクトまたはソリューションを開始するときに役立つコードのスキャフォールディングを提供するプロジェクト テンプレートを選択できます。
  • タイトル、説明、およびタグでプロジェクト テンプレートを検索できます。また、使用できる言語、プラットフォーム、およびプロジェクトの種類でフィルターできます。 既定の一覧には使用可能なすべてのテンプレートが表示される一方、左側のウィンドウには最近使用した上位 10 個のプロジェクト テンプレートの一覧が表示されてすぐにアクセスできます。 2 ページのウィザードにより、一度に 1 つの意思決定に集中することができます。
スタート ウィンドウ
*新しいスタート ウィンドウのエクスペリエンス*

シェルとプラットフォーム

  • 改善された新しい製品アイコンを使用して、開かれ使用されている Visual Studio のバージョンをすばやく見つけることができます。 この新しいアイコンは、さまざまな背景に対してもよりわかりやすくなっています。
  • 青のテーマの更新により実現された Visual Studio の最新のルック アンド フィールを体験できます。Microsoft のユーザー補助の標準を引き続き満たしながら、より明確なユーザー インターフェイスが提供されています。
  • 簡潔さを目標とし、IDE 内の垂直方向の領域を再利用するという変更により、コードがより見やすくなります。 既存の機能を維持しながら、タイトル バーとメニュー バーを結合しました。
  • 試験段階の新しい設定を介して Visual Studio をモニターごとの認識アプリケーションとしてを使用できます。 この設定が有効になっている場合、ご利用のディスプレイの構成またはスケーリングに関係なく、シェルやエディターなどの Visual Studio のパーツをより鮮明にレンダリングすることができます。
  • メニュー、コマンド、オプション、およびインストール可能なコンポーネントにわたる強化された検索エクスペリエンスを体験できます。 新しい検索では、結果が動的に表示され、スペル ミスに対応し、検索結果に関連情報 (キーボード ショートカットなど) が提供されるようになりました。
Visual Studio Search と結果
*Visual Studio で強化された検索*
  • ドキュメントの正常性インジケーター機能によって、現在開いているファイルに関連付けられた正常性に関する情報を確認できます。
ドキュメントの正常性インジケーター (問題あり)
*ドキュメントの正常性インジケーター - ドキュメントの問題*
ドキュメントの正常性インジケーター (問題なし)
*ドキュメントの正常性インジケーター - 問題なし*
  • C# の開発者は、コードのクリーンアップを使用して、コーディングの最も一般的な提案事項の一部を迅速にクリーンアップすることができます。
  • コードのクリーンアップを構成することで、実行させたい修正機能のセットを選択できます。
[コード クリーンアップの構成] ダイアログ
*コード クリーンアップの構成*
  • クリップボード リングを展開するコンテキスト メニューを介して、ご利用のクリップボード履歴の内容を確認できます (Ctrl + Shift + V)
クリップボード リングのコンテキスト メニュー
*クリップボード リングのコンテキスト メニュー*
  • 検索のエクスペリエンスが次のように改善されました。
    • メニュー、コンポーネント、テンプレートのフィルターが追加されました
    • 最も関連のある検索結果が得られるように、検索の選択が組み込まれました
    • Visual Studio の検索から直接、新しいプロジェクト/アイテムを作成してソリューションに追加できるようになりました
  • 最低限の要件のセット (.NET 4.8 Preview および Windows 10 April 2018 Update 以降) を満たすユーザーの場合、向上したモニターごとの認識 (PMA) エクスペリエンスが既定で有効になります。 [ツールボックス]、[ブレークポイント]、[ウォッチ式]、[ローカル]、[自動変数]、[呼び出し履歴] などのツール ウィンドウは PMA に変換されており、表示の構成やスケーリングに関係なく鮮明にレンダリングされます。
  • 新しい通知エクスペリエンスで次のものが追加されています。
    • ステータス バーへの新しいアイコンおよびカウンターのエクスペリエンス
    • 新しいトースト通知メカニズム
    • Visual Studio の更新プログラムと Visual Studio のライセンス有効期限切れの通知
  • フィードバックに対応して青のテーマのエクスペリエンスが修正され、明るさの抑制、コントラストの改善、その他の使いやすさの問題への対応が行われています。
  • ツール バー領域で使用できる空きスペースをドラッグ可能領域として利用することで、ウィンドウのドラッグ機能が強化されています。
  • コード クリーンアップ修正機能のコレクションをプロファイルとして保存できるようになったため、コードのクリーンアップ中に実行する修正機能のセットをすばやく選択できます。
Visual Studio Code クリーンアップ プロファイル
*Visual Studio Code クリーンアップ プロファイル*
  • 拡張機能がプレビュー状態か、有料か、または試用期間内かをすばやく理解するのに役立つタグが、[拡張機能と更新プログラム] ダイアログに追加されました。
タグが含まれる [拡張機能と更新プログラム] ダイアログ
*タグが含まれる [拡張機能と更新プログラム] ダイアログ*
  • Visual Studio 2019 以降にデータ ヒントを実装する方法としては、現在 IAsyncQuickInfoSourceProvider を推奨しています。 レガシ エディター クイック ヒント API である IVsTextTipData および TextTipData は、Visual Studio 2019 Preview 1 では非推奨となっています。
  • エディター スマート タグ (Microsoft.VisualStudio.Language.Intellisense 名前空間内の ISmartTag * インターフェイス ファミリ) は非推奨とされ、代わりに LightBulb API が使用されるようになりました。このエディター スマート タグは、Visual Studio 2019 Preview 1 以降ではサポートされなくなりました。
  • ソリューション オプションである [ビルド構成の詳細を表示][常にソリューションを表示]、および [新しいプロジェクトを作成時に保存する] は、使用率が低いことが原因で削除されました。 これらの値は、既定値の True に設定されています。
  • [ツール] > [オプション] > [環境] > [プレビュー機能] の順に選択すると表示される新しいプレビュー機能ページを使用して、特定のプレビュー機能に対するオプトインまたはオプトアウトを行うことができます。

パフォーマンス

  • フォルダーとソリューションのビルドの選択に、新しいショートカットが追加されました: Ctrl + B
  • すべてのプロジェクトをアンロードしてソリューションを読み込むことで、大規模なソリューションを素早く開くことができます。 プロジェクトを読み込まない
  • ソリューション フィルター ファイルを使用して、開いているソリューションに読み込むプロジェクトを選択します。
    • ソリューション フィルター ファイルを作成するには、自動的に開かれないようにしたいプロジェクトをアンロードし、ソリューションを右クリックして、[ソリューション フィルターとして保存] を選択します。 次に、フィルター ファイルを使用して、その後の使用のためにソリューションを開くことができます。 ソリューション フィルター
  • CMake ファイルをすべてビルドするコマンドが追加されました: Ctrl + Shift + B
  • CMake プロジェクトに含まれる C++ ファイルでの IntelliSense のパフォーマンスが向上しました。
  • アンロードされたプロジェクトの依存関係を読み込むコマンドが、プロジェクトとソリューションのコンテキスト メニューに追加されました。
  • Visual Studio のパフォーマンスの向上に関する通知ヒントが、パフォーマンス センターで常に示されるようになりました。[ヘルプ] > [Visual Studio のパフォーマンスの管理] でアクセスできます。
  • ソリューションの読み込み完了時のアラートだけでなく、タスク ステータス センターにソリューション読み込みの進行状況も表示されるようになりました。
  • ソリューション フィルター ファイルを使用して、開いているソリューションに読み込むプロジェクトを選択します。
    • ソリューション フィルター ファイルを作成するには、自動的に開かれないようにしたいプロジェクトをアンロードし、ソリューションを右クリックして、[ソリューション フィルターとして保存] を選択します。 次に、フィルター ファイルを使用して、その後の使用のためにソリューションを開くことができます。
  • フォルダーを開くシナリオで Ctrl + T キーを押すと、強化されたビルド アセット検出とファイル検索を体験できます。
  • 入力時のパフォーマンスに対する補助コンポーネントの影響が Visual Studio エディターによって制限されるようになったことよるパフォーマンス向上に注目してください。 特に、入力の際には不要な操作である長時間実行は自動的にキャンセルされます。
  • Visual Studio 補助コンポーネントの制限動作を構成するには、[ツール] > [オプション] > [テキスト エディター] > [詳細設定] の順に選択します。
Visual Studio の入力待機時間オプション
*Visual Studio の入力待機時間オプション*
  • ソリューション エクスプローラーのツール ウィンドウで、前のセッションからのプロジェクト階層状態の復元を無効にできるようになりました。 ソリューションを開くときに前のセッションからプロジェクト階層を復元するとソリューションの読み込みが遅れる可能性があるために、この変更を実装しました。
    • このオプションの切り替えは、[ツール] > [オプション] > [プロジェクトおよびソリューション] > [全般] で行います。
ソリューションの読み込み復元の設定
*ソリューションの読み込み復元の設定*
* 前のセッションのツール ウィンドウ状態を復元することを無効にし、代わりに起動時に常にソリューション エクスプローラーとチーム エクスプローラーを読み込むことができるようになりました。 前のセッションからのツール ウィンドウを復元すると起動時のソリューション読み込みに遅延が生じる可能性があるために、この変更が実装されました。 * このオプションは、**[ツール] > [オプション] > [環境] > [スタートアップ]** で切り替えます。

一般的なデバッグと診断

デバッグ全般
  • [ウォッチ]、[自動変数]、[ローカル] の各ウィンドウに統合した新しい検索機能を使用すると、キーワードによって強調表示、検索、移動を行うことができます。
ウォッチでキーワードを検索する
[ウォッチ] ウィンドウでの検索
  • リストされた項目にコンマを追加することで、[ウォッチ]、[自動変数]、および [ローカル] の各ウィンドウ内のデータを書式設定する指定子およびオプションのドロップダウンが表示されます。
ウォッチの書式指定子ドロップダウン リスト
[ウォッチ] ウィンドウでの書式指定子のドロップダウン リスト
  • .NET Core 用のカスタムおよび DataSet ビジュアライザーのサポートを使用できるようになりました。
.NET Core のデータセット ビジュアライザー
.NET Core アプリケーション用の DataSet ビジュアライザー
  • Windows 上で実行される C++ アプリケーションの場合、PDB は別個の 64 ビット プロセスで読み込まれるようになりました。 この変更では、モジュールと PDB が多数含まれているアプリケーションをデバッグするときにメモリ不足が原因で発生するさまざまなクラッシュに対処しています。
マネージド データ ブレークポイント

.NET Core (3.0 以上) アプリケーションでデータ ブレークポイント (元は C++ 専用の機能) を使用して、特定のオブジェクトのプロパティ値を変更すると、中断できるようになりました。 以前のオプションでは、その関数を呼び出す数百のオブジェクトがある場合、持続的、無関係な中断が発生する可能性があるのに対し、これはデータ ブレークポイントが "特定" のオブジェクトのプロパティに、それが範囲外であってもフォーカスできるため、プロパティのセッターにブレークポイントを配置するための優れた代替手段となります。

.NET Core のデータ ブレークポイント
.NET Core アプリケーションでのデータ ブレークポイント
ウォッチ ウィンドウの検索 UX の更新

自動変数、ローカル、ウォッチの各ウィンドウでの検索の UI を、より単純なインターフェイスに更新してきました。 詳細検索機能は、最初および後続の検索の詳細度をすばやく選択できるように、ドロップダウンに変更されています。

コード スタイル設定の適用
  • dotnet 形式のグローバル ツールを使用して、コマンドラインからコードのスタイル設定を適用できるようになりました。 インストールには、.NET Core 2.1 SDK 以降が必要になります。 お使いの端末で次のコマンドを実行します。dotnet tool install -g dotnet-format --version 3.0.0-beta4-19105-10
dotnet 形式のビデオ
コマンドラインで dotnet の形式を実行します。

拡張性

  • V1 vsixmanifest の拡張機能の形式でビルドされた拡張機能を Visual Studio 2019 にインストールできなくなります。 V1 は Visual Studio 2010 で導入されましたが、Visual Studio において信頼性の問題が発生する可能性があったために、Visual Studio 2017 で非推奨とされました。 Visual Studio 2019 では、V1 のサポートは完全に削除されています。 Visual Studio 2019 を対象とする拡張機能は、V2 または V3 の vsixmanifest 形式で再ビルドする必要があります。
  • これで、拡張機能が自動で同期的に読み込まれると、通知されるようになります。 拡張機能は、このリリースでは通常どおり読み込まれて動作しますが、次の Visual Studio 2019 更新プログラムでは機能しないおそれがあるので注意してください。 詳細については、拡張機能の自動ロード動作を更新することによる重要なシナリオの反応性の改善するに関するブログ記事を参照してください。
統一された SDK NuGet パッケージ

以前は、拡張機能の作成者は、その拡張機能で使用するために必要な Visual Studio SDK の個々 の NuGet パッケージに多数の個別の参照を作成する必要がありました。 さまざまなパッケージのバージョンが必ずしも一致しておらず、その結果、コンパイル時と実行時に依存関係の競合問題が発生していました。

これらの問題を解決するには、Microsoft.VisualStudio.SDK という名前の新しいパッケージを使用します。このパッケージには、Visual Studio SDK を構成するすべてのパッケージの依存関係が含まれています。 これによりバージョンの不一致の問題が解決され、使用するバージョンがわかりやすくなります。 拡張機能でサポートされる Visual Studio の最小バージョンに対応するパッケージのバージョンを使用するだけで、SDK 全体にアクセスできるようになります。

現在のところ、存在するのは SDK パッケージのバージョン 15.9 のみですが、バージョン 14.0 まですべてに対応するバージョンを今後数か月にわたってリリースする予定です。

新規および更新されたプロジェクト テンプレート

VSIX プロジェクト テンプレートは、複数の更新を経て、簡略化されて使いやすくなりました。

  • 新しく統一された SDK NuGet パッケージが使用されます
  • AsyncPackage クラスが含まれます
  • パッケージをコンパイルするのに .resx ファイルは不要になりました
  • .NET Framework 4.7.2 をターゲットとします

新しい空の VSIX プロジェクト テンプレートが作成されました。これは VSIX プロジェクト テンプレートと同じですが、AsyncPackage クラスを持ちません。 また、MEF 拡張機能とその他のパッケージのない拡張機能の種類にとって最適な開始点を提供する統合された SDK NuGet パッケージも参照します。

無料/有料/評価版

これまで拡張機能が無料、有料、または評価版なのかを確認する簡単な方法がありませんでした。 [拡張機能と更新プログラム] ダイアログ内に、各拡張機能が無料、有料、または評価版なのかが明確に表示されるように変更されました。 評価版または有料のラベルのない拡張機能は無料です。

テスト ツール

以前はドキュメントに記載されていませんでしたがパブリックとしてマークされていたテスト ウィンドウの追加 API が、非推奨リストに追加されました。

ソース管理

  • チーム エクスプローラーの Git ツールで Git 一時退避がサポートされるようになったので、変更内容を一時的に格納して別のタスクで作業ができるようにします。
  • Visual Studio 2019 内の新しいプル要求エクスペリエンスを使用すると、IDE を離れなくても、Azure Repos からプル要求を確認、実行、さらにデバッグすることができます。 作業を開始するには、Visual Studio 用のプル要求拡張機能を Visual Studio Marketplace からダウンロードします。
新しいプル要求エクスペリエンス
新しいプル要求エクスペリエンス

MSBuild

  • MSBuild ツールセットのバージョンは、15.0 から Current に変更されました。 MSBuild.exe は、現在 %VSINSTALLDIR%\MSBuild\Current\Bin\MSBuild.exe にあります。
  • MSBuild (および Visual Studio) では、.NET Framework 4.7.2 が対象とされるようになりました。 MSBuild API の新しい機能を使用したい場合は、ご利用のアセンブリもアップグレードする必要があります。ただし、既存のコードは引き続き機能します。

C#

Visual Studio 2019 より前のすべてのリリースでは、既定の C# 言語バージョンは常に最新のメジャーと同等でした。 Visual Studio 2017 では、C# は 3 つのマイナー バージョン (7.1、7.2、7.3) を進化させ、リリースしました。 ただし、新しいプロジェクトはまだ C# 7.0 が既定値でした。 これは、新機能を使用したくても新しいプロジェクトごとに言語のバージョンを手動で変更しなければならない C# 開発者にとって悩みの種でした。

この問題に対処するために、既定の C# 言語バージョンは、そのターゲット フレームワークによって決まります。

  • .NET Core 3.0 プレビューをターゲットにしている場合、C# 言語のバージョンは C# 8.0 プレビューになります。
  • .NET Framework または .NET Core の非プレビュー バージョンをターゲットにしている場合、C# 言語バージョンは C# 7.3 になります。

これで、既定で最新の安定した C# 言語機能を使用できるようになります。また、.NET Core プレビューを使用する場合は、.NET Core 3.0 プレビューと一致する C# 8.0 プレビュー言語機能を使用できます。

プロジェクトまたはプロパティ ファイルで LangVersion を使用して言語バージョンを指定した場合、その言語バージョンは前述の既定値をオーバーライドします。

C++

  • Visual Studio Live Share で C++ がサポートされるようになったことから、リアルタイムでの共同作業が可能です。
  • オプションの拡張機能である IntelliCode を使用して時間を節約できます。この拡張機能では、高度なトレーニングとご利用のコード コンテキストを使用して、入力候補一覧の上部に使用頻度が高いものが配置されます。 C++ の場合、STL のような一般的なライブラリを使用しているときには、IntelliCode からほとんどのヘルプが提供されます。
  • 更新した [新しいプロジェクト] ダイアログ ボックスに合わせて、プロジェクト テンプレートの名前と説明をいくつか変更しました。
  • 実験段階の Clang/C2 コンポーネントを削除しました。 /permissive- または /std:c++17 に完全に準拠した C++ 用の MSVC ツールセットを使用するか、Windows 用の Clang/LLVM ツールチェーンを使用します。 詳細については、Visual C++ チーム ブログに関するページを参照してください。
  • C++ コンパイラ/Gm スイッチは非推奨になりました。 ご自分のビルド スクリプト内の /Gm スイッチが明示的に定義されている場合は、それを無効にすることを検討してください。 あるいは、"警告をエラーとして扱う" (/WX) を使用しているとき、/Gm の非推奨化に関する警告はエラーとして扱われないので無視してもかまいません。
  • C++ Android エクスペリエンスは、既定では Android SDK 25 および Android NDK 16b となりました。
生産性
  • コード分析がバックグラウンドで自動的に実行されるようになりました。 エディターでの入力時に緑色の波線で警告が表示されます。
  • テンプレート バーで、モーダル ウィンドウではなくピーク ウィンドウ UI が使用され、入れ子になったテンプレートがサポートされ、ピーク ウィンドウに既定の引数が設定されるようになりました。
  • 該当する行の電球メニューから、NULL->nullptr コード分析の警告 (C26477 USE_NULLPTR_NOT_CONSTANT) の自動修正を使用できます。これは、C++ Core Check 型の規則ルールセットにおいて既定で有効になります。 IDE でのその他のクイック修正としては、足りない #include ディレクティブの追加、足りないセミコロンの修正、"*" と "&" の正しくない使用の修正などがあります。
  • C++ コンソール アプリとデスクトップ アプリに対して、プリコンパイル済みヘッダーが既定では生成されなくなりました。
  • "定義へ移動" が #include ディレクティブで動作するようになり、対応するファイルが開かれます。 これには F12 のショートカットが含まれ、コード内を簡単に移動できます。
  • コード ブロックの右中かっこをポイントすると、そのブロックのコンテキストに関して役に立つ情報が提供されます。
  • <ミューテックス> ヘッダーの既知の STL 型に対する ConcurrencyChecker のサポートが追加されました。
  • Lifetime プロファイル チェッカーの更新された部分的な実装を、未解決のポインターと参照を検出するために使用できます。
  • 3 方向の比較に対する C++20 の演算子 <=> ("宇宙船") の初期サポートがコンパイラに追加されました。
CMake
  • CMake プロジェクトの C++ ファイル用の IntelliSense のパフォーマンスが向上しました。
  • Visual Studio では、Linux コンピューター上に互換性のある CMake のバージョンがあるかどうかが検出されることにより、Linux で CMake による C++ の開発を始めやすくなりました。 ない場合は、インストールすることができます。
  • CMake 設定エディターでは、CMakeSettings.json の代わりになるもの、および CMakeGUI と同等の機能が提供されます。
  • CMake メニューが削除され、プロジェクトおよびソリューションといっそうよく一致するように再編成されました。
  • CMakeSettings での互換性のない設定 (アーキテクチャの不一致や、互換性のない CMake ジェネレーターの設定など) に対しては、JSON エディターおよびエラー一覧のエラーで波線が表示されます。
  • vcpkg integrate install を実行した後は、vcpkg ツール チェーンが自動的に検出され、IDE で開かれる CMake プロジェクトに対して有効になります。 この動作は、CMakeSettings で空のツールチェーン ファイルを指定することによりオフにできます。
  • CMake プロジェクトでは、"マイ コードのみ" デバッグが既定で有効になるようになりました。
  • CMake プロジェクトのスタティック分析の警告をバックグラウンドで処理し、エディターに表示できるようになりました。
  • CMake プロジェクトのビルドと構成の "開始" および "終了" に関するいっそう明確なメッセージと、Visual Studio のビルドの進行状況 UI のサポートが追加されました。 さらに、出力ウィンドウに表示される CMake のビルドおよび構成に関するメッセージの詳細レベルをカスタマイズできる CMake の詳細さの設定が、[ツール] > [オプション] に追加されました。
  • CMake のコマンド ラインを手動で変更することなくツールチェーンを指定するための "cmakeToolchain" の設定が、CMakeSettings でサポートされるようになりました。
バックエンド
  • ファイル I/O のリンカーの処理や、PDB タイプのマージと作成のリンク時間など、ビルドのスループットの向上が実装されました。
  • OpenMP SIMD ベクター化の基本的なサポートが追加されました。 これは、新しい CL スイッチ -openmp:experimental で有効にできます。 これにより、"#pragma omp simd" で注釈が付けられたループをベクター化できる可能性があります。 ベクター化は保証されておらず、注釈が付けられていてもベクター化されていないループに対しては警告が報告されます。 SIMD 句がサポートされていない場合、それらは単に無視され、警告が報告されます。
  • 新しいインライン展開コマンド ライン スイッチ -Ob3 が追加されました。これは、-Ob2 よりいっそう積極的なバージョンです。 既定では -O2 (速度向上のためバイナリを最適化する) はまだ -Ob2 になります。コンパイラのインライン展開が不十分な場合は、-O2 -Ob3 を渡してみてください。
  • 数値演算ライブラリ関数および整数除算などの他の特定の演算の呼び出しを含むループの手動ベクター化をサポートするため、128 ビット、256 ビット、または 512 ビットの同等のベクターを計算する Short Vector Math Library (SVML) 組み込み関数のサポートが追加されました。 サポートされている関数の定義については、Intel 組み込みガイドをご覧ください。
  • 新規および改良された最適化:
    • float と integer の両方の形式に対する、SIMD (ベクター) 組み込み関数を使用する式の定数折りたたみと計算の簡略化
    • 常に true または false になることがわかっている分岐を削除するために制御フロー (if/else/switch ステートメント) から情報を抽出するためのいっそう強力な分析
    • SSE2 ベクター命令を使用するための memset アンローリングの向上
    • 意味のない構造体/クラスのコピーの削除の向上、特に値渡しの C++ プログラムの場合
    • memmove (std::copy や std::vector と std::string 構造など) を使用するコードの最適化の向上
廃止予定
  • マネージド C++ テスト プロジェクト テンプレートは使用できなくなります。 既存のプロジェクトではマネージド C++ テスト フレームワークを引き続き使用できますが、新しい単体テストでは、Visual Studio でテンプレートが提供されているネイティブ テスト フレームワークのいずれか (MSTest、Google Test) またはマネージド C# テスト プロジェクト テンプレートの使用を検討してください。
  • Visual Studio インストーラーでは Windows 8.1 SDK を使用できなくなりました。 最新の Windows 10 SDK に C++ プロジェクトをアップグレードしてください。 8.1 に対するハードな依存関係がある場合は、Windows SDK アーカイブからダウンロードできます。
  • 最新の C++ ツールセットでは、Windows XP を対象にできなくなります。 VS 2017 レベルの MSVC コンパイラとライブラリによる VS の対象指定はまだサポートされており、[個別のコンポーネント] を使用してインストールできます。
  • ドキュメントでは、Visual C++ ランタイムの配置に対してマージ モジュールを使用しないよう強く推奨されています。 このリリースでは、MSM を非推奨にするための追加手順が行われています。 VCRuntime の集中配置を MSM から再頒布可能パッケージに移行することを検討してください。
  • 次の C++ ATL/MFC ウィザードは使用できなくなりました。 ATL COM+ 1.0 コンポーネント ウィザード、ATL Active Server Pages コンポーネント ウィザード、ATL OLE DB プロバイダー ウィザード、ATL プロパティ ページ ウィザード、ATL OLE DB コンシューマー ウィザード、MFC ODBC コンシューマー、ActiveX コントロールからの MFC クラス、TypeLib からの MFC クラス。 これらのテクノロジのサンプル コードは、VCSamples GitHub リポジトリにアーカイブされています。

F#

Visual Studio 2019 で F# は、主に 3 つの分野で機能が強化されています。

  • F# 4.6
  • 中規模および大規模ソリューションのパフォーマンスの大幅な向上
  • 優秀なオープン ソース コミュニティによる多数のオープン ソース作業
F# 4.6

このリリースには、F# 4.6 言語が含まれます。

F# コンパイラと FSharp.Core の機能強化

F# とコンパイラ、そして FSharp.Core は、特にオープン ソースの共同作成者たちが貢献し、数多くの機能が強化されました。

  • fsi.exefsc.exe の既定値が .NET Framework 4.7.2 になり、これ以前のフレームワークをターゲットとするコンポーネントが読み込めるようになりました (#4946)。
  • 実行する構造体および構造体レコード上のメソッドと、クラスおよびクラスに基づくレコード上のメソッドを最適化しました (#3057)。
  • F# コードで結合されたブール ロジックに対して出力される IL を最適化しました (#635)。
  • F# の文字列で + を使用したときに呼び出される String.Concat が可能な限り少なくなるように最適化されました (#5560)。
  • テスト アセットがある余分なディレクトリがいくつか含まれる FSharp.Core パッケージの問題を修正しました。 FSharp.Core 4.5.5 および 4.6.1 にはこの修正が含まれています (#5814)。
  • ユーザー定義の属性が Attribute クラスから継承されていない場合、警告が届くようになりました (Vasily Kirichenko)。
  • プロジェクト ファイル内の AssemblyInformationVersionAttribute 値で、SourceLink などのシナリオをサポートする任意の値がサポートされるようになりました (#4822)。
  • アクティブ パターンに構文上の誤りがある場合に内部コンパイラ エラーが発生するというバグが Steffen Forkmann によって修正されました (#5745)。
  • 唯一の違いがジェネリック パラメーターである型と一致させるために、再帰的なモジュール内のモジュールに Module サフィックスが誤って追加されるというバグが BooksBaum によって修正されました (#5794)。
  • 型パラメーターが型名の横にないときのエラー メッセージに対する改善内容が Alan Ball によって改善されました (#4183)。
  • Teo Tsirpanis によって、数値リテラルが無効な場合に生じるエラー メッセージ内に uint16 リテラル サフィックスが正しくリストされました (#5712)。
  • 計算式に関するエラー メッセージでは、メッセージ内に async と記載されなくなりました。代わりに "計算式" と記載されます。これは、John Wostenberg によって行われました (#5343)。
  • F# インタラクティブ内での .dll の参照が誤っているときに返されるエラーメッセージが Bartoz Sypytkowski によって修正されました (#5416)。
  • 静的に解決される型パラメーターが継承されたメンバーを非表示にするメンバー呼び出しを処理できなかったバグが、Victor Peter Rouven Müller によって修正されました (#5531)。
  • Steffen ForkmannRobert Jeppesen によって、パフォーマンスに関するさまざまな軽微な改善がコンパイラに加えられました。
F# のパフォーマンスの向上

Visual Studio 2019 の F# でもう 1 つの大きな焦点は、中規模および大規模ソリューションのパフォーマンスです。 長年にわたって未解決だった問題を解決しました。問題の一部は Visual Studio 用の F# ツールの最初のエディションまでさかのぼります。 優秀な F# オープン ソース コミュニティからも支援をいただきました。

  • Roslyn による F# 言語サービスの初期化方法を改良しました。 大規模なソリューションの型の色付けが一般に早く表示されるようになるはずです。
  • (特に大きなファイルによって) 徐々に大きくなる割り当てを回避するため、ソース テキストの表現を変更しました (#5935#5936#5937#4881)。
  • メモリの使用量を大幅に減らすため、ファイルの小規模な編集のビルド キャッシュを変更しました (#6028)。
  • 認識されないトークンが入力されたときに名前を提案するコンパイラ機能を、このような提案をオンデマンドの計算のみに変更しました。その結果、大規模なソリューションでゆっくり入力したときに、CPU とメモリが大幅に削減されるようになりました (#6044)。
  • 既定で開かれていない名前空間からのシンボルが表示されないように、IntelliSense を変更しました。 これにより、多くの参照があるプロジェクトで IntelliSense のパフォーマンスが大幅に向上します。 この機能は、[ツール] > [オプション] > [テキスト エディター] > [F#] > [IntelliSense] の設定で有効に戻すことができます。
  • 型プロバイダーを使用して入力候補一覧内に指定された型を大量に作成するときのメモリ使用量を改善しました (#5599)。
  • 認識されない名前を提案するための内部文字列比較アルゴリズムへの CPU およびメモリ使用量の削減は Avi Avni によって修正されました (#6050)。
  • 大きな文字列の割り当ての注目すべき原因が (特に IDE ツールの場合)、Avi Avni によって解決されました (#5922)。
  • IntelliSense の計算から生じるラージ オブジェクト ヒープ割り当ての注目すべきソースは、Chet Husk によって修正されました (#6084)
F# ツールの機能強化

Visual Studio 2019 用の F# ツールには、パフォーマンスの機能強化に加え、その他にもさまざまな機能強化が行われました。

  • open ステートメント コードの追加に対する修正プログラムにより、既定で、open ステートメントがファイルの上部に追加されるようになります。
  • ユーザー コード内の match! により、後続のスコープに対する構造体ガイドラインとコードのアウトライン表示ノードが無効にされるというバグが修正されました (#5456)。
  • エディターでは byref 値、outref 値、および ref 値がレコード フィールドとして正しく色付けされるようになり、色付けの値は変更可能です (#5579)。
  • 名前の変更リファクタリングにおいてシンボル名に含まれる ' 文字が認識されないというバグを修正しました (#5604)。
  • F# スクリプト ファイルの名前を変更すると色付けのデータが失われる長年のバグが修正されました (#1944)。
  • Backspace キーを押したときに無関係な項目がリストに表示されないように IntelliSense をクリーンアップしました。
  • "スマート" インデントがオンの場合に F# コードをエディターに貼り付けると、それが、現在のカーソル位置に基づいて適切なスコープに一致するようにフォーマットされるようになります。これは Saul Rennison によって実装されました (#4702)。
  • F# エディター オプションが同期しない問題が、Jakob Majocha によって修正されました (#5997#5998)。
  • inherit 句内のコンストラクターの IntelliSense でプライマリ コンストラクターが表示されないバグは、Eugene Auduchinok によって修正されました (#3699)
  • F# 言語サービスに対するさまざまな軽微な機能強化が Eugene Auduchinok によって行われました
F# オープン ソース インフラストラクチャ

.NET SDK を使用する F# と F# ツールのコードベースを完全に移行しました。 これにより、特に Windows を使用していない開発者にとって、共同作成プロセスが大幅に簡略化されます。 さらに、Jakob Majocha は、コードベースへの変更を踏まえて、新しい共同作成者のためにドキュメントの整理を支援しました。

Python

お客様からのフィードバックに基づき、Visual Studio 2019 では Python 環境を管理するためのエクスペリエンスが一新されています。

  • 環境を追加するための新しいダイアログを追加しました。これにより、仮想環境および conda 環境を作成する操作と、それらをご利用のプロジェクトに追加する操作が簡単になります。
  • Visual Studio インストールのサイズを縮小し、アップグレード中のエラーを回避するために、Visual Studio インストーラーでは Anaconda の不要なバージョンがインストールされなくなりました。
  • Miniconda が Python ワークロードにオプションのコンポーネントとしてバンドルされており、Miniconda/Anaconda をインストールしなくても Conda 環境を作成できます。
  • requirements.txt (仮想環境) または environment.yml (conda 環境) がご利用のプロジェクトの root に存在する場合は、環境を追加するように求めるメッセージが自動的に表示されるようになります。
  • Python ファイルを編集するときは、新しい Python 環境ツール バーを使用できます。 新しいツール バーを使用すると、プロジェクト、"フォルダーを開く" ワークスペース、または他のプロジェクト内のルーズ Python ファイルを使用するときに、異なる Python インタープリターに切り替えることができます。
  • Python IntelliSense の自動補完の品質が向上しました。これには、相対インポートと名前空間インポートの検出機能の向上が含まれます。
  • Django プロジェクト テンプレートが Django 2.x をサポートするように更新されています。
  • 関数の戻り値が Python デバッガーに表示されるようになりました。
  • これで、VS Live Share セッションを作成し、他の Visual Studio ユーザーと Python コードについて共同作業できるようになりました。 以前は、Python は Visual Studio Code から作成されたセッションに参加するときにのみサポートされていました。

JavaScript/TypeScript

  • Node.js プロジェクトの単体テスト内で JavaScript のデバッグを有効にするためのサポートが追加されました。 これは、Node.js のお客様から長らく要求されていた機能です。
  • TypeScript NuGet パッケージまたは npm パッケージがインストールされているプロジェクトでは、JavaScript/TypeScript 言語サービスが自動的に読み込まれるようになりました (TypeScript 3.2 以降は NuGet パッケージからサポートされ、TypeScript 2.1 以降は npm パッケージからサポートされます)。
  • 大規模なプロジェクトを処理するために言語サービスでのメモリ上限を増やした結果として、言語サービスのパフォーマンスが向上しました。
  • 閉じられた JavaScript/TypeScript ファイルの診断が、既定ではエラー一覧に表示されなくなりました。
  • レガシ JavaScript 言語サービスは、利用できなくなりました。 これまで、ユーザーはレガシ JavaScript 言語サービスを復元するオプションを使用できました。 今度、ユーザーは新しい JavaScript 言語サービスをすぐに利用できるようになります。 新しい言語サービスは、静的分析によって強化された TypeScript 言語サービスをベースにしています。 これによりツールの機能が向上するため、JavaScript コードは型定義に基づく高度な IntelliSense の恩恵を受けられるようになります。 新しいサービスは、レガシ サービスと比べて簡易で、消費するメモリが少ないため、ユーザーは自分のコード スケールに応じて優れたパフォーマンスを得ることができます。

チーム エクスプローラーと Azure DevOps

Azure DevOps での Git 作業項のエクスペリエンスに対して機能強化を行いました。

  • 新しい ID ピッカーで自分自身または他のユーザーに作業項目を割り当てます。 既定では、最も最近使用したユーザーの一覧が表示されます。 または、検索機能を使用して組織内の他のユーザーを検索します。
  • コミット メッセージでの #mentions エクスペリエンスが改善されました。 #mention ピッカーから作業項目を選択すると、[関連作業項目] の一覧に自動的に追加されます。
作業項目の割り当てと #mention の改良
作業項目の割り当てと #mention の改良

ホット パスの強調表示

  • パフォーマンス プロファイラーの CPU 使用率ツールと .NET オブジェクト割り当てツールの両方に、ホット パスの強調表示のサポートが追加されました。 呼び出しツリーで任意の関数を選択してホット パス ボタンをクリックすると、CPU 使用率または .NET オブジェクト割り当てのホット パスが展開されます。 この機能を使用すると、CPU を最も多く使用している関数呼び出し、または最も多くのオブジェクトを割り当てている関数呼び出しを簡単に識別できます。
CPU 使用率ツールでのホット パスの強調表示
CPU 使用率ツールでのホット パスの強調表示

.NET ツールと ASP.NET ツール

  • すべてのアプリケーションの発行プロファイル概要ページに細々とした UX の改善を実装しました (新しいセクション ヘッダーとアクション/ショートカット)。
  • Azure App Service に ASP.NET アプリケーションを発行するときの発行プロファイル概要ページに、[依存関係] という名前の新しいセクションが追加されました。 現在、この新しいセクションでは、Azure Storage と Azure SQL リソースを App Service インスタンスに関連付けることができます。 今後、このメカニズムでさらに多くの Azure サービスが表示されるようになります。
  • .NET Core プロジェクトと追加された互換性に対してコード メトリックを使用できます。
  • エディター設定を Editorconfig ファイルにエクスポートできます。そのためには、[ツール] > [オプション] > [テキスト エディター] > [C#] > [コード スタイル] の順に選択し、"設定から .editorconfig ファイルを作成" ボタンを使用します。
  • C# および Visual Basic の新しいRegexパーサー サポートを使用できます。 正規表現が認識されるようになりました。正規表現に関する言語機能が有効にされます。 Regex 文字列が認識されるのは、Regex コンストラクターに文字列が渡されたとき、または文字列の直前に、文字列 language=regex を含むコメントが付いているときです。 このリリースに含まれる言語機能としては、分類、かっこの一致、参照の強調表示、および診断があります。
正規表現でパーサーがサポートされるようになりました
正規表現パーサーのサポート
  • 未使用のプライベート メンバーに関するデッド コード分析とオプションのコード修正によって、未使用のメンバーの宣言を削除できるようになりました。
  • アクセサーに対する参照の検索機能からは、そのアクセサーに関する結果が返されるのみとなりました。
  • deconstruct メソッドを作成するためのコード修正を加えました。
  • ファイルにコードを貼り付けるときに、"using" ステートメントを追加できます。 不足している関連のインポートを追加するように求める認識済みのコードを貼り付けると、コード修正が表示されます。
  • "Ctrl + ." または "Alt + Enter" キーを使用して利用できるリファクタリング アクションとクイック アクションが増えました
    • "await" は暗黙的に指定されているが省略される場合。コンパイラの警告が表示されるようになりました。
    • ローカル関数をメソッドに変換する場合。
    • タプルを名前付き構造体に変換する場合。
    • 匿名型をクラスに変換する場合。
    • 匿名型をタプルに変換する場合。
    • LINQ クエリまたは LINQ メソッドへの foreach ループの場合。
  • これで、Azure Kubernetes サービスで実行される ASP .NET Core アプリケーションのサポートを追加できました。 作業を開始するには、GitHub にあるこの docker 例を参照してください。
  • パフォーマンス プロファイラーの CPU 使用率ツールで ASP.NET がサポートされるようになりました。
パフォーマンス プロファイラーの CPU 使用率ツール
パフォーマンス プロファイラーの CPU 使用率ツール
  • すべての参照の検索 (Shift + F12) と CodeLens を使用して、.NET Core プロジェクト内の Razor (.cshtml) ファイルからの結果を表示できるようになりました。 これで、関連する Razor ファイル内で識別されたコードに移動することができます。
  • Windows Virtual Machines (VM) および VM Scale Sets で実行される ASP .NET (コアおよびデスクトップ) アプリケーションを対象とするためのサポートを追加しました。
スナップショット デバッガーのターゲット選択 UI
スナップショット デバッガーのターゲット選択 UI
  • FxCop を使用してコード分析を実行するとき、警告が表示されるようになります。 今後、コード分析を実行する方法としては、.NET Compiler アナライザーの使用をお勧めします。 詳細については、.NET Compiler Platform アナライザーへの移行に関するページを参照してください。
  • ポータブル クラス ライブラリ (PCL) プロジェクト テンプレートが利用できなくなりました。プロジェクトのサポートは既定ではインストールされなくなります。 複数のプラットフォームを対象とすることを目的とした新しいプロジェクトには、.NET Standard プロジェクト タイプを使用する必要があります。 PCL プロジェクトのサポートを必要とするお客様は、Visual Studio インストーラーの [個々のコンポーネント] タブからコンポーネントを個別にインストールする必要があります。
  • "Project.CopyWebSite" コマンドは使用できなくなりました。 この機能は、.NET 向けの "Web サイト" プロジェクト タイプでしか使用できませんでした。 これには、2 つの Web サイトのそれぞれのファイルのバージョンが同じになるように、それらの Web サイトを同期する機能が用意されていました。 Visual Studio 2019 では、Visual Studio の外部にあるリモート宛先からファイルをコピーして、プロジェクトを開くことができます。
  • リモートの FTP の場所から Web サイト プロジェクトを開く機能は削除されました。 FTP ユーザーは、Visual Studio の外部にあるリモート宛先からファイルをコピーし、プロジェクトを開き、変更を加えてから、発行機能を使用して、ファイルをリモートの FTP の場所にプッシュして戻すことができます。
  • ASP.NET および Web ワークロードでは、カスタム CoffeeScript 編集エクスペリエンスがインストールされなくなりました。 Visual Studio の TextMate バンドルでは、CoffeeScript を操作するための優れたエクスペリエンスが提供されます。
  • CSSLint と CoffeeLint の組み込みのコピーによって現在生成されている CSS エラーと CoffeeScript エラーは、それらのファイルを編集する際に自動的に表示されることはなくなります。 npm や Visual Studio タスク ランナー エクスプローラーなどのリンターを実行する場合は、別の方法を使用します。
  • Visual Studio では、Knockout HTML 属性に対して IntelliSense が指定されなくなります。 Visual Studio 2019 では、属性を入力する必要があります。
  • JavaScript をデバッグするために ASP.NET プロジェクト内でレガシ Chrome デバッガーを使用する機能は削除されました。 Visual Studio に組み込まれている現在の Chrome デバッガーは引き続き使用することができます。
  • ASP.NET プロジェクトで JavaScript コンソール機能を使用できる機能が削除されました。 お好みのブラウザーの開発ツールに含まれるコンソールを使用することをお勧めします。

コンテナー ツール

  • コンテナー化とデバッグに対して簡素化された単一プロジェクトのエクスペリエンスが追加されました。
    • ASP.NET Web アプリケーション (.NET Framework)
    • コンソール アプリケーション (.NET Core)
  • 基本イメージとして Alpine を使用する ASP.NET Core アプリケーションをデバッグするためのサポートが追加されました。
  • 最新の ASP.NET イメージと .NET Core イメージのサポートが追加されました。

.NET Core ツール

.NET Core 3.0

このリリースでは、プレビュー SDK がインストールされている場合、.NET Core 3.0 を対象とする ASP.NET Core、コンソール、クラス ライブラリ プロジェクトを作成できます。

Visual Studio RC を使用している場合は、[ツール] > [オプション] > [プロジェクトおよびソリューション] > [.NET Core] に移動し、[.NET Core SDK のプレビューを使用する] チェック ボックスをオンにする必要もあります。 Visual Studio Preview を使用している場合は、この操作を行う必要はありません。 この設定とその動作での詳細については、Visual Studio 2017 バージョン 15.9 の .NET Core ツールの更新プログラムに関するページを参照してください。

"dotnet new" コマンドを使用して .NET Core 3.0 向けの Windows フォームまたは WPF プロジェクトを作成することもできます。 これらのプロジェクトは、Visual Studio 2019 で開くことができます。

新機能

このリリース以降、.NET SDK スタイルのプロジェクトのプロジェクト ファイルが、Visual Studio でのファースト クラスのファイルの種類になります。 以下のことがサポートされるようになりました。

  • プロジェクト ノードをダブルクリックしてプロジェクト ファイルを開く
  • プロジェクト ノードをシングルクリックして [プレビュー] タブでプロジェクト ファイルを開く
  • [すべてに移動] (ctrl + T) で名前を指定してプロジェクト ファイルを検索する
  • [複数のファイル内を検索] でプロジェクト ファイル内の MSBuild 要素を検索する
  • プロジェクト作成エラーがトリガーされた場合にエラー一覧から開く

さらに、.NET SDK スタイルのプロジェクトでは、コンソール アプリでの F5ctrl + F5 に対して新しい統合コンソール エクスペリエンスが使用されるようになります。 これにより、Visual Studio からコンソール アプリケーションを起動するときのエクスペリエンスが統一されます。

  • F5 の場合、アプリの実行が終了したときに、コンソール ウィンドウは自動的に閉じません。 コンソール アプリに Console.Read() の呼び出しを追加する必要はなくなりました。
  • ctrl + F5 の場合、コンソール ウィンドウはアプリの後続の実行で再利用されます。 コンソールの読み込みウィンドウを閉じる必要はなくなりました。

新しいコンソール ウィンドウは、開いているときにキーを押すか、[ツール] > [オプション] > [デバッグの停止時に自動的にコンソールを閉じる] オプションを選択することで、自動的に閉じることができます。

ライセンス式とライセンス ファイルのサポートがプロジェクトのプロパティ ページに追加されました。 これは NuGet で廃止予定の licenseUrl の変更に対応しています。

パフォーマンスの向上
  • 大規模なソリューションのスケーラビリティが大幅に向上し、以前よりもはるかに大規模な .NET Core ソリューションを使用できるようになりました。
  • 大規模なプロジェクトのソリューションの読み込み時間は大幅に短縮され、読み込み時の CPU とメモリの使用量も大幅に削減されました。
.NET Core 以外のプロジェクトとの機能パリティ

16.016.0 プレビュー 216.0 プレビュー 3、および 16.0 プレビュー 4 のマイルストーンで、すべての問題とプル要求の一覧を確認できます。

.NET の生産性

  • .NET のリファクタリングとコード修正:

    • 名前空間とフォルダー名を同期する
    • ダイアログ オプションによる [Pull members up]\(メンバーのプルアップ\) リファクタリング
    ダイアログ オプションによる [Pull members up]\(メンバーのプルアップ\) リファクタリング
    [Pull members up]\(メンバーのプルアップ\) ダイアログ
    • パラメーター/引数のリストをラップ/インデント/配置する
    • 匿名型をタプルに変換する
    • ラムダに式/ブロック本体を使用する
    • 条件式および論理演算を反転させる
    • ブロック コメントを "/" で自動的に閉じる
    • 複合代入に変換する
    • 暗黙的に型指定された変数を定数にすることはできないことを修正する
    • 補間された逐語的文字列を入力するときの @$"$@" での置換に対する自動修正機能
    • #nullable enable|disable の完了
    • 使用されていない式の値およびパラメーターに対する修正
    • インターフェイスの展開が同じファイル内に存在することの許可に対する修正
  • 読み取り/書き込みによる参照が分類されます。

  • csharp_prefer_braces に対して Editorconfig when_multiline オプションが追加されます。

  • .NET Compiler Platform SDK (Roslyn とも呼ばれます) の新しい分類色を使用できます。 Visual Studio Code の色に似ている新しい既定の色が段階的にロールアウトされています。これらの色は、[ツール] > [オプション] > [環境] > [フォントおよび色] で調整できます。または、[環境] > [プレビュー機能][Use enhanced colors] (拡張された色を使用する) チェック ボックスをオフにすることで無効にできます。 この変更によるワークフローへの影響についてのフィードバックをお聞かせください。

新しい Roslyn の分類の色
新しい Roslyn の分類の色

ASP.NET プロジェクトでの JavaScript のデバッグ

  • [ブラウザーの選択] メニューを使用して ASP.NET プロジェクトに対してカスタム引数を持つ新しい Google Chrome ブラウザーを追加した場合、Visual Studio でデバッグを開始するときに、アプリケーションの JavaScript のデバッグが有効になります。 Google Chrome を起動するときに、Chrome に対してカスタム起動引数が適用されます。
[ブラウザーの選択] を使用したカスタム引数を持つ Google Chrome の追加
[ブラウザーの選択] を使用したカスタム引数を持つ Google Chrome の追加
: Visual Studio の既定では、引数としてデータ ディレクトリへのパスを指定しない限り、通常の Chrome インスタンスとは異なるデータ ディレクトリを使用して Chrome が起動されます。 その結果、この Chrome インスタンスを使用するときに拡張機能を使用できる必要がある場合は、最初にそれらをインストールする必要があります。

ASP.NET と Azure Functions ツール

  • Visual Studio 2019 には、新しいプロジェクトを作成するための新しいエクスペリエンスが付属しています。 具体的には、新しい ASP.NET プロジェクトを作成するときに、ASP.NET 固有の選択肢を表示する追加のダイアログが、Visual Studio によって提供されます。 これらの追加のダイアログは、他のエクスペリエンスの表示スタイルと合わせるために更新されています。
  • 以前から、Visual Studio では発行資格情報が暗号化され、発行プロファイルのユーザー ファイルに格納されていたため、アプリケーションを発行するたびに、これらを再入力する必要はありません。 通常、ユーザー ファイルには共有できないシークレットや個人情報が含まれている可能性が高いため、これらはソース管理から既定で除外されています。 これまでは、Azure Functions プロジェクトの発行プロファイルがソース管理にチェックイン済みでもユーザーファイルがチェックインしていない場合、発行資格情報が見つからず、発行プロファイルを再利用することはできませんでした。 このリリースでは、発行プロファイルを再利用できるように、資格情報の編集と新しいユーザー ファイルの作成が許可されるようになりました。

パフォーマンス ウィザード

Visual Studio 2019 では、パフォーマンス ウィザード内で使用することができたプロファイル エクスペリエンスがパフォーマンス プロファイラーに移動されました。 サンプリングのための CPU 使用率ツールと、インストルメンテーション ツール内のインストルメンテーションは、パフォーマンス プロファイラーにあります。 この変更によってパフォーマンス ウィザードは不要になり、Visual Studio 2019 からは削除されています。 さらに、VS パフォーマンス コマンド ライン ツール内のサンプリング オプションは削除されました。これに代わるコマンド ライン ツールが今後のプレビューでリリースされます。

テスト ツール

  • ソリューション エクスプローラーでテスト、テスト クラス、テスト プロジェクトを右クリックして、テストの実行やデバッグができるようになりました。
  • テスト実行により、プロジェクト プロパティに設定されているプロセッサ アーキテクチャが自動検出されます。
  • Selenium や Appium など OSS UI テスト ツールは勢いを増し、バックアップ強力なコミュニティの支持を得ています。 これらのフレームワークが業界標準となったので、UI 駆動型機能テストの自動化のためにコード化された UI テストを非推奨としました。 Visual Studio 2019 は、コード化された UI テスト機能を備えた Visual Studio として最後のバージョンとなります。 Web アプリのテストには Selenium を使用し、デスクトップと UWP アプリのテストには Appium と WinAppDriver を一緒に使用することをお勧めします。
  • Visual Studio 2019 は、ロード テスト機能を備えた Visual Studio として最後のバージョンとなります。 ロード テスト ツールを必要とするお客様には、Apache JMeter、Akamai CloudTest、Blazemeter などの代替のロード テスト ツールの使用をお勧めします。
  • Visual Studio 2019 では、前にパブリックとしてマークされていたがドキュメントに正式に記載されたことがないいくつかのテスト ウィンドウ API が削除されました。 これらは、拡張機能の管理者に対して早期に警告を発するために、Visual Studio 2017 で非推奨とマークされていました。 Microsoft の知る限りでは、これらの API に対して依存関係を築いている拡張機能はごくわずかです。 このような API には、IGroupByProvider、IGroupByProvider、KeyComparer、ISearchFilter、ISearchFilterToken、ISearchToken、SearchFilterTokenType などがあります。 この変更がご利用の拡張機能に影響を与える場合は、開発者コミュニティで問題点を送信して、その旨をお知らせください。

Visual Studio Kubernetes ツール

以前は Visual Studio 2017 の個別の拡張機能として使用できた Visual Studio Kubernetes ツールが、Visual Studio 2019 では Azure 開発ワークロードに統合されています。

新しいプロジェクトへの Kubernetes のサポートの追加

新しいプロジェクトに Kubernetes のサポートを追加するには、Visual Studio を開いて [新しいプロジェクトの作成] オプションを選択します。 [新しいプロジェクトの作成] ウィンドウで Kubernetes を検索し、[Kubernetes 用のコンテナー アプリケーション] プロジェクト テンプレートを選択します。

Kubernetes 用のコンテナー アプリケーションの作成
Kubernetes 用のコンテナー アプリケーションの作成

[次へ] をクリックして、プロジェクト名、場所、ソリューション名を入力します。 [作成] をクリックします。 プロジェクトに使用する ASP.NET Core アプリケーション テンプレートを選択して、[OK] をクリックします。 Visual Studio で、新しいアプリケーションをビルドして Kubernetes クラスターに配置するために使用できる Dockerfile と Helm チャートが自動的に作成されます。 これらの成果物は必要に応じて変更できます。

既存のプロジェクトへの Kubernetes のサポートの追加

Kubernetes のサポートを既存の ASP.NET Core アプリケーションに追加することもできます。 そのためには、Visual Studio 2019 でプロジェクトを開きます。 ソリューション エクスプローラーでプロジェクトを右クリックし、[追加] をポイントして、[Container Orchestrator Support]\(コンテナー オーケストレーターのサポート\) をクリックします。

コンテナー オーケストレーターのサポートの追加
コンテナー オーケストレーターのサポートの追加

[Add Container Orchestrator Support]\(コンテナー オーケストレーターのサポートの追加\) ダイアログで、[Kubernetes/Helm] を選択して [OK] をクリックします。 Visual Studio で、アプリケーションをビルドして Kubernetes クラスターに配置するために使用できる Dockerfile と Helm チャートが (charts という名前のフォルダーに) 自動的に作成されます。 これらの成果物のいずれかが既に存在する場合、それらは上書きされません。 これらの成果物は必要に応じて変更できます。

パブリックにアクセスできるエンドポイントの作成

新規または既存のプロジェクトに Kubernetes のサポートを追加するとき、Visual Studio でアプリケーションに対してパブリックにアクセスできるエンドポイントを作成するかどうかの確認を求められます。

パブリックにアクセスできるエンドポイントのプロンプト
パブリックにアクセスできるエンドポイントのプロンプト

[はい] をクリックすると、アプリケーションが Kubernetes クラスターに配置されるときに Kubernetes イングレス オブジェクトを作成するための Helm チャートがアプリケーションに対して構成されます。 Helm チャートを変更することにより、いつでもこのオプションを変更できます。

Azure Kubernetes Service でのアプリケーションのデバッグ

新規または既存のプロジェクトに Kubernetes のサポートを追加した後は、Azure Dev Spaces と呼ばれる機能を使用して、Azure Kubernetes Service (AKS) のライブ クラスターでアプリケーションのビルド、実行、デバッグを簡単に行うことができます。 これは、実際の Kubernetes クラスターのコンテキストでプロジェクトをテストする場合、またははるかに大規模なアプリケーションの一部であるサービスを、ローカル環境にアプリケーション全体をレプリケートすることなくデバッグする場合に、役に立ちます。 また、Azure Dev Spaces には、開発チームで AKS クラスターを共有できる機能も含まれます。 Azure Dev Spaces の詳細については、Azure Dev Spaces のドキュメントをご覧ください。 最初に、Visual Studio でデバッグ起動ターゲットとして Azure Dev Spaces が選択されていることを確認します。

デバッグ起動ターゲットとして Azure Dev Spaces を選択
デバッグ起動ターゲットとして Azure Dev Spaces を選択

Dev Spaces で初めてプロジェクトを起動する前に、使用する Azure サブスクリプションと AKS クラスターを構成します。 また、プロジェクトを実行する空間を選択します。

Azure Dev Spaces の構成
Azure Dev Spaces の構成

通常、チームはアプリケーション全体の最新の安定したバージョンを "既定" の空間で実行します。 その後、作業しているサービスのバージョンを、"既定" の空間の子空間で実行します。 子空間で他のサービスを実行する必要はありません。子空間内のサービスからの呼び出しは、Dev Spaces によって、"既定" の空間で実行されている安定バージョンのサービスに自動的にルーティングされます。 これを設定する方法の詳細については、Azure Dev Spaces のドキュメントのチーム開発チュートリアルをご覧ください。 正しいサブスクリプション、クラスター、空間を選択した後、[OK] をクリックして Dev Spaces の構成を続けます。 Dev Spaces コントローラーがまだ関連付けられていないクラスターを選択した場合は、次のダイアログ ボックスで [OK] をクリックすると自動的に作成されます。

Dev Spaces の有効化ダイアログ
Dev Spaces の有効化ダイアログ

コントローラーの作成には約 2 分かかります。 Visual Studio ウィンドウの左下隅の [バックグラウンド タスク] ボタンをクリックして、状態を確認できます。

バックグラウンド タスクによる Azure Dev Spaces コントローラー作成の状態
バックグラウンド タスクによる Azure Dev Spaces コントローラー作成の状態

Dev Spaces コントローラーの準備が整ったら、F5 キーを押すか、ツール バーの [Azure Dev Spaces] デバッグ ボタンをクリックして、AKS でプロジェクトをデバッグします。

[Azure Dev Spaces] デバッグ ボタン
[Azure Dev Spaces] デバッグ ボタン

Dev Spaces により、コードが Azure に同期され、コードを含むコンテナー イメージがビルドされて、プロジェクトで定義されている Helm チャートを使用して AKS クラスターにイメージが配置されます。 クラスターで実行されているサービスへのリモート デバッグ接続が Visual Studio によって開かれるので、ローカル環境で実行されているサービスをデバッグするときと同じようにクラスターのサービスを操作できます。

Xamarin によるモバイル開発

このリリースには、ワークロードのサイズと Android のビルドのパフォーマンスおよび信頼性の改善に加えて、Xamarin.Android および Xamarin.Forms の生産性向上のための機能強化が含まれています。

  • Xamarin ワークロードは 7.69 GB になりました。これは、Visual Studio 2017 バージョン 15.9 から 2 倍の削減、バージョン 15.7 と比較すると 3 倍の改善になります。
  • IntelliCode 拡張機能で、Xamarin.Forms XAML がサポートされるようになりました。
[ファイル] > [新しいプロジェクト]

アプリの構築をすばやく開始できるように、新しい Xamarin プロジェクトの作成にかかる時間を減らすことを目的としたパフォーマンスの改善が行われました。 パッケージの復元時間を短縮するため (特に低帯域幅またはオフラインの状況で)、ワークロードのインストールの一環として、テンプレートで使用される NuGet パッケージも含めるようにしました。 これらの機能向上により、新しい Xamarin プロジェクトを完全に読み込んで復元するのにかかる時間が、場合によっては約 50% 短縮されます。

新しい Xamarin プロジェクト比較 gif
Visual Studio バージョン 15.9 (左) および Visual Studio 2019 (右) での新しい Xamarin プロジェクトの作成
ビルド進行状況のインジケーター

プロジェクトをビルドするときに、ビルドの進行状況に関するいっそう詳細な情報を確認できるようになりました。 ビルド中に左下隅のバックグラウンド タスク アイコンをクリックすると、実行されている現在のビルド ターゲットが表示されます。 これは、ビルドがまだ実行されているけれども、ターゲットの完了に時間がかかっているかどうかを確認するのに、役立つ場合があります。

Xamarin のビルド進行状況のインジケーター
Xamarin のビルド進行状況のインジケーター
Xamarin.Forms Previewer の基本プレビュー モード

コードのプレビューを表示するために Xamarin.Forms XAML Previewer のプロジェクトを構築する必要がなくなりました。 XAML ファイルにカスタム コントロールがある場合は、それらをプレビューするためにプロジェクトをビルドするか、設計時のレンダリングに選択する必要があります。

Xamarin.Forms Previewer デバイスのドロップダウン

新しい Android デバイスのドロップ ダウン メニューを使用して、Android デバイスと iOS デバイス間を切り替えて Xamarin.Forms XAML をプレビューできるようになりました。

Xamarin.Forms デバイスのドロップダウン
Xamarin.Forms デバイスのドロップダウン
Xamarin.Forms プロパティ パネル

プロパティ パネル内で Xamarin.Forms のコントロール、セル、およびレイアウトの最も一般的な属性を編集し、ご利用の XAML で直ちに反映されたそれらの変更内容を確認できるようになりました。

Xamarin.Forms プロパティ パネル
Xamarin.Forms プロパティ パネル
Xamarin.Forms シェル テンプレート

最新の Xamarin.Forms リリースを使用するように Xamarin.Forms テンプレートが更新され、Xamarin.Forms シェル アプリ用の新しいテンプレート オプションが追加されました。 シェルの目的は、開発者の生産性を向上させ、レンダリング速度とメモリの消費量に注目しながら、アプリケーションの複雑さを軽減することです。 このテンプレートでは、Android と iOS 用のブートストラップ シェル アプリが提供されます。

Android のビルドのパフォーマンスと信頼性

Visual Studio 2017 バージョン 15.9 および Visual Studio for Mac 7.7 で、初回ビルドのパフォーマンスおよびビルドの正確性についての改善を行いました。 Visual Studio 2019 および Visual Studio for Mac 7.8 で、ビルドおよび配置をさらに速くしました。

Android のビルドのパフォーマンス
*Android のビルドがコーヒーを飲むより速くなりました*
  • Android の次世代のパッケージ ツールを利用できるようになります。 この機能を有効にするには、ご利用のプロジェクトの .csproj に MSBuild フラグを追加します。
    • aapt2 では、Android パッケージがコンパイルとリンクの 2 つのステップに分割されます。 これにより、インクリメンタル ビルドのパフォーマンスが向上し、以前のエラー レポートが提供されます。 たとえば、1 つのファイルだけに変更がある場合は、そのファイルを再コンパイルするだけで済みます。 <AndroidUseAapt2>True</AndroidUseAapt2>
  • ご利用のプロジェクトでこのツールを有効にすると、ビルド時およびランタイムの両方でのパフォーマンスの向上が可能になります。 これらのプロパティの詳細については、Xamarin.Android でのビルド プロセスに関する Microsoft のドキュメントを参照してください。
Android Emulator の機能強化

Visual Studio 2019 では、Android エミュレーター イメージをより簡単に作成できます。 また、Windows 10 の 2018 年 10 月の更新プログラム (バージョン 1809) では Window チームと共に作業を続けることで、Android エミュレーターが Hyper-V 上で実行されるときのパフォーマンスを向上させました。

  • 新しいユーザーは実行アイコンを押すだけで最初のイメージを作成できます。
  • Microsoft のエミュレーター取得エクスペリエンスでは、お客様の設定に対して最適な構成が自動的に決定され、既定ではハードウェアの高速化 (Intel HAXM または Hyper-V を使用) とクイック起動が利用されます。
  • 別のイメージを作成する場合は、ドロップダウンから [Android Emulator の作成] を選択して、Android Device Manager を開きます。
Xamarin.Android でのビルドの機能強化によりビルドが高速化される

一連の初期ビルド パフォーマンス向上策がリリースされました。 現時点で、Xamarin.Android 9.1.1 以降には、以前のリリースと比べて大幅なビルド パフォーマンスの向上が含まれています。 詳細については、「Xamarin.Android 15.9 vs.16.0 build performance comparison (Xamarin.Android 15.9 と 16.0 でのビルドのパフォーマンスの比較)」をご覧ください。

Xamarin.Android の高速展開の強化

これまで、高速配置では、アプリ内にパッケージ化されている資産、リソース、共有ネイティブ ライブラリに対して、または Java.Lang.Object を継承するユーザー定義クラスに対して、変更が行われていないシナリオで、Android パッケージ (.apk ファイル) のリビルドまたは再配置をスキップすることにより、増分配置時間の短縮を提供してきました。 強化された高速配置では、共有ネイティブ ライブラリと Java.Lang.Object を継承するクラスの両方をカバーするように、高速配置のサポートが拡張されています。 これらの新しい拡張機能を使用する高速配置のビルドでは、新しい Android.App.Application または Activity サブクラスの追加により AndroidManifest.xml ファイルが変化したときなど、限られた数のシナリオにおいてのみ新しい .apk ファイルを生成する必要があります。 これらの機能強化は、現在のプレビューではまだ既定では有効になりません。 有効にするには、.csproj ファイルで $(AndroidFastDeploymentType) MSBuild プロパティを Assemblies:Dexes に設定します。

<PropertyGroup> 
  <AndroidFastDeploymentType>Assemblies:Dexes</AndroidFastDeploymentType> 
</PropertyGroup>
Xamarin.Android での次世代の Dex Compiler(d8) および Code Shrinker(r8) のサポート

Xamarin.Android では、最新の Android dex コンパイラ (d8) とコード シュリンカー (r8) がサポートされるようになっています。 これらの機能を有効にするには、.csproj ファイルで、MSBuild プロパティの $(AndroidDexTool)d8 に、$(AndroidLinkTool)r8 にそれぞれ設定します

  • d8 は次世代の dex コンパイラです。このコンパイラでは実行速度がより速くなっており、より優れたランタイム パフォーマンスでより小さな .dex ファイルが作成されます。
<PropertyGroup> 
  <AndroidDexTool>d8</AndroidDexTool>
</PropertyGroup>
  • r8 は圧縮および縮小のための新しいツールです。このツールでは Java バイトコードが、ProGuard を必要としない最適化された dex コードに変換されます。
<PropertyGroup> 
  <AndroidLinkTool>r8</AndroidLinkTool>
</PropertyGroup>

d8 と r8 の詳細については、こちらのドキュメントをご覧ください。

Xamarin Android Designer の拡張機能

分割ビューでの相互作用に対して生産性向上のための機能強化を複数を行いました。

  • ツールボックスからソース エディターに直接ドラッグ アンド ドロップすることができます。これは、ご利用の Android レイアウトをすばやくスキャホールディングするのに役立ちます。
Android Designer ツールボックスからソース エディターへ
  • ソース エディター内で XML 定義の範囲から要素を直接、選択できます。 キャレットの位置を、対応する Android ビューと同期させることで、これを実装しました。これにより、エディターから直接、プロパティ パネル内の要素のプロパティにすばやくアクセスすることができます。
Android Designer ソース エディターからプロパティ エディターへ
  • ご自分のコントロールで使用されている色を確認できるように、XML コードに対するインライン色プレビューを使用できます。
Android Designer のカラー プレビュー
  • 値にポインターを合わせることでクイック ヒント機能を使用できます。この機能では、値が定義されている場所や、色の 16 進数の値などの詳細を確認できます。
Android Designer のクイック ヒント
*アクションのクイック ヒント*
制約レイアウトの初期サポートを含む Xamarin.Android Designer の機能強化

Android Designer の起動速度を向上させるための作業が開始されました。 この作業の一環として、デザイナーが読み込み中に提供するメッセージングも改善されています。

Android Designer の出力

これらの機能強化と共に、Android Designer では、Android Pie (9.0) がネイティブにサポートされ、ConstraintLayout 属性のオートコンプリートが提供されるようになっています。

Xamarin.Android Designer での XML IntelliSense とコメントの最適化の向上

IntelliSense を使用してレイアウトにウィジェットを追加するとき、必要な属性を最初から指定できるように、完全なスニペット エクスペリエンスが提供されるようになっています。 Android XML レイアウトに対してスマートなコメント化とコメント解除が追加されました。

定義への移動による生産性の向上と、Android リソース ファイルおよび AndroidManifest.xml 内での XML IntelliSense の使用

リソースの URL を Ctrl キーを押しながらクリックして、それらが定義されているファイルまたは行に移動できるようになりました。

Android Designer の定義へ移動

レイアウト以外の他の Android XML ファイル (色、文字列、ドローアブル、メニュー、Android マニフェストなど) に対して、IntelliSense/オートコンプリートがサポートされるようになりました。

ユニバーサル Windows プラットフォーム

  • IntelliCode 拡張機能で、XAML がサポートされるようになりました。
  • Visual Studio 設定の複雑さを軽減しサイズを縮小するために、Visual Studio のインストールから Windows Phone エミュレーターが削除されています。 このため、エミュレーターを手動でダウンロードすることが必要になります。
  • Windows 10 Fall Creators Update (ビルド 16299) の前の Windows 10 SDK をターゲットとする UWP アプリ用の XAML デザイン時ツールは、削除されました。 ご利用のアプリケーションを Windows 10 バージョン 1709 以降に再ターゲットして、XAML デザイナーを使用するか、または XAML エディターを使用します。
  • project.json を使用して NuGet の依存関係を定義する UWP テスト プロジェクトは、サポートされなくなりました。 新しい PackageReference 形式を使用するように、ご利用のプロジェクトを更新する必要があります。
  • Visual Studio 2019 で、UWP JavaScript アプリはサポートされなくなりました。 JavaScript UWP プロジェクト (拡張子 jsproj が付いたファイル) は、作成することも開くこともできません。 詳細については、Windows で適切に実行されるプログレッシブ Web アプリ (PWA) の作成に関する Microsoft のドキュメントを参照してください。
  • 以前と同様、JavaScript UWP アプリにアタッチできますが、JavaScript のプロファイリング ツール (ネットワーク、CPU、メモリ プロファイラー) は Visual Studio 2019 で使用できなくなりました。

Office ツール テンプレートの更新情報

Visual Studio 2019 で、Office、SharePoint、および VSTO のテンプレートに対していくつかの変更を加えました。

  • Visual Studio 2017 15.9 で追加された SharePoint 2019 のテンプレートは、Visual Studio 2019 でも利用できます。
  • SharePoint シーケンシャル ワークフローまたはステート マシン ワークフローのサポートを削除しました。 Visual Studio 2019 ではこれらのワークフローを作成することも開くこともできませんが、Visual Studio の以前のリリースではそれらの編集を引き続き行うことができます。
  • Office 2010 のテンプレートは使用できなくなります。 ただし、既存の Office 2010 プロジェクトについては、Visual Studio 2019 で引き続き開くことができます。
  • Office 2013 および 2016 のテンプレートによって Office 2013 以降がサポートされていることを反映するために、それらのテンプレートの名前は変更されました。

チーム エクスプローラーと Azure DevOps

Azure DevOps プロジェクトにチーム エクスプローラーを接続するとき、開発者向けの簡素化された新しいエクスペリエンスをリリースしています。

  • 関連する作業項目に焦点を当てます。そのためには、自分に割り当てられた作業項目、フォローしている作業項目、ディスカッションで自分がメンションされた作業項目、および自分のアクティビティに基づく作業項目に基づいてご利用のビューをフィルター処理およびピボットします。

    • 各ビュー内では、インラインでの作業項目の作成、シンプルなインライン編集の実行、作業項目への完了のマーク付け、保留中の変更への作業項目の関連付けを行うことができます。
  • 作業項目からローカル ブランチを作成します。この場合、そのローカル ブランチに加えた変更に作業項目が自動的に関連付けられます。 これが既定のエクスペリエンスです。 レガシ エクスペリエンスに切り替える場合は、Visual Studio で作業項目エクスペリエンスを設定することでそれを行います。 この新しいエクスペリエンスが該当するのは Git リポジトリの場合のみであることに注意してください。 TFVC リポジトリ用の新しいエクスペリエンスは、次の更新プログラムで使用できるようになります

    Azure DevOps の作業項目ハブ
    *Azure DevOps の作業項目ハブ*
  • 保留中の変更のコミット メッセージ内で #mention を行うときに作業項目を検索します。 詳細については、「View and add work items using the Work Items page」 ([作業項目] ページを使用して作業項目を表示および追加する) を参照してください。

    Azure DevOps #mentions
    *Azure DevOps #mentions*
  • Azure DevOps での採用率の低さが原因となって、Visual Studio 2019 用の Team Foundation Server Office Integration 2019 プラグインから Microsoft Project のサポートが削除されました。 このため、作業項目を Excel にエクスポートしてから、手動でプロジェクトに貼り付けることが必要になります。

  • Visual Studio 2019 用の Team Foundation Server Office Integration 2019 プラグインから PowerPoint のサポートが削除されました。 ただし、ユーザーは PowerPoint でストーリー ボードを作成し、Azure DevOps でそれらを作業項目に手動でリンクすることもできます。

Application Insights と HockeyApp

  • Visual Studio 2019 では Application Insights の Trends ウィンドウが削除され、機能がより豊富な代替えツールが使用されます。 代わりに、Visual Studio で Application Insights の検索ウィンドウを使用することも、Azure portal で Application Insights の豊富な診断ツール セットを使用することもできます。
  • HockeyApp SDK の追加および新しいベータ版の配布の作成を行うためのウィザードが削除されました。 代わりに、HockeyApp の後継として Visual Studio App Center の使用をお勧めします。 Visual Studio でのこのようなショートカットを除けば、HockeyApp は引き続き通常どおり使用することができます。

Release Notes Icon Visual Studio 2019 RC で修正された問題

最新の更新: 2019 年 4 月 26 日


既知の問題

Visual Studio 2019 バージョン 16.0 のすべての既知の問題と、利用可能な回避策を以下のリンクから参照してください。

Visual Studio 2019 の既知の問題

フィードバックと提案

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


ブログ

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


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

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


ページのトップへ