次の方法で共有


Visual Studio Icon Visual Studio 2017 バージョン 15.0 リリース ノート

サポートされているバージョンの Visual Studio 2017 はバージョン 15.9 です。

Important

これは Visual Studio の最新バージョンではありません。 最新のリリースをダウンロードするには、 https://visualstudio.microsoft.com/downloads/ にアクセスし、 Visual Studio 2022 リリース ノートを参照してください。

リリース履歴


リリース ノート アイコン Visual Studio 2017 バージョン 15.0 (26228.102)

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

Visual Studio 2017 バージョン 15.0 セキュリティ アドバイザリに関する通知

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

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

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

GIT が 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/ ディレクトリに複製および書き込みを行う際に、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 を使用して、この脆弱性を解決します。


リリース ノート アイコン Visual Studio 2017 バージョン 15.0 (26228.98)

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

Visual Studio 2017 バージョン 15.0 セキュリティ アドバイザリに関する通知

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

診断ハブ標準コレクターサービスが特定のファイル操作を不適切に偽装することにより、権限昇格の脆弱性が存在します。 攻撃者がこの脆弱性を悪用した場合、昇格された特権を取得する可能性があります。 脆弱なシステムへの特権のないアクセス権を持つ攻撃者がこの脆弱性を悪用する可能性があります。 このセキュリティ更新プログラムは、Diagnostics Hub Standard Collector Service がファイル操作を適切に偽装することを確認することで、この脆弱性を解決します。


リリース ノート アイコン Visual Studio 2017 バージョン 15.0 (26228.96)

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

Visual Studio 2017 バージョン 15.0 セキュリティ アドバイザリに関する通知

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

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


リリース ノート アイコン Visual Studio 2017 バージョン 15.0 (26228.92)

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

Visual Studio 2017 バージョン 15.0 セキュリティ アドバイザリに関する通知

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

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

詳細については、XOML の記事を参照してください。


リリース ノート アイコン Visual Studio 2017 バージョン 15.0 (26228.88)

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

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


リリース ノート アイコン Visual Studio 2017 バージョン 15.0 (26228.84)

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

Visual Studio 2017 バージョン 15.0 セキュリティ アドバイザリに関する通知

CVE-2019-0727 診断ハブ標準コレクターサービスにおける権限昇格の脆弱性

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


リリース ノート アイコン Visual Studio 2017 バージョン 15.0 (26228.76)

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

Visual Studio 2017 バージョン 15.0 セキュリティ アドバイザリに関する通知

CVE-2019-9197 Unity エディターのリモート コード実行の脆弱性

Unity エディターには、リモート コード実行の脆弱性が存在します。このエディターは、Unity ワークロードによるゲーム開発の一貫としてインストールするために Visual Studio で提供されるサード パーティ製ソフトウェアです。 Visual Studio から Unity をインストールした場合は、CVE の説明に従って、使用している Unity のバージョンを、脆弱性に対処するバージョンに必ず更新してください。 脆弱性に対処する Unity エディターのバージョンをインストールするために提供される、Visual Studio インストーラーが更新されました。


リリース ノート アイコン Visual Studio 2017 バージョン 15.0 (26228.73)

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

Visual Studio 2017 バージョン 15.0 のセキュリティ アドバイザリに関する通知

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

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

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

CVE-2019-0657 .NET Framework と Visual Studio にスプーフィングの脆弱性

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


リリース ノート アイコン Visual Studio 2017 バージョン 15.0 (26228.64)

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

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

  • プロジェクト名またはリポジトリ名にスペースがある Azure DevOps ユーザーは、チーム エクスプローラーで複製または発行するときにエラーが発生します。

Visual Studio 2017 バージョン 15.0 セキュリティ アドバイザリに関する通知

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

診断ハブ Standard Collector サービスが特定のファイル操作を不適切に処理すると、特権の昇格の脆弱性が存在します。 攻撃者がこの脆弱性を悪用した場合、昇格された特権を取得する可能性があります。 この脆弱性を悪用するには、攻撃者は脆弱なシステムへの特権のないアクセスを必要とします。 このセキュリティ更新プログラムは、Diagnostics Hub Standard Collector Services がファイル操作を適切に偽装することを確認することで、この脆弱性を解決します。


リリース ノート アイコン Visual Studio 2017 バージョン 15.0 (26228.57)

リリース日: 2018 年 10 月 10 日

Visual Studio 2017 バージョン 15.0 セキュリティ アドバイザリに関する通知

CVE-2018-8292 .NET Core の情報漏えいの脆弱性

HTTP リダイレクトが発生した送信要求で HTTP 認証情報が誤って公開された場合、.NET Core にセキュリティ機能バイパスの脆弱性が存在します。 攻撃者がこの脆弱性を悪用した場合、この情報を使用して Web アプリケーションをさらに侵害する可能性があります。 このセキュリティ更新プログラムは、.NET Core アプリケーションが HTTP リダイレクトを処理する方法を修正することで、この脆弱性を解決します。


リリース ノート アイコン Visual Studio 2017 バージョン 15.0 (26228.52)

リリース日: 2018 年 8 月 28 日

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


リリース ノート アイコン Visual Studio 2017 バージョン 15.0 (26228.49)

リリース日: 2018 年 8 月 14 日

Visual Studio 2017 バージョン 15.0 セキュリティ アドバイザリに関する通知

CVE-2018-0952 Diagnostic Hub Standard Collector の特権の昇格の脆弱性

Visual Studio サービスに特権の昇格の脆弱性が存在し、ファイルの書き込み時に管理者以外のユーザーによるシステム特権が発生する可能性があります。 これを利用した攻撃者は、ユーザー レベルのアクセス権のみを持ちながら、ファイルをシステムとして書き込む可能性があります。 このセキュリティ更新プログラムは、現在のユーザーを偽装してファイルの場所へのアクセスを検証することで、この問題に対処します。


リリース ノート アイコン Visual Studio 2017 バージョン 15.0 (26228.46)

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

このリリースの更新プログラムの概要

  • このリリースにより、Java™ Development Kit 8 Update 181 (JDK バージョン 8u181) がインストールされました。

Visual Studio 2017 バージョン 15.0 セキュリティ アドバイザリに関する通知

CVE-2018-8356 .NET Core のセキュリティ機能バイパスの脆弱性

Microsoft は .NET Core が証明書を適切に検証しない場合に存在するセキュリティ機能バイパスの脆弱性を認識しています。 この脆弱性の悪用に成功した攻撃者は、チャレンジの際に有効期限が切れた証明書を提示することができました。 この更新プログラムでは、.NET Core による証明書の検証方法を修正することにより、脆弱性を解決します。


リリース ノート アイコン Visual Studio 2017 バージョン 15.0 (26228.43)

リリース日: 2018 年 7 月 10 日

Visual Studio 2017 バージョン 15.0 のセキュリティ アドバイザリに関する通知

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

特別に作成されたプロジェクト、またはリソース ファイルを開くことで、ユーザーのコンピューターの悪用につながる可能性のある、リモート コード実行の脆弱性。 このセキュリティ更新プログラムは、Visual Studio でのファイルのソース マークアップの確認方法を修正することで、脆弱性に対処します。

CVE-2018-8260 .NET Framework のリモート コード実行の脆弱性

.NET ソフトウェアにはリモート コード実行の脆弱性が存在します。そのため、攻撃者は現在のユーザーのコンテキストで任意のコードを実行することができ、ユーザーのコンピューターの悪用につながる可能性があります。 このセキュリティ更新プログラムは、.NET でのファイルのソース マークアップの確認方法を修正することで、脆弱性に対処します。

CVE-2018-8232 .NET Microsoft Macro Assembler の改ざんの脆弱性

Microsoft Macro Assembler で正しくコードが検証されないことに関する改ざんの脆弱性 このセキュリティ更新プログラムは、確実に Microsoft Macro Assembler でコード ロジックが正しく検証されるようにすることで、脆弱性に対処します。

CVE-2018-8171 ASP.NET Core のセキュリティ機能バイパスの脆弱性

ASP.NET Core にはセキュリティ機能バイパスの脆弱性が存在します。不適切なログイン試行の回数が検証されず、攻撃者による無限の認証試行につながる可能性があります。 この更新プログラムは、不適切なログイン試行の回数を検証することで、脆弱性に対処します。


リリース ノート アイコン Visual Studio 2017 バージョン 15.0 (26228.37)

リリース日: 2018 年 5 月 31 日

Visual Studio 2017 バージョン 15.0 セキュリティ アドバイザリに関する通知

CVE-2018-11235 Git のセキュリティの脆弱性に関するマイクロソフト セキュリティ アドバイザリ

Git コミュニティで明らかになった Git のセキュリティ上の脆弱性を修正しました。 この脆弱性は、ユーザーが悪意のあるリポジトリを複製した場合に、任意のコード実行を引き起こす可能性がありました。


リリース ノート アイコン Visual Studio 2017 バージョン 15.0 (26228.31)

リリース日: 2018 年 4 月 26 日

このリリースの更新プログラムの概要

  • Java™ Development Kit 8 Update 172 (JDK バージョン 8u172) にアップグレードしました。

リリース ノート アイコン Visual Studio 2017 バージョン 15.0 (26228.30)

リリース日: 2018 年 4 月 10 日

Visual Studio 2017 バージョン 15.0 セキュリティ アドバイザリに関する通知

CVE-2018-1037 Microsoft Visual Studio の情報漏えいの脆弱性に関する Microsoft セキュリティ アドバイザリ

Visual Studio でプログラム データベース (PDB) ファイルをコンパイル中に制限されていないメモリの内容が不適切に開示される場合に、情報漏えいの脆弱性が存在します。 この情報開示を利用した攻撃者は、PDB ファイルのコンパイルに使用された Visual Studio インスタンスから、初期化されていないメモリを閲覧することができます。

攻撃者がこの脆弱性を利用するには、脆弱なバージョンの Visual Studio を使用して作成された、影響を受ける PDB ファイルにアクセスする必要があります。 攻撃者は開発者に対して、この情報漏えいを強制的に実行させることはできません。

このセキュリティ更新プログラムは、プロジェクトのコンパイル時に PDB ファイルが生成される方法を修正することにより、この脆弱性を解決します。


リリース ノート アイコン Visual Studio 2017 バージョン 15.0 (26228.29)

リリース日: 2018 年 3 月 13 日

Visual Studio 2017 バージョン 15.0 セキュリティ アドバイザリに関する通知

CVE-2018-0875 .NET Core の Microsoft セキュリティ アドバイザリ

Microsoft は、.NET Core のパブリック バージョンに存在するセキュリティ上の脆弱性を認識しています。このバージョンでは、悪意のあるファイルや Web 要求によってサービス拒否 (DoS) 攻撃が引き起こされる可能性があります。

  • システム管理者は、.NET Core ランタイムをバージョン 1.0.10、1.1.7、2.0.6 に更新することをお勧めします。 開発者は、.NET Core SDK をバージョン 1.1.8 または 2.1.101 に更新することをお勧めします。

リリース ノート アイコン Visual Studio 2017 バージョン 15.0 (26228.26)

リリース日: 2018 年 2 月 21 日

このリリースの更新プログラムの概要

チーム エクスプローラーでは、TLSv1.2 がサポートされています。 Visual Studio に付属する Git および Git Credential Manager コンポーネントが更新されました。 オプションの Git for Windows コンポーネントも更新されました。 この更新プログラムにより、Git は TLSv1 と TLSv1.1 のサポートが非推奨になったサービスに接続でき、TLSv1.2 が優先されます。


リリース ノート アイコン Visual Studio 2017 バージョン 15.0 (26228.23)

リリース日: 2018 年 2 月 2 日

このリリースの更新プログラムの概要

  • MSVC コンパイラが更新され、/Qspectre スイッチがサポートされました。これは、コンパイラが Spectre バリアント 1 のインスタンスを検出したときに自動的に投機バリアを挿入します。 /Qspectre の詳細については、 Visual C++ チーム ブログを参照してください。
  • JDK は、ダウンロード エラーを修正するために 8u161 にバンプされました。

リリース ノート アイコン Visual Studio 2017 バージョン 15.0 (26228.21)

リリース日: 2018 年 1 月 9 日

Visual Studio 2017 バージョン 15.0 のセキュリティ アドバイザリに関する通知

CVE-2018-0786 X509 証明書検証のセキュリティ機能バイパス

Microsoft では、.NET Core 1.0 および 1.1 および 2.0 のパブリック バージョンの脆弱性に関する情報を提供するために、このセキュリティ アドバイザリをリリースしています。 このアドバイザリでは、開発者がアプリケーションを正しく更新するために何ができるかに関するガイダンスも提供します。 このセキュリティ アドバイザリは、UWP 用の .NET ネイティブにも適用されます。

Microsoft は、特定の用途で無効とマークされた証明書を攻撃者が提示する可能性がある .NET Core のパブリック バージョンのセキュリティの脆弱性を認識していますが、コンポーネントはその目的のためにそれを使用します。 このアクションは、拡張キー使用法のタグ付けを無視します。

このセキュリティ更新プログラムは、.NET Core コンポーネントが証明書を完全に検証することで、この脆弱性を解決します。 システム管理者は、.NET Core ランタイムをバージョン 1.0.9、1.1.6、2.0.5 に更新することをお勧めします。 開発者は、.NET Core SDK をバージョン 2.1.4 または 1.1.7 に更新することをお勧めします。

CVE-2018-0764 XML ドキュメントの解析時のサービス拒否

Microsoft では、.NET Core 1.0 および 1.1 および 2.0 のパブリック バージョンの脆弱性に関する情報を提供するために、このセキュリティ アドバイザリをリリースしています。 このアドバイザリでは、開発者がアプリケーションを正しく更新するために何ができるかに関するガイダンスも提供します。

Microsoft は、XML ドキュメントの不適切な処理により、.NET Core のすべてのパブリック バージョンでサービス拒否の脆弱性を認識しています。 攻撃者がこの脆弱性を悪用すると、.NET アプリケーションに対してサービス拒否が発生する可能性があります。 認証されていないリモートの攻撃者は、特別に細工された要求を .NET Core アプリケーションに発行することにより、この脆弱性を悪用する可能性があります。

この更新プログラムは、.NET Core による XML ドキュメント処理の処理方法を修正することで、この脆弱性を解決します。 システム管理者は、.NET Core ランタイムをバージョン 1.0.9、1.1.6、2.0.5 に更新することをお勧めします。 開発者は、.NET Core SDK をバージョン 2.1.4 または 1.1.7 に更新することをお勧めします。


リリース ノート アイコン Visual Studio 2017 バージョン 15.0 (26228.18)

リリース日: 2017 年 12 月 6 日

Visual Studio 2017 バージョン 15.0 セキュリティ アドバイザリに関する通知

Microsoft は、ASP.NET Core のセキュリティ アドバイザリをリリースしました。 詳細については、 ASP.NET Core リポジトリの対応するお知らせを参照してください。 次の情報にご注意ください。

CVE-2017-8700 CORS バイパスを使用すると、情報漏えいを有効にすることができます

ASP.NET Core 1.0 と 1.1 にはセキュリティ上の脆弱性があり、クロスオリジン リソース共有 (CORS) をバイパスして情報漏えいにつながる可能性があります。 ASP.NET Core 1.0 と ASP.NET Core 1.1 で作成された新しいプロジェクトでは、上記のセキュリティ更新プログラムを含むパッケージ バージョンが使用されるようになりました。 既存のプロジェクトの場合、ユーザーは [NuGet パッケージの管理] ダイアログを使用してパッケージを新しいバージョンに更新することができます。


リリース ノート アイコン Visual Studio 2017 バージョン 15.0 (26228.17)

リリース日: 2017 年 11 月 14 日

Visual Studio 2017 バージョン 15.0 のセキュリティ アドバイザリに関する通知

Microsoft は、.NET Core および ASP.NET Core のセキュリティ アドバイザリをリリースしました。 詳細については、.NET Core および ASP.NET Core のリポジトリの該当するお知らせを参照してください。 次の情報にご注意ください。

CVE-2017-8585 証明書の形式が正しくないと、サービス拒否が発生する可能性があります

.NET Core 1.0、1.1、および 2.0 にはセキュリティ上の脆弱性があり、形式が正しくない証明書またはその他の ASN.1 形式のデータによって、Linux と macOS の無限ループを介してサービス拒否が発生する可能性があります。 システム管理者は、.NET Core ランタイムをバージョン 1.0.8、1.1.5、2.0.1 に更新することをお勧めします。 開発者は、.NET Core SDK をバージョン 2.0.3 または 1.1.5 に更新することをお勧めします。

CVE-2017-8700 CORS バイパスを使用すると、情報漏えいを有効にすることができます

ASP.NET Core 1.0 と 1.1 にはセキュリティ上の脆弱性があり、クロスオリジン リソース共有 (CORS) をバイパスして情報漏えいにつながる可能性があります。

CVE-2017-11879 Open Redirect は特権の昇格を引き起こす可能性があります

ASP.NET Core 2.0 には、オープン リダイレクトが存在し、特権の昇格につながるセキュリティの脆弱性があります。

CVE-2017-11770 サービス拒否の脆弱性

ASP.NET Core 1.0、1.1、2.0 でアプリケーションが Windows Http.Sys を介してホストされている場合、不正な要求によってサービス拒否が発生する可能性があるセキュリティの脆弱性があります。 ASP.NET Core 1.0 と ASP.NET Core 1.1 で作成された新しいプロジェクトでは、上記のセキュリティ更新プログラムを含むパッケージ バージョンが使用されるようになりました。 既存のプロジェクトの場合、ユーザーは [NuGet パッケージの管理] ダイアログを使用してパッケージを新しいバージョンに更新することができます。


リリース ノート アイコン Visual Studio 2017 バージョン 15.0 (26228.16)

リリース日: 2017 年 9 月 18 日

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


リリース ノート アイコン Visual Studio 2017 バージョン 15.0 (26228.13)

リリース日: 2017 年 5 月 23 日

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

オフライン インストール シナリオでは、インターネット アクセスが不要になります。


リリース ノート アイコン Visual Studio 2017 バージョン 15.0 (26228.12)

リリース日: 2017 年 3 月 31 日

このリリースの更新プログラムの概要

Xamarin.VS Extension for Visual Studio 2017 では、Xcode 8.3、iOS 10.3、watchOS 3.2、および tvOS 10.2 のツールと API がサポートされるようになりました。


リリース ノート アイコン Visual Studio 2017 バージョン 15.0 (26228.10)

リリース日: 2017 年 3 月 28 日

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

ビルド 26228.10 で対処された、お客様から報告された問題を次に示します。


リリース ノート アイコン Visual Studio 2017 バージョン 15.0 (26228.09)

リリース日: 2017 年 3 月 14 日

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

ビルド 26228.09 で対処された、お客様から報告された問題を次に示します。


リリース ノート アイコン Visual Studio 2017 バージョン 15.0 (26228.04)

リリース日: 2017 年 3 月 7 日

このリリースの更新プログラムの概要

開発: コードをすばやく移動、記述、修正する

  • 新しいインストール エクスペリエンスでは、オフライン インストールのサポートだけでなく、より高速でカスタマイズ可能なインストールのための最小フットプリントが削減されています。
  • Visual Studio IDE には、起動とソリューションの読み込み時間の短縮、サインインと ID の向上、コード ナビゲーションの改善、フォルダー ビューの開く、接続済みサービスなど、Visual Studio 2017 の広範な機能強化が用意されています。この機能により、アプリとオンプレミスまたはクラウド内の任意のサービス間の接続が可能になります。
  • 2015 年から 2017 年の間に Visual C++ に重大な変更はありません。 C++14 準拠レベルの向上、CMake のサポート、ビルド スループット、エディターでの生産性。
  • C# と Visual Basic では、新しい C# 7.0 および Visual Basic 15 言語機能のサポートが拡張され、1 つのアクションでソース コードを整理できる新しいリファクタリングが導入されています。
  • F# 4.1 言語機能の F# サポート、F# コンパイラと FSharp.Core の機能強化、Roslyn ワークスペースに基づく新しいエディター。
  • JavaScript と TypeScript には、Visual Studio のすべての TypeScript プロジェクトで使用できる TypeScript 2.1 があります。 新しい JavaScript 言語サービスが使用でき、既定で有効になっています。

デバッグ: デバッグ、プロファイリング、診断を簡単に行う

例外ヘルパーのデバッグと診断の見直しと、[クリックして実行] を使用したコード ナビゲーションの高速化。 さらに、[診断ツール] ウィンドウでのアプリケーション イベントの新しい概要と、CPU ツールのいくつかの機能強化。

テスト: 包括的なテスト ツールを使用して高品質のコードを記述する

  • Live Unit Testing では、単体テストの結果とコード カバレッジをエディターでライブで視覚化できるようになりました。
  • テスト ツールは、テスト エクスプローラーを使用して、自動化をテスト ケースの作業項目に関連付けます。

共同作業: バージョン管理を使用し、アジャイルで、効率的に共同作業を行う

  • チーム エクスプローラーの新しい Git 機能と更新された接続エクスペリエンスにより、Visual Studio 2017 で Git を使用してさらに多くのことを行い、接続先のプロジェクトとリポジトリを簡単に見つけることができます。
  • 強化された Visual Studio フィードバック ワークフローには、より協調的なレポート A 問題があります。 検索、フォロー、投票して、すべてのフィードバックに関する最新の更新プログラムを取得します。

拡張: 独自の拡張機能を構築して好みに合わせてカスタマイズする

  • Visual Studio 拡張機能: 独自の拡張機能を構築して、Visual Studio を好みに合わせてカスタマイズします。
  • プロジェクト テンプレートと項目テンプレートの検出可能性: Visual Studio がプロジェクトテンプレートと項目テンプレートを使用してテンプレート検出のパフォーマンスを向上させる方法に重大な変更があります。

装備:ツールを利用して生産性を向上させ、新機能を探索する

  • .NET Core と ASP.NET Core: これには、新しい MSBuild ベースの .NET Core ツールの 1.0 最終リリースが含まれています。 Visual Studio 2017 を使用すると、新しい csproj 形式を使用する .NET Standard ライブラリ、.NET Core アプリ/ライブラリ、ASP.NET Web プロジェクトを作成できます。
  • ユニバーサル Windows アプリ開発用ツール: 更新プログラムには、新しいバージョンの .NET ネイティブ ツールチェーン、.NET Core NuGet フレームワーク、新しい生産性ツール、Windows 10 "Creators Update" SDK のサポートが含まれています。
  • Xamarin: Xamarin 4.3 では、tvOS のサポートが追加され、iOS アセット カタログのサポートと XML 編集エクスペリエンスも向上します。
  • Visual Studio Tools for Apache Cordova: 新しいブラウザー ベースのシミュレーターを使用すると、コードをすばやく作成し、すぐに結果を表示できます。
  • Node.js Tools for Visual Studio: 安定性、パフォーマンス、全体的な製品品質に重点を置いた更新プログラム。
  • Visual Studio Tools for Unity: Visual Studio Tools for Unity 3 は、新しい Visual Studio インストーラーの "Game Development with Unity" ワークロードで使用できるようになりました。
  • Redgate Data Tools: DevOps 機能を SQL データベース開発に拡張するために、Visual Studio には Redgate ReadyRoll Core、SQL Search、SQL Prompt Core で構成される Redgate Data Tools が含まれるようになりました。
  • NuGet: NuGet では、推移的なパッケージ参照の進歩を維持しながら、パッケージの依存関係情報を パッケージ参照としてプロジェクト ファイルに直接格納できるようになりました。
  • XAML アプリのツール: XAML ランタイム ツール バーでフォーカスを追跡できるようになりました。 XAML エディット コンティニュ、XAML エディターの機能強化、パフォーマンスの最適化により、XAML の生産性が向上しました。
  • データ ツールと SQL Server: SQL Server Data Tools の最新の更新プログラムにより、Azure SQL Database と SQL Server 2016 の最新機能がサポートされます。
  • Developer Analytics Tools: Visual Studio 2017 には Developer Analytics Tools v8.6 が含まれており、Visual Studio の Application Insights と HockeyApp の機能が多数改善されています。
  • Office Developer Tools for Visual Studio: 最新の機能と更新プログラムを含む Office Developer Tools が含まれています。
  • ライブ アーキテクチャの依存関係の検証: 依存関係の検証図 (レイヤー 図とも呼ばれます) のリアルタイム通知。
  • 開発者コマンド プロンプト: 新しいインストール エクスペリエンスをサポートするためにスクリプトをリファクタリングしました。
  • Azure SDK for .NET: 新しい Visual Studio インストーラーから使用できるようになりました。

15.0 の新機能の詳細 (26228.04)

このリリース アイコンの新機能 Visual Studio 2017 バージョン 15.0 (26228.04) の詳細

リリース日: 2017 年 3 月 7 日

インストール エクスペリエンス

私たちは、最初から設計された新しいインストーラを導入して喜んでいます:

  • Visual Studio の最小フットプリントを削減します。
  • システムへの影響が少なく、より迅速にインストールし、クリーンにアンインストールします。
  • 必要な機能だけを簡単に選択してインストールできます。

Visual Studio 2017 を初めてインストールすると、新しいエクスペリエンスが表示されます (図 1)。

Visual Studio 2017 の新しいインストール エクスペリエンス
(図 1)Visual Studio 2017 の新しいインストール エクスペリエンス

最小インストールはわずか数百メガバイトですが、ソース コード管理を含む 20 を超える言語に対する基本的なコード編集のサポートがまだ含まれています。 ほとんどのユーザーは、さらにインストールする必要があります。 .NET デスクトップ開発から Unity によるゲーム開発まで、一般的なフレームワーク、言語、プラットフォームを表す 1 つ以上の "ワークロード" を追加できます。

Visual Studio を更新する方法

Visual Studio を更新するには、Visual Studio インストーラーを実行し、[ 更新 ] ボタンをクリックします。

新しいインストーラーに関するフィードバック

問題を報告または称賛するには、タイトル バーの右上隅にある新しいインストーラー クライアントの [ 問題の報告 ] コマンドと [ 提案の入力 ] コマンドを使用します。 インストールのインストール、アンインストール、または変更中にエラーが発生したかどうか、および異常なインストール時間 (ハングなど) や予期しないエラー メッセージが発生したかどうかを確認する必要があります。

オフライン インストールと新しい Command-Line インストール サポート用のレイアウトの作成

システム管理者やその他のユーザーは、インターネットにアクセスしなくても、製品のインストールに必要なすべてのコンテンツを含む Visual Studio のオフライン レイアウトを作成できるようになりました。 このレイアウトには、製品全体、ワークロードやコンポーネントのサブセット、および 1 つ以上の製品ロケールを指定できます。 オフライン レイアウトを作成するには、インターネット アクセスが必要であることに注意してください。 詳細については、「 Visual Studio 2017 のオフライン インストールを作成する」を参照してください。

インストールニックネーム

Visual Studio Enterprise と Community (他の製品の中でも) を同じコンピューターにサイド バイ サイドでインストールできるようになりました。 これらのインストールをより簡単に識別するには、短い名前または "ニックネーム" を指定します。 たとえば、Visual Studio Enterprise をインストールしてから Community をインストールすると、両方ともスタート メニューに同じように表示されます。 2 つ目には "community" のようなニックネームを付けることができます。スタート メニュー項目には、"Visual Studio 2017 (community)" や "Developer Command Prompt for Visual Studio 2017 (community)" などの名前が表示されます。

Visual Studio IDE

IDE の機能強化

  • Visual Studio は、起動時間とソリューションの読み込み時間を短縮するために最適化されています。 Visual Studio の初回起動時は、少なくとも 50% 高速です。
  • Visual Studio では、スタートアップ、ソリューションの読み込み、または編集に影響する拡張機能のパフォーマンスが監視されるようになりました。 IDE の通知バーを使用して、パフォーマンスの低い拡張機能に関するアラートを受け取ります。 新しいパフォーマンス センター (Visual Studio のパフォーマンスの管理 > も参照できます) を使用すると、パフォーマンスに影響を与えている拡張機能だけでなく、スタートアップ パフォーマンスに影響を与えているツール ウィンドウを検出したり、スタートアップの読み込み動作を変更したりできます。
  • Visual Studio 用の GitHub 拡張機能は、新しい Visual Studio インストーラーで選択できます。
  • すべてのプロジェクトの再読み込みが、Visual Studio の外部でブランチを切り替えるときのパフォーマンスを向上させるために、ソリューションの再読み込みに置き換えられました。 Git コマンド ラインを使用してブランチを切り替える場合は、ブランチの切り替え後に [ソリューションの再読み込み] を選択して、パフォーマンスを最大限に向上させます。
  • .NET Core および ASP.NET Core プロジェクトのファイル グロビング機能が強化されました。 詳細については、 プロジェクト ファイルの globbing を 参照してください。
  • これで、複製後にリポジトリのフォルダー ビューに自動的に移動します。 ソリューション エクスプローラーで、新しいソリューション選択リストを使用してファイルを表示したり、ソリューションを開いたりすることができます。
  • VSHub に代わる新しい外部サービス ホストが導入されています。 この新しいサービス ホストは外部プロセスであり、タスク マネージャーに ServiceHub.Host.CLR.*.exeとして表示され、ServiceHub.Host.Node.x86.exe。 このホストは、最終的に VSHub で導入された localhost http トラフィックを排除し、Fiddler ユーザーが報告するノイズを軽減します。
  • プレリリース ライセンスの有効期限メッセージは、現在のライセンスの状態をより明確に伝えます。
  • スクリーン リーダーが [アカウント設定] ダイアログにアクセスできるようになりました。
  • Visual Studio インストーラーからヘルプ ビューアー コンポーネントをインストールすることで、オフライン ヘルプを利用できるようになりました。
  • [言語パック] タブの Visual Studio インストーラーを使用して、複数のユーザー インターフェイス言語をいつでも追加および削除できるようになりました。[ツール] > [オプション] > [国際設定] を使用して、インストールされているユーザー インターフェイス言語の中から現在のユーザー インターフェイス言語を選択できます。
  • バージョン 管理ステータス バーを使用すると、ローカル リポジトリを SCC ホストに発行し、コミットされていない作業 (図 2) とプッシュされていない作業を追跡しやすくなります (図 3)。
バージョン 管理 - 発行されていないコミットの例
(図 2)バージョン 管理 - 発行されていないコミットの例
バージョン 管理 - 保留中の変更がない例
(図 3)バージョン 管理 - 保留中の変更がない例

サインインと ID の向上

Microsoft 開発者ツール間でユーザー アカウントを共有できる新しい ID サービスが導入されました。 Visual Studio 内では、この共有には、チーム エクスプローラー、Azure ツール、Windows ストアの発行などの機能が含まれます。 これらの機能は、共通の一貫性のあるサインイン エクスペリエンスを共有するようになりました。

Visual Studio の機能強化に加えて、ユーザーが安全にサインインし続け、12 時間ごとに強制サインインを排除できるいくつかの機能強化がサービス側にデプロイされました。 これは、最も一般的に報告されるサインインの問題に対処します。 Visual Studio のプロンプトの数を減らします

スタート ページ

再設計されたスタート ページには、新しい [開く] および [作成] 機能があります。

  • VSTS からリモート リポジトリを取得するか、より目立つ MRU を使用してローカル プロジェクトとソリューションを簡単に開きます。
  • スタート ページ MRU には、他のマシンに複製したリポジトリが表示されるので、現在のコンピューターで簡単に複製できます。
  • 検索可能なテンプレートと最近使用したテンプレートの一覧を使用して、スタート ページから直接新しいプロジェクトを作成します。 最近使用したテンプレートは、パーソナル化アカウントを使用して Visual Studio インスタンス間でもローミングされます。
  • スタート ページの [VSTS からチェックアウト] オプションを使用して、VSTS エクスペリエンスから新しいクローンをすばやく起動します。
  • 無視できる "作業の開始" セクション。
  • [ニュース] セクションが折りたたみ可能になりました。
    • ニュース フィードで新しく追加されたアイテムのバッジを更新しました。
    • ニュース フィードが折りたたまれているときに新しいアイテムが表示される場合のニュース フィード エキスパンダーのバッジ。
  • 小さい画面の切り捨てられた要素と空き領域の使用率に関するフィードバックに対処するように、視覚的なデザインを改良しました。

新しいスタート ページを次に示します (図 4)。

開始とニュースを含むスタート ページ
(図 4)開始とニュースを含むスタート ページ

コード ナビゲーションの改善

Visual Studio 2017 のコード ナビゲーション機能が大幅に改善されました。

  • [すべてに移動] (Ctrl+または Ctrl+ T) を使用すると、コード内のファイル、型、メソッド、その他の要素をすばやく見つけて移動できます。 これにより、大規模なコード ベースでも、あらゆる種類の項目を見つけることができます。 さらに、どの種類のアイテムを探しているのかがわかっている場合は、簡単に絞り込むことができます。 C#、Visual Basic、F# では、型名のスペルを間違えた場合でも結果が返されるように、"あいまい" 一致も追加されています。 また、Go To Line (Ctrl + G) エクスペリエンスも最新化されています。 コマンドの [移動] ファミリは、[編集] メニューの上部にあります (図 5)(図 6)。
フィルター処理された結果に移動
(図 5)フィルター処理された結果に移動
行に移動
(図 6)行に移動
  • すべての参照の検索 (Shift + F12) が見直され (現在、C#、Visual Basic、F#、C++ 用)、高度なグループ化、フィルター処理、並べ替え、参照結果内での検索、結果の色付け (C# と VB の場合) が提供されるため、参照を明確に理解し、必要なコード行に確実にアクセスできます。 参照項目をマウスでポイントすると、ソース コード (C# と VB の場合) の参照のコンテキストと共にツールヒントが表示されます。 ツール バーの [結果の保持] ボタンを切り替えることで、[すべての参照の検索] の次の呼び出しで参照結果が新しいウィンドウに設定されます。 これにより、現在の結果を既存のウィンドウに保持できます (図 7)。
すべての参照を検索する
(図 7)すべての参照を検索する
  • 作業しているコードの構造を簡単に視覚化できるように、構造ガイド線がエディターで描画されるようになりました。 マウス ポインターを置くと、現在のコード ブロックのコンテキストを含むヒント (図 8) が先祖ブロックに対して相対的に表示されます。 構造ガイド行は、現在、C#、Visual Basic、F#、XAML ファイル、および TextMate 文法でサポートされるすべてのファイルでサポートされています。 この機能は、[ツール>オプション]ダイアログボックスで[テキストエディタ]>カテゴリの[構造ガイドラインを表示]チェックボックスをオフにして無効にすることができます。
構造ガイドライン
(図 8)構造ガイドライン

EditorConfig によるコーディング規則のサポート

Visual Studio エディターで EditorConfig がサポートされるようになりました。これにより、開発者は異なるエディターと IDE の間で一貫したコーディング スタイル規則を定義および維持できます。 .editorconfig ファイルを使用 して .NET コード スタイルを管理する方法については、詳細についてはドキュメントと .NET のドキュメントを参照してください。

フォルダーを開く

[フォルダーを開く] は、プロジェクトやソリューションなしでコード ベースを操作するための便利な方法です。 メニュー バーから [フォルダーを開く] 機能を表示するには、[ ファイル>開く>フォルダーを選択して移動します。 ソリューション エクスプローラーを使用してファイルを開いて編集できます (図 9)。 多くの一般的な言語には、構文の強調表示とシンボル ナビゲーション (GoTo) のサポートがあります。

Visual Studio IDE の新しいフォルダーを開く機能
(図 9)Visual Studio IDE の新しいフォルダーを開く機能

さらに、一部の言語には、フォルダーから直接 IntelliSense とデバッグの高度なサポートがあります。

  • C++ (CMake)。
  • Node.js - JavaScript/TypeScript。
  • C# と VB。

F5 キーとソリューション エクスプローラーのファイル コンテキスト メニューを使用して、ビルドまたはデバッグできます。 最適なエクスペリエンスを得るために、使用している言語のワークロードをインストールしてください。

フォルダー ビューでは、次の機能もサポートされています。

  • GoTo (Ctrl+) を使用して、フォルダー内のコード全体を検索します。
  • ソリューション エクスプローラーのフォルダー ビューのスコープをサブフォルダーにします。
  • エクスプローラーまたはソリューション エクスプローラーからコマンド プロンプトでフォルダーを開きます。
  • [ソリューションの選択] ドロップダウンを使用して、開いているフォルダーまたはリポジトリ内のソリューションを簡単に切り替えることができます。
  • launch.vs.jsonを使用してデバッグと起動の設定を構成します。 デバッグできるファイルを右クリックし、[デバッグと起動の設定] を選択します。
  • タスクを構成し、tasks.vs.jsonを使用してビルドをカスタマイズします。 任意のファイルを右クリックし、[タスク設定の構成] を選択します。
  • Launch.vs.json と tasks.vs.json JSON エディターに IntelliSense があります。

フォルダーを開き、フォルダー ビューとソリューション ビューを切り替えるパフォーマンスが大幅に向上しました。

ライトウェイト ソリューション ロード

軽量のソリューション負荷により、大規模なソリューションの読み込みが高速化されます。 大規模なソリューションのソリューションの読み込み時間とメモリ使用量が大幅に向上する可能性があります。 この機能は既定では有効ではなく、ソリューションごとに、または IDE でグローバルに有効にすることができます。 グローバルに有効にするには、[ツール > オプション] に移動し、[プロジェクトとソリューション] で [全般] を選択するか (図 10) 、またはサイド リンク バーで [ライトウェイト ソリューション の読み込み] を検索します。 この機能は、[ソリューションのプロパティ] ウィンドウで個々のソリューションのオンとオフを切り替えることができます。

新しい軽量ソリューション読み込み機能 Visual Studio IDE
(図 10)新しい軽量ソリューション読み込み機能 Visual Studio IDE

ライトウェイト ソリューション ロードは、C# を含む大規模なソリューション、または C# プロジェクトと C++ プロジェクトの組み合わせに最適です。 大規模なソリューションを使用していることを検出した場合は、この機能を有効にするように求められる場合があります。

ソリューション ビルド全体のパフォーマンスが大幅に向上し、従来のソリューション負荷と同等になりました。

構文の色付け、オートコンプリート、スニペット、および "移動" 検索のサポートにより、その他の言語がサポートされます

Visual Studio 2015 の更新プログラムで追加したサポートに基づいて、Visual Studio 2017 では、言語の範囲を広げるための構文の色付けとオートコンプリートがサポートされるようになりました。 さらに、これらの言語の一部では、"移動" (Ctrl+) やコード スニペットのナビゲーションもサポートされています。

以下に示す言語のファイルでは、問題の言語を明示的にサポートするワークロードがインストールされていない場合でも、新しい Visual Studio Core エディターでこれらの機能がサポートされます。 言語サポートを提供するワークロード (.NET Desktop アプリケーション開発ワークロード、Windows デスクトップ アプリ開発と C++ ワークロードなど) がインストールされている場合は、IntelliSense や電球などのその他の高度な言語機能を含む、より広範な言語サポートが提供される場合があります。

サポート レベル別に一覧表示される言語ファイルの種類:

  • 構文の色付けとオートコンプリートのみをサポートします。
    • Bat、Clojure、CoffeeScript、CSS、Docker、F#、Jade、Jade、Javadoc、JSON、LESS、LUA、Make、Markdown ++、Objective-C、Perl、PowerShell、Python、Rust、ShaderLab、SQL、Visual Basic .NET、YAML。
  • (構文の色付けとオートコンプリートに加えて) コード スニペットをサポートします。
    • CMake、C++、C#、Go、Notepady、HTML、Java、Javadoc、JavaScript、Lua、Perl、PHP、R、Ruby、Shellscript、Swift、XML。
  • (構文の色付けとオートコンプリートに加えて) 移動をサポートします。
    • C++、C#、Go、Java、JavaScript、PHP、TypeScript、Visual Basic。

プロジェクト概要ページの概要

新しく作成されたプロジェクトに対して、まったく新しい作業の開始エクスペリエンスを導入しました。 新しいアプリ構成デザイナーの [概要] タブに現在の作業の開始ページを置き換え、すぐに実行できるアクションに注目しました。 これは、ASP.NET 4.x ASP.NET Core および Cordova プロジェクトで有効になっています (図 11)。

(図 11)プロジェクトの概要
(図 11)プロジェクトの概要

接続済みサービスを使用したサービスへの接続

以前のリリースでは、この機能はサービス機能という名前でした。 名前を接続済みサービスに変更しました。

接続済みサービスは、Visual Studio 2017 の最新の "接続済みサービスの追加" または "サービス参照の追加" 機能です。 接続済みサービス機能を使用すると、アプリをサービスに簡単に接続できます。 "接続済みサービス" という名前の新しいノードは、Web および Mobile プロジェクトの種類のソリューション エクスプローラーで使用できます。 このノードをダブルクリックすると、Visual Studio で新しいフル ページ タブが開き、接続できる人気のある Microsoft サービスを見つけられます。

[接続済みサービス] ページ (図 12) でサービスを選択すると、プロジェクトを構成する接続済みサービス ウィザードが呼び出され、サービスに対するコーディングを迅速かつ簡単に開始するために必要な NuGet パッケージがダウンロードされます。

接続済みサービス
(図 12)接続済みサービス

In-Product ツールと機能の取得

Visual Studio 2017 を使用すると、IDE から離れることなく、追加のワークロードとコンポーネントを簡単に取得できます (図 13)。 クイック起動を利用して、任意のワークロードまたは個々のコンポーネントの Visual Studio インストーラーを見つけて起動します。

サイド リンク バーを使用した製品内の取得
(図 13)サイド リンク バーを使用した製品内の取得

探しているテンプレートが見つからない場合は、[新しいプロジェクト] ダイアログ内から Visual Studio インストーラーを開くこともできます (図 14)。

製品内クイック起動ダイアログ
(図 14)製品内クイック起動ダイアログ

Visual C++

Visual Studio 2017 では、Visual C++ 環境に多くの更新プログラムと修正プログラムが適用されます。 バグ レポートをお寄せいただきありがとうございました。 250 を超えるバグを修正し、コンパイラとツールの問題を報告しました。多くは を通じてお客様から送信されています。 このリリースでは、STL のパフォーマンス向上に取り組んだ。 SQLite ベースの新しいデータベース エンジンが、既定で使用されるようになりました。 これにより、[定義へ移動] や [すべての参照の検索] などのデータベース操作が高速化され、初期ソリューションの解析時間が大幅に短縮されます。 元の C++ ワークロードのインストールに対して、より詳細なインストール エクスペリエンスを提供します。 必要なツールのみをインストールできる選択可能なコンポーネントが追加されました。 Visual Studio での CMake のサポートは、準備が整いました。 CMake プロジェクトを Visual Studio に直接読み込み、今すぐコーディングを開始します。 "フォルダーを開く" C++ エクスペリエンスが改善されました。そのため、Visual Studio ソリューションやプロジェクトを作成する必要なく、ソース コードを Visual Studio に取り込みます。 移動先は、一連の新しいナビゲーション フィルターの傘用語である Go To と呼ばれるようになりました。 これにより、特に大規模なコード ベースで、適切な結果を簡単に見つけることができます。

C++ コード分析

C++ コア ガイドラインを適用するための C++ コア チェッカーが Visual Studio で配布されています。 プロジェクトのプロパティ ページ (図 15) の [コード分析拡張機能] ダイアログでチェッカーを有効にするだけで、コード分析の実行時に拡張機能が含まれます。

CppCoreCheck プロパティ ページ
(図 15)CppCoreCheck プロパティ ページ

C++ コンパイラ

C++ 11 および C++14 機能のサポートが強化され、C++ コンパイラと標準ライブラリが更新されました。また、C++17 標準に含まれると予想される特定の機能に対する予備的なサポートも行いました。 集計の一般化された constexpr と NSDMI のサポートにより、コンパイラは C++14 Standard で追加された機能に対して完全です。 コンパイラには、C++11 および C++98 標準のいくつかの機能がまだ不足しています。 Visual Studio 2017 では、/await で /sdl を使用できます。 コルーチンの /rtc 制限を削除しました。

このリリースでは、最適化とコード生成のいくつかの機能強化が行われています。 主な改良点は次のとおりです。

  • ループのコード生成が改善されました。定数整数の除算の自動ベクター化のサポート、memset パターンの識別が向上しました。
  • コード セキュリティの強化: バッファー オーバーラン コンパイラ診断の出力が改善され、/guard:cf がジャンプ テーブルを生成する switch ステートメントを保護するようになりました。
  • /debug:fastlink オプションが改善され、Visual Studio 2015 よりも大きなコンポーネントでのリンク時間が 30% 短縮されました。
  • 共同ルーチンを使用する場合、Experimental キーワード "yield" (/await スイッチで使用可能) が削除されました。 代わりに "co_yield" を使用するようにコードを更新する必要があります。 詳細については、 Visual C++ チームのブログを参照してください。

C++ ライブラリ

  • [STL]basic_stringのパフォーマンス向上。
  • [STL] <any>、 <string_view>、apply()、make_from_tuple() を追加しました。
  • [STL] std::vector が修正され、正確性とパフォーマンスが向上しました。
  • [STL]STL では、null ファンシー ポインターの逆参照が回避されるようになりました。
  • [STL] <optional>、 <variant>、shared_ptr::weak_type、および <cstdalign> を追加しました。
  • [STL]min/max/minmax(initializer_list) および min_element/max_element/minmax_element() で C++14 constexpr を有効にしました。
  • [STL]std::string/std::wstring の移動コンストラクターのパフォーマンスが 3 倍以上向上しました。
  • [STL]STL の機能強化の完全な一覧については、 Visual C++ チームのブログを参照してください。
  • [ATL]さらに、名前参照の準拠の別のセットが修正されました。
  • [ATL]既存の移動コンストラクターと移動代入演算子が、スロー以外として正しくマークされるようになりました。
  • [ATL]atlstr.h のローカル静的なスレッド セーフ初期化に関する有効な警告 C4640 を抑制解除します。
  • [ATL][ATL を使用して DLL をビルドする] 場合、XP ツールセットでローカル静的のスレッド セーフな初期化が自動的にオフになりました。 これはもはや当たりません。 スレッド セーフな初期化をオフにする必要がある場合は、プロジェクト設定に /Zc:threadSafeInit- を追加できます。
  • [AMP]監査済みライブラリと固定入力ミス。
  • [VCRuntime]制御フロー ガード シンボル用の新しいヘッダー 'cfguard.h'。

C++ 統合開発環境 (IDE)

C++ ネイティブ プロジェクトの構成変更が簡単になりました。C++/CLI プロジェクトの場合、さらに簡単です。 ソリューション構成を初めてアクティブ化すると、より高速になり、このソリューション構成の後続のすべてのアクティブ化はほぼ瞬時に行われます。

SQLite ベースの新しいデータベース エンジンが、既定で使用されるようになりました。 これにより、[定義へ移動] や [すべての参照の検索] などのデータベース操作が高速化され、初期ソリューションの解析時間が大幅に短縮されます。 この設定は、[ツール] > [オプション] > [テキスト エディター] > C/C++ > [詳細設定] に移動されました (以前は ...C/C++ > 試験段階)。

プリコンパイル済みヘッダーを使用しないプロジェクトとファイルに対する IntelliSense のパフォーマンスが向上しました。現在のファイルのヘッダーに対して自動プリコンパイル済みヘッダーが作成されます。

その他の更新プログラムは次のとおりです。

  • エラー一覧にエラー フィルター処理と IntelliSense エラーのヘルプを追加しました (図 16)。 エラー列をクリックすると、フィルター処理ができるようになりました (図 17)。 また、特定のエラーをクリックするか、F1 キーを押すと、オンライン検索でエラー メッセージが表示されます。
エラー一覧
(図 16)エラー一覧
フィルター処理されたエラー 一覧
(図 17)フィルター処理されたエラー 一覧
  • 種類別にメンバー リスト項目をフィルター処理する機能が追加されました (図 18)。
フィルター処理されたメンバー リスト
(図 18)フィルター処理されたメンバー リスト
  • メンバー リストに表示される内容のコンテキストに対応したフィルター処理を提供する、新しい試験的な予測 IntelliSense 機能が追加されました。

  • 新しい [すべての参照の検索] UI には、C++ コードの結果の変数から読み取るか、変数に書き込むかに関する情報が含まれています。

  • Dot-to-Arrow IntelliSense 機能は試験段階から高度な機能に移行され、既定で有効になりました。 エディター機能の [スコープの展開] と [優先順位の展開] も試験段階から高度な機能に移行されました。

  • 実験用リファクタリング機能の Change Signature と Extract 関数が既定で使用できるようになりました。

  • C++ プロジェクトの新しい試験的機能 "プロジェクトの読み込みの高速化" を有効にしました。 次に C++ プロジェクトを開くと、読み込みが速くなり、その後の読み込み時間がさらに速くなります。

  • [フォルダーを開く] のエクスペリエンスが改善されました。 "フォルダーを開く" を使用してソースを読み込んで、MSBuild 以外の C++ プロジェクトを編集、ビルド、デバッグします。 次の json ファイルを使用してエクスペリエンスをカスタマイズします。

    • CppProperties.json: IntelliSense および参照エクスペリエンスをカスタマイズします。
    • ビルドステップをカスタマイズする Tasks.vs.json。
    • デバッグ エクスペリエンスをカスタマイズする Launch.vs.json。
  • C++ IntelliSense は、ルート フォルダーに CppProperties.json ファイルを作成する必要なく機能します。 これに加えて、ユーザーが CMake によって提供される構成と CppProperties.json ファイルを簡単に切り替えることができるように、新しいドロップダウンが追加されました。 フォルダーを開くでの CMake のサポート: "フォルダーを開く" で CMake プロジェクトを開くと、C++ の編集、ビルド、デバッグ用に環境が自動的に構成されます。

  • 追加の構成は、CMakeLists.txt ファイルと同じフォルダーにある CMakeSettings.json ファイルを使用してサポートされます (図 19)。

CMake フォルダーを開く
(図 19)CMake フォルダーを開く

C++ インストール ワークロード

  • C++ を使用した Windows デスクトップ開発:

    • 元の C++ ワークロードのインストールに対して、より詳細なインストール エクスペリエンスを提供します。 必要なツールのみをインストールできる選択可能なコンポーネントが追加されました。 インストーラー UI に示されているコンポーネントのインストール サイズが正確ではなく、合計サイズを過小評価している点に注意してください。

    • C++ デスクトップ ワークロードで Win32 プロジェクトを作成するには、ツールセットと Windows SDK の両方をインストールする必要があります。 推奨される (選択した) コンポーネント "VC++ 2017 v141 ツールセット (x86,x64)" と "Windows 10 SDK (10.0.14393)" をインストールすると、これが確実に機能します。 必要なツールがインストールされていない場合、プロジェクトは正常に作成されず、ウィザードがハングします。

  • C++ を使用した Linux 開発:

    • よく利用される拡張機能である Visual C++ for Linux Development が Visual Studio に組み込まれます。 このインストールでは、Linux 環境で実行する C++ アプリケーションの開発とデバッグに必要なすべてのものが提供されます。
  • C++ を使用したゲーム開発:

    • C++ を最大限に活用して DirectX または Cocos2d で駆動するプロフェッショナルなゲームを構築します。
  • C++ (Android および iOS) を使用したモバイル開発:

    • Android および iOS を対象とするモバイル アプリを、Visual Studio を使用して作成およびデバッグできるようになりました。
  • ユニバーサル Windows プラットフォームの開発:

    • C++ は、ユニバーサル Windows プラットフォーム開発ワークロードのオプション コンポーネントとして提供されます。 現在、C++ プロジェクトのアップグレードは手動で行う必要があります。 Visual Studio 2017 で v140 を対象とする UWP プロジェクトを開く場合は、Visual Studio 2015 がインストールされていない場合は、プロジェクト のプロパティ ページで v141 プラットフォーム ツールセットを選択する必要があります。

Clang/C2 プラットフォーム ツールセット

Visual Studio 2017 に付属する Clang/C2 ツールセットでは、大規模なプロジェクトをビルドするために不可欠な /bigobj スイッチがサポートされるようになりました。 また、コンパイラのフロントエンドとバックエンドの両方について、いくつかの重要なバグ修正が組み込まれました。

C# と Visual Basic

言語拡張

このリリースでは、次のような C# 7.0 および Visual Basic 15 言語機能のサポートが導入されています。

C# の場合:

  • 非同期メソッドのタスクに似た戻り値の型: これにより、非同期メソッドからタスクに似た型を返す機能が導入されます。 以前は、これらの戻り値の型は Task<T>Taskに制限されていました。
  • 値タプルは、タプルを 使用して型指定された値のセットを一時的にグループ化するための言語サポートを導入します。 詳細については、GitHub の の設計に 関するメモを確認してください。
  • 入れ子になったローカル関数 は、ブロック スコープ内の関数の宣言をサポートするように言語を拡張します。
  • 拡張機能 を使用すると、代数データ型と関数型言語からのパターン マッチングの利点の多くが可能になります。
  • 参照によって値を返 す関数を有効にする Ref を返します。

Visual Basic の場合:

  • 値タプルでは、タプルを 使用して型指定された値のセット ( Dim point As (x As Integer, y As Integer) = GetOffset()) を一時的にグループ化するための言語サポートが導入されています。
  • ByRef の戻り値の使用により、ByRef が返されるライブラリからの関数とプロパティの使用をサポートするように言語が拡張されます。
  • バイナリ リテラルと桁グループ区切り記号を使用すると、バイナリ番号をネイティブに表現できます。 これは、ビットマスクとフラグ列挙体 ( &B1001_0011) に非常に便利です。

詳細については、 CSharpLang GitHubVBLang GitHub の言語設計に従って、これらの言語拡張機能とその他の提案された言語拡張機能の詳細を確認してください。

クイック アクションとリファクタリング

Visual Studio には、生産性を高め、コードをより読みやすくするために役立つ多くのリファクタリングが用意されています。 次に例を示します。

  • 初期化子を使用してオブジェクトの初期化を簡略化します (図 20)。
オブジェクト初期化子を使用する
(図 20)オブジェクト初期化子を使用する
  • 新しい C#7 機能を利用して、out変数宣言をインラインで移動します (図 21)。
変数をインラインで移動する
(図 21)変数をインラインで移動する
  • 新しい C#7 機能を利用して、null 合体演算子を使用して null チェックとスロー式を簡略化します (図 22)。
null 合体演算子で throw 式を使用する
(図 22)null 合体演算子で throw 式を使用する
  • 一致するファイルに型を移動する: 1 つのファイルから型を抽出し、1 回のクリックで一致する名前を持つ別のファイルに Ctrl+
  • 同期ファイルと種類の名前: ファイルと種類の名前が同期していない場合は、 Ctrl+を使用できます。
  • String.Formatを文字列補間に変換する: このクイック アクションで C# 6 言語機能を利用します。
  • 不足しているケースを C# スイッチまたは Visual Basic Select に追加します。
  • プロパティをメソッドに変換し、その逆を行います。
  • パッケージ参照の追加: 認識できない型の NuGet パッケージを自動取得してインストールする (および using/Import を追加する) オファー。 この機能を有効にするには、[ツール > オプション] > [テキスト エディター] > [C# / Basic] > 参照アセンブリ内の型の使用 > を提案する/NuGet パッケージ内の型の使用を提案する]に移動します。
  • 必要に応じて非同期メソッドを同期します。
  • スペルミス型の "あいまい" 一致のサポート。
コーディング規則の構成と適用

Visual Studio の EditorConfig のサポートに基づいて、コミュニティと協力して.NET コード スタイルの設定をファイル形式に追加しました。 つまり、チームのコード スタイル規則を構成し、それらをソース管理にチェックインし、開発者が入力するときにエディターに違反がライブで表示されるようにすることができます。 すべてのコード スタイル オプションは、Roslyn リポジトリの .editorconfig または ドキュメントで確認できます。 [C#/Basic] > コード スタイル>ツール > オプション>テキスト エディターで、コンピューター固有のコード スタイル設定を引き続き構成できます。EditorConfig が存在し、競合すると、これらのルールはオーバーライドされます。

また、次のようなコーディング規則をチームにカスタマイズして適用できるように、スタイル アナライザーを追加および更新しました。

  • 名前付けスタイルの規則。
  • var型または明示的な型の使用。
  • メンバー アクセスでの this. または Me. の使用。
  • 式本体またはブロックを使用します。
  • castおよびnullチェックにパターン マッチングを使用します。
  • 明示的なタプル名を使用します。
  • スロー式、条件付きデリゲート、結合式、および null 伝達を使用して、null チェックを簡略化します。
  • 中かっこが必要です。

注: これらのコード スタイル ルールのいくつかは、既定でエディターで提案として構成されています (図 23)。

EditorConfig からコード スタイルの基本設定と適用を構成する
(図 23)EditorConfig からコード スタイルの基本設定と適用を構成する

IntelliSense の機能強化

このリリースでは、大規模なソリューションや未知のコードベースで作業する場合の生産性を向上させる IntelliSense の機能強化も導入されています。 IntelliSense にアイコン トレイが追加されました。これにより、メンバー リストを型 (メソッド、プロパティ、クラスなど) でフィルター処理できます。 各フィルター トグルには、アイコンの上にマウス ポインターを置くことで検出できるキーボード ショートカットが関連付けられています。 この機能を有効にするには、Tools>Options>Text Editor>[C# / Basic]>IntelliSense に移動し、フィルター処理と強調表示のオプションを確認します (図 24)。

IntelliSense 入力候補のフィルター処理
(図 24)IntelliSense 入力候補のフィルター処理

その他のエディターの機能強化

  • カーソルを文字列の中央に配置し、 Enterを押すことで、長い文字列を複数の連結文字列に分割できるようになりました。
  • 診断と CodeLens 情報を計算するバックグラウンド操作が存在する場合、IDE の応答性を向上させるためにかなりの作業を行いました。

F#

F# 4.1 言語機能のサポート

  • C# 7/VB 15 タプルと相互運用する構造体タプル。
  • Byref は、C# 7 ref の使用をサポートする戻り値を返します。
  • [<Struct>]属性を使用した構造体レコードのサポート (Will Smith による)。
  • [<Struct>]属性を使用した構造体判別共用体のサポート。
  • FSharp.Core でサポート関数を持つ新しい Result<'TSuccess, 'TFailure> 型 ( oskar Gewalli による)。
  • fixed キーワード。ポインター型をスタックにローカルに固定できます。
  • 数値リテラルのアンダースコア ( Avi Avni による)。
  • 呼び出し元情報属性引数 ( リンカーン・アトキンソン および Avi Avni による)。
  • namespace recmodule recを介して、同じファイル内の型とモジュールを相互に参照します。
  • 型と同じ名前を共有するモジュールの暗黙的な "Module" サフィックス。

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

(多くは F# コミュニティによって行われます)

Roslyn ワークスペースに基づく新しいエディター

(優れた F# コミュニティによって提供される多くの新しい IDE 機能)

F# コミュニティによる追加の投稿

Visual Studio 2017 での F# ツールの開発、バグの報告、ディスカッションの推進、バグ修正と機能の実装に関する F# コミュニティ全体に感謝します。 Visual Studio 2017 での F# の成功は、F# コミュニティなしでは実現できませんでした。 共同作成者の完全な一覧を参照してください。

JavaScript と TypeScript

TypeScript 2.1

TypeScript 2.1 は、Visual Studio のすべての TypeScript プロジェクトで使用できます。 TypeScript 2.1 では、下位レベルの非同期/待機、より優れた型推論、ローカル オブジェクトの拡張などが提供されます。 リリースの詳細については、 リリースブログの投稿 または 完全な変更ログを参照してください。

JavaScript Language Service

新しい JavaScript 言語サービス (図 25) が使用でき、既定で有効になっています。 新しいサービスは、より豊富な IntelliSense を提供し、JSDoc コメント注釈、ES6、および一般的な JS モジュール形式に対する IntelliSense サポートを追加します。 また、ジェネレーター、モジュール、デコレーターなど、ES2016 の JSX 構文と機能もサポートしています。 詳細については、 このブログ投稿 または GitHub の JavaScript IntelliSense ドキュメント を参照してください。

jQuery 用のリッチ JavaScript IntelliSense
(図 25)jQuery 用のリッチ JavaScript IntelliSense

パフォーマンスの向上

パフォーマンスの向上は、このリリースの最大の焦点の 1 つでした。 メモリと応答性の特性を向上させるためのいくつかの最適化に加えて、JavaScript/TypeScript 言語サービス全体が devenv.exe 外のサテライト プロセスに移動され、最大の Visual Studio プロジェクトにメモリが解放されました。 巨大な JavaScript プロジェクトを使用すると、Visual Studio プロセスによるメモリ消費量が少なくなり、メモリ不足のクラッシュが少なくなります。

デバッグと診断

クリックして実行

デバッグ中にコード行の横にあるアイコンをクリックするだけで、その行に移動します (図 26)。 一時的なブレークポイントを設定したり、いくつかの手順を実行してコードを実行したり、必要な行で停止したりしなくなりました。 デバッガーの中断状態で停止中に、マウスをポイントしたコード行の横に[クリックして実行]アイコンが微妙に表示されます。 マウスをアイコンに移動してボタンをクリックすると、コードが次にコード パスにヒットしたときに、その行でコードが実行されて停止します。 [デバッグ]、[>>] の順にクリックすると、メイン メニューからオフにすることができます。

[Run to Click]\(実行してクリック\) アイコン
(図 26)[Run to Click]\(実行してクリック\) アイコン

プロセス フィルターにアタッチする

[プロセスにアタッチ] ダイアログ (図 27) で簡単に検索して、デバッガーをアタッチするプロセスをすばやく見つけます。 実行中のプロセスの一覧は、検索に一致する項目にフィルター処理されます。 検索フィルターは固定され、ダイアログを再度開いたときに以前の検索が記憶されます。

プロセス フィルターにアタッチする
(図 27)プロセス フィルターにアタッチする

プロセスに再アタッチする

以前にデバッグしていたプロセスにすばやく再アタッチできるようになりました。 新しい Debug/Reattach to Process (Shift + Alt + P) コマンドをトリガーすると、[プロセスへのアタッチ] ダイアログから呼び出された前のデバッグ セッションの最後のプロセスにデバッガーをすぐにアタッチしようとします。 デバッガーは、最初に前のプロセス ID と一致し、次に前のプロセス名と一致させることで、プロセスに再アタッチします。 一致するものが見つからない場合、または同じ名前のプロセスが複数見つかった場合は、[プロセスにアタッチ] ダイアログが表示され、目的のプロセスを選択できます。

新しい例外ヘルパー

新しい例外ヘルパー (図 28) を使用して、内部例外にすぐにアクセスできるコンパクトな非モーダル ダイアログで例外情報を一目で表示します。 NullReferenceException の診断中に、例外ヘルパー内から null だったものをすぐに確認できるようになりました。 スローされた例外で停止中に条件を追加するチェック ボックスをクリックして、特定のモジュールからスローされた例外の種類の中断を除外できるようになりました。 例外ヘルパーの新しい利点の詳細については、このブログ記事を参照してください。

[新しい例外ヘルパー] ダイアログ
(図 28)[新しい例外ヘルパー] ダイアログ

例外設定に条件を追加する

スローされた例外を中断するようにデバッガーを構成する場合は、指定したモジュールで例外がスローされたときにのみデバッガーが中断するように条件を追加できます (図 29)。

[条件の編集] ダイアログ ボックス
(図 29)[条件の編集] ダイアログ ボックス

デバッガーのアクセシビリティの向上

スクリーン リーダーやその他のアクセシビリティのニーズに合わせて、いくつかのデバッガー ウィンドウ (呼び出し履歴、ローカル、自動、ウォッチ、およびクイック ウォッチ) をより効果的に使用できるようになりました。

.NET Core の IntelliTrace イベント

IntelliTrace では、 ASP.NET Core アプリの MVC、ADO.NET、HttpClient イベントがサポートされるようになりました。 これらは、[診断ツール] ウィンドウの [イベント] タブに表示されます。

診断ツール ウィンドウの更新

デバッグ セッションを開始すると、[診断ツール] ウィンドウにアプリケーションの新しい概要ビュー (図 30) が表示されます。 ここから、次のことが可能になります。

[診断ツール] ウィンドウの [概要] タブ
(図 30)[診断ツール] ウィンドウの [概要] タブ

パフォーマンス プロファイラーの更新

のパフォーマンス プロファイラーは、実行中のプロセスにアタッチできるようになりました。 CPU 使用率ツール、GPU 使用率ツール、パフォーマンス ウィザードで、実行中のプロセスへのアタッチがサポートされるようになりました。

CPU 使用率ツールの更新

にいくつかの機能強化が行われました。

  • 外部コードのサポートの向上 - CPU ツールを使用すると、ユーザー コードによって呼び出されたときのライブラリ関数とフレームワーク関数のコストに関するより良い分析情報が提供されるようになりました。
  • 関数ビュー (図 31) - CPU コストで関数をランク付けするビュー。
関数の一覧
(図 31)関数の一覧
  • 呼び出し元/呼び出し先ビュー (図 32) では、選択した関数との間で行われた関数呼び出しのコストを調査できます。
呼び出し元/呼び出し先ビュー
(図 32)呼び出し元/呼び出し先ビュー
  • ソース ビューには、関数が CPU ツールで選択されている場合の関数のソース コードが表示されます。

Chrome デバッグのサポート

プロジェクト ASP.NET デバッグを開始し、ブラウザーとして Google Chrome を選択すると、Visual Studio によって Chrome で実行されている JavaScript がデバッグされます。 代わりにブラウザー内開発ツールを使用する場合は、[ツール] > [オプション] > [デバッグ] でこの機能を無効にすることができます。

ライブ単体テスト

Live Unit Testing (図 33) は、Visual Studio 2017 Enterprise エディションの機能で、単体テストの結果とコード カバレッジをエディターに表示します。 .NET Framework を対象とする C# および VB プロジェクトの MSTest、xUnit、および Nunit がサポートされています。

ライブ単体テスト
(図 33)Live Unit Testing

詳細については、 Live Unit Testing のブログ を参照してください。

テスト ツール

テスト エクスプローラーを使用して自動化をテスト ケースの作業項目に関連付ける

テスト エクスプローラーでテスト メソッドを選択して、自動化をテスト ケースの作業項目 (図 34) に関連付けることができるようになりました。 この新しいエクスペリエンスでは、選択したテスト メソッドの既存の関連付けを表示することもできます。

テスト エクスプローラーでテストを右クリックするだけです。..

テスト エクスプローラーのオートメーションの関連付け
(図 34)テスト エクスプローラーのオートメーションの関連付け

...関連付けを作成するためのテスト ケース ID を指定します (図 35)。

オートメーションの関連付け
(図 35)オートメーションの関連付け

以前のバージョンの Visual Studio では、作業項目フォームを使用してこれを行うことができます。 ツールを使用して互換モードを有効にすると、作業項目フォーム ベースのエクスペリエンスを有効にすることができます。 |オプション (図 36)

作業項目フォーム互換モード
(図 36)作業項目フォーム互換モード

チーム エクスプローラー

Git の新機能

Visual Studio 2017 に新しい Git 機能が追加されました。これにより、IDE から離れることなく、より多くのエンド ツー エンドワークフローを実行できます。 送信コミットの差分を簡単に表示したり、強制プッシュを実行してリベースを完了したり、修正されたコミットをプッシュしたり、アップストリーム ブランチの設定を解除したり、Visual Studio からパッチリベースを続行したりできます。 さらに、git.exeに移動しました。 これにより、最も up-to-date 機能を提供できます。 SSH をサポートし、構成オプションを尊重し、コマンド ラインに表示される内容をチーム エクスプローラーに正確に表示します。 これらの機能の詳細については、 ブログの投稿を参照してください。

VSTS/TFS に接続する

Visual Studio のスタート ページとチーム エクスプローラーでは、VSTS/TFS でプロジェクトに接続し、リポジトリを複製するプロセスがカスタマイズされ、合理化され、接続するプロジェクトとリポジトリを迅速かつ簡単に見つけることができます。 新しい Connect ページには、(すべてのプロジェクトのすべてのリポジトリではなく) すべての VSTS/TFS サーバーでマップおよび複製したプロジェクトとリポジトリのみが表示されます。 さらに、リポジトリを複製する前にプロジェクトに接続する必要がなくなりました。

ダイアログを起動して VSTS と TFS に接続すると、再設計された UX が表示されます。 追加したすべての TFS サーバーの後に、選択したユーザー アカウントのすべての VSTS サーバー、プロジェクト、リポジトリが表示されます。 結果は、ナビゲーションを向上させるためにツリーに一覧表示されます。 リポジトリに加えて、コレクションまたはプロジェクトに接続できます。

作業項目フォーム

Visual Studio 2017 から Visual Studio Team Services に接続して作業項目を開くと、作業項目フォームが Web ブラウザーに表示されます (図 37)。 ただし、Team Foundation Server 2015 以前に接続すると、従来の作業項目フォームが表示されます。

チーム エクスプローラーの作業項目フォーム
(図 37)チーム エクスプローラーの作業項目フォーム

強化された Visual Studio フィードバック ワークフロー

Visual Studio 2017 には、フォローアップとコラボレーションを向上するためのアップグレードされたフィードバック エクスペリエンスが含まれています。 このアップグレードの一環として、Visual Studio でのより協調的な問題報告エクスペリエンスが、包括的な Web ポータル によって補完され、完全なエンド ツー エンドのフィードバック ソリューションが得られます。 Visual Studio IDE の [問題の報告] 機能を通じて提供したすべてのフィードバックに関する最新の更新プログラムを検索、フォロー、投票、取得できるようになりました。 これらの強化されたエクスペリエンスは、お客様から受け取ったフィードバックの多くに対応し、チームとお客様との間の双方向のコミュニケーションを可能にします。

Visual Studio の機能拡張

新しい拡張形式

Visual Studio 2017 の新しいインストーラー テクノロジにより、インストールされているツールをより詳しく制御できます。 コア Visual Studio エディターのみをインストールするユーザーもあれば、複数のワークロードをインストールするユーザーもいます。 必須の機能と拡張機能が確実にインストールされるように、拡張機能の作成者は、拡張機能で必要な個々のコンポーネントをマニフェストで指定できるようになります。

新しい VSIX 形式を使用してビルドされていない拡張機能をインストールしようとすると、ユーザーに警告が表示されます。 古い VSIX 形式では、必要な前提条件が指定されていないため、Visual Studio 2017 でこれらの前提条件が使用できない場合、動作しなくなる可能性があります。 新しい VSIX 形式は下位互換性があり、Visual Studio 2012 まで過去のバージョンの Visual Studio を対象にすることができます。

VSIX マニフェスト デザイナーが更新され、マニフェストへの変更が反映されました。 拡張機能の開発者は、前提条件タブ (図 38) で、拡張機能の前提条件として指定するインストール済みコンポーネントの一覧を見つけることができます。

[前提条件] タブ
(図 38)[前提条件] タブ

拡張機能のインストール中に、VSIX インストーラー (図 39) は、不足しているコンポーネントを示し、拡張機能と共にインストールします。

VSIXInstaller
(図 39)VSIXInstaller

拡張機能を一括で変更する

[拡張機能と更新プログラム] ダイアログ (図 40) では、Visual Studio を再起動する前に、インストール、更新、アンインストール用に複数の拡張機能をスケジュールできるようになりました。 右下隅には、スケジュールされたタスクの概要が表示されます。 スケジュールされた変更を削除するには、現在インストールがスケジュールされている拡張機能の横にある X をクリックします。

[拡張機能と更新プログラム] ダイアログ
(図 40)[拡張機能と更新プログラム] ダイアログ

すべての Visual Studio ウィンドウが閉じられていることが VSIX インストーラーによって検出されると、スケジュールされた変更の完了が開始されます (図 41)。

バッチ変更インストーラー
(図 41)バッチ変更インストーラー

Ngen のサポート

Ngen を使用してアセンブリをインストールできるようになりました (図 42)。

NGEN プロパティ
(図 42)NGEN プロパティ
  • Ngen - アセンブリで Ngen を使用するかどうか。
  • Ngen アプリケーション - /ExeConfig スイッチを介して Ngen に渡すアプリケーション。
  • Ngen アーキテクチャ - ネイティブ イメージのターゲット アーキテクチャ。 オプションは、x86、x64、およびすべてです。
  • Ngen 優先度 - Ngen 優先度レベル。

拡張ディレクトリの外部にファイルをインストールする

拡張機能ディレクトリの外部にあるフォルダーの選択リストにファイルをインストールできるようになりました (図 43)。

VSIX プロパティ
(図 43)VSIX プロパティ
  • VSIX に含める - VSIX にファイルを含めます。
  • ルートのインストール - ファイルをインストールするルート ディレクトリ。 オプションは、既定 (拡張機能ディレクトリ内にインストール)、PublicAssemblies、ReferenceAssemblies、MSBuild、Schemas、Licenses、RemoteDebugger、VSTargets です。
  • ターゲット パス - ユーザーのコンピューターにインストールするファイルの名前。
  • VSIX サブ パス - ファイルがインストールされるインストール ルートの下のサブ パス。

ローミング拡張機能マネージャー

Visual Studio 2017 の新機能である Roaming Extension Manager は、すべての開発環境でお気に入りの拡張機能を追跡するのに役立ちます。 拡張機能をローミングすると、クラウドに同期リストを作成することで、インストールした拡張機能が追跡されます。

Visual Studio にサインインすると、[ツール] > [拡張機能と更新プログラム] から拡張機能の一覧をすばやく表示し、[ローミング拡張機能マネージャー] をクリックします (図 44)。 インストールした拡張機能を追跡し、ローミング リストに追加する拡張機能を選択できます。 ギャラリーに毎日新しい拡張機能が表示されるため、このツールを使用すると、お気に入りの拡張機能を使用して各開発環境を迅速かつ簡単に設定できます。

Visual Studio IDE の新しいローミング拡張機能マネージャー
(図 44)Visual Studio IDE の新しいローミング拡張機能マネージャー

この機能を使用すると、次の 3 種類のアイコンが表示されます。

  • 移動済みアイコン ローミング アイコン - ローミング リストの一部であり、このマシンにはインストールされていない拡張機能を示します。 これらは、[ダウンロード] ボタンを使用してインストールできます。
  • ローミング済みおよびインストール済みアイコン ローミング済みおよびインストール済みアイコン - ローミング リストの一部であり、この環境にインストールされているすべての拡張機能を示します。 ローミングしない場合は、[ローミングの停止] ボタンを使用してこれらを削除できます。
  • インストール済みアイコン インストール済みアイコン - この環境にインストールされているが、ローミング リストに含まれていないすべての拡張機能を示します。 [ローミングの開始] ボタンを使用して、ローミング リストに拡張機能を追加できます。

これらのアイコンには、リストの現在の状態が表示されます。 任意の状態で任意の拡張機能を使用できるので、心の内容に合わせてカスタマイズできます。 または、私たちはあなたにそれをやってみましょう! サインイン中にダウンロードした拡張機能は、ローミング済みおよびインストール済みとしてリストに追加され、ローミング リストに含まれるため、任意のマシンからアクセスできるようになります。

プロジェクト テンプレートと項目テンプレートの検出

Visual Studio 2017 以降では、Visual Studio がプロジェクトテンプレートと項目テンプレートを使用してテンプレート検出のパフォーマンスを向上させる方法に重大な変更が加わります。 新しい検出メカニズムでは、"vstemplate" スキーマに続くすべての項目テンプレートとプロジェクト テンプレートをテンプレート マニフェスト ファイルで定義する必要があります。 テンプレート マニフェスト ファイルで定義していない Visual Studio テンプレートは、[新しいプロジェクト] ダイアログまたは [新しい項目] ダイアログに表示されなくなります。 新しい拡張機能ツールは VSIX ビルド時にマニフェストを生成しますが、MSI パッケージの一部として Visual Studio テンプレートをリリースしている場合は、それらのテンプレートのテンプレート マニフェスト ファイルを手動で生成する必要があります。 詳細については、「 Visual Studio 2017 MSDN のカスタム プロジェクトテンプレートと項目テンプレートのアップグレード 」を参照してください。

.NET Core と ASP.NET Core

これには、新しい MSBuild ベースの .NET Core Tools の 1.0 最終リリースが含まれています。 Visual Studio 2017 を使用すると、新しい csproj 形式を使用する .NET Standard ライブラリ、.NET Core アプリ/ライブラリ、ASP.NET Web プロジェクトを作成できます。

.NET Core ツールは、インストーラーの "ASP.NET と Web 開発" ワークロードと ".NET デスクトップ開発" ワークロードのオプション コンポーネントに自動的に含まれます。 クロスプラットフォームで使用する .NET Core アプリケーションのみを開発する場合は、インストーラーの [その他のツールセット] セクションの ".NET Core クロスプラットフォーム開発" ワークロードを使用して、.NET Core および ASP.NET Core ツールのみをインストールできます。

このリリースの大まかな機能は次のとおりです。

  • .NET Core プロジェクトに対する MSBuild のサポート。プロジェクトをアンロードすることなく、手動で簡単に編集できる簡略化された csproj プロジェクト形式です。
  • .NET Core .csproj ファイルの編集は、ソリューション エクスプローラーでプロジェクトを右クリックし、[編集] を選択するのと同じくらい簡単です。
  • プロジェクト ファイルでのファイル ワイルドカードのサポート。すべてのソース コード ファイル名を列挙する必要がないため、csproj ファイルのサイズが小さくなります。
  • NuGet パッケージ参照が csproj ファイルの一部になり、すべてのプロジェクト参照が 1 つのファイルに統合されるようになりました。
  • .NET Core、.NET Standard、および .NET Framework プロジェクト間の相互運用。 たとえば、.NET Core プロジェクトでは、プロジェクト間参照を .NET Standard プロジェクトに追加できます。
  • 1 つのプロジェクトで複数のターゲット フレームワークをクロスターゲットします。
  • 既存の project.json .NET Core プロジェクトは、Visual Studio で開くと自動的に csproj に移行されます。または、.NET コマンド ライン インターフェイス (CLI) を使用して手動で移行することもできます。
  • Docker のサポートと、Visual Studio IDE 内から Azure Container Services への継続的なビルド配信を使用して、ASP.NET Core アプリケーションの継続的なビルド統合を簡単に構成できます。

詳細については 、.NET ブログ を参照してください。

ユニバーサル Windows アプリ開発用ツール

.NET ネイティブ ツールチェーンの更新

この更新された .NET ネイティブ ツールチェーンは、Visual Studio のマネージド UWP アプリのランタイム パフォーマンスを向上させるために、いくつかの最適化を追加します。 このリリースには、主要な顧客のフィードバックに対処し、ツールチェーンの全体的な品質を向上させるための 600 を超えるバグ修正と機能が含まれています。

5.3.0 Microsoft.NETCore.UniversalWindowsPlatform パッケージ

.NET Core NuGet フレームワーク ライブラリに対するこの更新プログラムは、お客様から報告された多くの重要な問題に対処します。 既存の UWP プロジェクトでは、NuGet 参照マネージャーを使用して、この新しいバージョンに更新できます。 さらに、新しい .NET Core パッケージには、.NET ネイティブ ツールチェーンが含まれています。

Windows 10 Anniversary Update SDK とエミュレーター

このリリースには、Windows 10 Anniversary Update 用の Windows SDK および Windows Phone エミュレーターが含まれています。

  • ツールボックスから作成された UI 要素は、XAML タグの数を減らして作成されるようになり、よりわかりやすく、読みやすい XAML になります。
  • XAML デザイナーの新しいオプション ツールを使用すると、開発者は UI テーマとハイ コントラスト設定を選択して、デザイン画面でプレビューできます。
  • [プロパティ] ウィンドウの値エディターで、"60+20" などの単純な数式を受け入れるようになりました。 式は直ちに評価され (この場合は 80)、結果の値は XAML に格納されます。

ビジュアル アセットを作成するためのマニフェスト デザイナー機能

マニフェスト デザイナー (図 45) はビジュアル更新を行い、UWP アプリ用のビジュアル アセットを生成する機能が追加されました。 これで、1 つのソース イメージを使用して、アプリがターゲットとするすべての種類のデバイスに合わせて、任意またはすべてのスケールでタイル、ロゴ、アイコン、スプラッシュ画面を作成できるようになりました。

マニフェスト ビジュアル アセット ジェネレーター
(図 45)マニフェスト ビジュアル アセット ジェネレーター

UI 分析

ユニバーサル Windows プラットフォーム ツールで、アクセシビリティとパフォーマンスに関連する一般的な問題を検出できるようになりました。 [診断ツール] ウィンドウの [ツールの選択] メニューで [UI 分析] ツールを有効にすると、これらの問題が報告され、問題に対処する方法と理由を説明する役立つ記事へのリンクが表示されます。 UI 分析を有効にして開発すると、UI のパフォーマンスとアクセシビリティがアプリケーション開発の最前線にもたらされます。

Xamarin

Xamarin 4.4 は Visual Studio 2017 に含まれています。 詳細については、Xamarin のリリース ノートをご覧ください。

この Xamarin for Visual Studio 4.4 リリースでは、 Xamarin.iOS 10.8 および Xamarin.Android 7.2 リリースが更新されます。

Xamarin のバグ修正

このリリースでは、以下の修正が行われています。

  • iOS 拡張機能アプリは、"権利データを読み取ることができません" というエラーでビルドに失敗します。(4.4.0.31)
  • Watson レポートのシンボルが含まれています。(4.4.0.6)
  • ソリューションに Wix プロジェクトも含まれている場合、Android のデプロイは失敗します。(4.3.1.39)
  • 一部の iOS プロジェクトを開くデッドロック。(4.3.1.39)
  • 第 2 レベルの PCL 参照にブレークポイントがヒットしません。(4.3.1.39)
  • CodeSignNativeLibraries タスクがないための iOS の問題を修正しました。(4.3.1.39)
  • Mac サーバーに接続した後にストーリーボードを開くときにエラーが発生しました。(4.3.1.39)
  • Android クラス ライブラリ プロジェクトには、プロパティ ページに "Android バージョンを使用したコンパイル" のみを含める必要があります。(4.3.1.39)
  • [Tools->Options->Xamarin->Other] タブに移動すると、Visual Studio がハングします。(4.3.1.39)
  • Visual Studio では、一部の環境でクロスプラットフォーム ソリューションの読み込みがハングします。(4.3.1.1)
  • Visual Studio プロジェクト テンプレートで Microsoft.Csharp が参照されていません。(4.3.1.1)
  • 構成された User Shell で bash 構文が使用されていない場合、Mac サーバーに接続できません。(4.3.1.1)
  • [テスト クラウドに送信] オプションがありません (Visual Studio 2013 および Visual Studio 2015 で修正)。(4.3.1.1)
  • 変数/プロパティ名が他のクラス名と同じ場合、デバッガーは混乱します。(4.3.1.1)
  • アセット カタログのイメージ セットの名前を変更することはできません。(4.3.1.1)
  • 'Resources' フォルダーは、ウォッチ拡張機能プロジェクトで強制的に非表示になっています。(4.3.1.1)
  • "Resources" 内の "Assets.xcasset" フォルダーは、tvOS プロジェクトでは非表示になっていません。(4.3.1.1)

Visual Studio Tools for Apache Cordova

この Visual Studio 2017 リリースには、次の機能強化が含まれています。

  • Cordova のシミュレート - 新しいブラウザー ベースのシミュレーターを使用すると、コードをすばやく作成し、ブラウザーですぐに結果を確認できます (図 46)。 ライブ リロード、プラグイン シミュレーション、および Ionic Framework のサポートにより、Visual Studio は市場で最速の開発者ワークフローを提供します。
Cordova のシミュレート
(図 46)Cordova のシミュレート
  • iOS 10 および XCode 8 のサポート - iOS 開発用の remotebuild サーバー エージェントの更新プログラムに、XCode 8 のサポートが含まれるようになりました。

  • エラーの色付け - ビルドエラーを診断するには、多くの場合、開発者がビルド出力を読み取る必要があるため、読みやすくするためにビルド出力ウィンドウでエラーの色付けを開始しました (図 47)。 さらに、ビルド プロセスでエラーが発生した場所を開発者が特定できるように、ビルド プロセスの手順を説明するヘッダーを追加しました。

色分けされたエラー
(図 47)色分けされたエラー
  • 製品内での入手 - Cordova アプリをより迅速にビルドするための新しい軽量インストールに加えて、開発が進むにつれて、Visual Studio 内から追加のビルドピースを取得するための経路が追加されました (図 48)。 Android または Windows コンポーネントをインストールしていない場合は、展開バーを使用してそれらを取得できます。これにより、Visual Studio のセットアップが起動され、インストール プロセスがガイドされます。
製品内購入
(図 48)製品内購入
  • 高速で信頼性の高いビルド - 新しい Visual Studio インストーラーと、サード パーティ製コンポーネントの完全に検証されたツールチェーンのオフライン インストールを組み合わせることで、トラブルシューティングと修正が容易な高速ビルドが提供されます。

Important

Android および Windows 用のビルド ツールとエミュレーターがオプションになりました。 ビルド/配置メニュー バーを使用して動的に取得できます。 Visual Studio のこのリリースでは、Windows ストア 8.1 プロジェクトはサポートされていません。 Cordova プロジェクトを Windows 10 を対象に更新することをお勧めします。 サポートされている Cordova の最小バージョンは 6.0.0 に引き上げられます。 Cordova バージョン 6.0.0 より前のバージョンを対象とするプロジェクトは、Visual Studio 2017 でビルドしてデプロイするために、 config.xml でプロジェクトをアップグレードする必要があります。

Node.js Tools for Visual Studio

Node.js Tools for Visual Studio は、Visual Studio を強力な Node.js 開発環境に変えます。 このリリースでは、安定性、パフォーマンス、および製品の全体的な品質に重点を置いています。次に示します。

  • 新しい Salsa JavaScript 言語サービスとの統合が強化されました。
  • メモリと CPU 使用率が削減され、プロジェクトの読み込み時間が短縮されます。
  • Pug テンプレート ファイルのサポート。
  • その他の up-to-date プロジェクト テンプレート。
  • Mocha 3.x テスト フレームワークのサポート。
  • 多数のバグ修正。

Node.js Tools for Visual Studio のこのリリースを可能にしたすべての素晴らしい共同作成者に感謝します。 詳細については、GitHub のオープン ソース Node.js Tools プロジェクトを参照してください。

Visual Studio Tools for Unity

Visual Studio を使用して、すべてのプラットフォームの Unity ゲームの作成とデバッグを行います。 Visual Studio Tools for Unity 3 (図 49) は、新しい Visual Studio 2017 インストーラーで "Unity でのゲーム開発" ワークロードと共にインストールできるようになりました。 Visual Studio Tools for Unity 3 では、Unity 開発者向けのコード編集とデバッグのエクスペリエンスと、次のような全体的な製品品質の向上に重点を置いています。

  • Unity メッセージに対する IntelliSense のサポート。
  • Unity メッセージのコードの色付け。
  • Unity デバッガーでの式の評価が改善されました。
  • メッセージを受信できるすべての Unity の種類をサポートするように Unity メッセージ ウィザードが改善されました。
  • 多数のバグ修正と最適化。
Unity メッセージのコード補完セッション
(図 49)Unity メッセージのコード補完セッション

Redgate

Visual Studio に含まれる Redgate Data Tools

Visual Studio 2017 DevOps 機能を SQL Server データベース開発に拡張するために、Redgate SQL Prompt Core、Redgate SQL Search、Redgate ReadyRoll Core で構成される Redgate Data Tools がデータ ストレージと処理ワークロードで使用できるようになりました。

  • Visual Studio Enterprise 2017 に含まれる Redgate ReadyRoll Core は、移行スクリプトの開発、ソース管理を使用したデータベースの変更の管理、およびアプリケーションの変更と共に SQL Server データベースの変更のデプロイを安全に自動化するのに役立ちます。
  • Visual Studio Enterprise 2017 に含まれる Redgate SQL Prompt Core は、インテリジェントなコード補完の助けを借りて、SQL をより迅速かつ正確に記述するのに役立ちます。 SQL Prompt は、データベースとシステム オブジェクトとキーワードをオートコンプリートし、入力時に列の候補を提供します。 これにより、すべての列名やエイリアスを覚える必要がないため、コードがクリーンになり、エラーが少なくなります。
  • Redgate SQL Search は、Visual Studio 2017 のすべてのエディションに含まれており、複数のデータベース間で SQL フラグメントとオブジェクトをすばやく検索できるため、生産性が向上します。

NuGet

Visual Studio 2017 には NuGet 4.0 が含まれています。 このリリースは、大多数のプロジェクトの種類、品質の向上、およびパフォーマンスの向上のためのパッケージ 参照のサポートに重点を置いています。

  • WPF、WindowsForms、UWP プロジェクトでは、パッケージ参照を使用して パッケージを管理できるようになりました。
  • 軽量ソリューション復元の NuGet 復元のサポートが改善されました。 プロジェクトを読み込む必要なく復元を実行できるようになりました。
  • .NET Core および ASP.NET Core プロジェクトでは、パッケージ参照を使用して パッケージが管理されるようになりました。
  • Visual Studio 2017 以降では、マシン全体の NuGet.config が %PROGRAMFILES(X86)%\NuGet\Config\NuGet.config. Going forward, nuget.exe v4.0.0 以降に配置され、マシン全体の構成の新しい場所も考慮されます。 プログラム データ内の NuGet.config は、nuget.configの階層マージのために暗黙的に参照されたり、考慮されたりしなくなります。

XAML アプリ用ツール

XAML エディット コンティニュ

Visual Studio では、WPF またはユニバーサル Windows アプリの実行中に XAML を編集できるようになりました。 Visual Studio でアプリをデバッグするときに、XAML コード エディターでマークアップに変更を加えることができます。変更は、再コンパイルしなくても実行中のアプリに反映されます。

XAML エディターの生産性の強化

  • IntelliSense フィルター処理 - XAML と入力すると、入力候補リストに一致する型のみが表示され、最も近い一致が選択されます。
  • x:Bind の IntelliSense - パスとイベントにバインドするときに、x:Bind の IntelliSense 補完を有効にしました。
  • 名前空間の入力候補 - 名前空間への参照が存在しない場合 (図 50)、入力中に IntelliSense がサポートされません。 入力が完了すると、型のプレフィックスを生成して挿入し、XAML ドキュメントに名前空間定義を追加するための電球候補のサポートが表示されます。
IntelliSense_without_namespaceのコード補完セッション
(図 50)IntelliSense_without名前空間
  • プレフィックスを必要とする型の場合、名前空間への参照が既に存在する場合、IntelliSense によってプレフィックスのオートコンプリートが提供されます。

  • 名前空間プレフィックスの名前変更リファクタリング - コンテキスト メニューから名前変更アクション (図 51) を呼び出すか、カーソルがプレフィックス上にあるときにキーボード ショートカット Ctrl+R+R を使用できます。 変更を適用する前にプレビューすることもできます。
名前空間プレフィックスの名前変更
(図 51)名前空間プレフィックスの名前変更

  • 名前空間の削除と並べ替え - 不要な名前空間を削除し (図 52) 、コンテキスト メニューから、またはキーボード ショートカット Ctrl+R+Gを使用して並べ替えることができます。 XAML ドキュメントに不要な名前空間がある場合は、それらを削除するオプションを提供する電球も表示されます。
不要な名前空間をlightbulb_removeする
(図 52) 不要な名前空間lightbulb_remove

  • XAML エディターに対する .editorconfig のサポート - .editorconfig ファイルでindent_style、indent_size、およびtab_widthの設定を定義できます。これは、[ ツール] > オプションで定義されている設定の代わりに使用されます。

  • XAML エディター用の構造体ビジュアライザー - 構造ビジュアライザー (インデント ガイドなど) (図 53) が Visual Studio に組み込まれるようになり、別の拡張機能は必要ありません。 この機能は、スクロールせずに作業しているコード ブロックのコンテキストを一目で確認できます。

XAML エディター用構造体ビジュアライザー
(図 53)XAML エディター用構造体ビジュアライザー

XAML パフォーマンスの向上

  • XAML タブ スイッチのパフォーマンスの向上 - XAML タブ スイッチのパフォーマンスが大幅に向上しました。 サンプルのお客様のプロジェクトでは、切り替え時間が 90%を超える削減を見てきました。
  • XAML エディターの入力遅延に対処する - XAML の入力がこれまで以上に高速になりました。 XAML エディターの入力遅延を減らすためにいくつかの投資を行いました。ほとんどの開発者は、XAML エディターと XAML IntelliSense の応答性を高める必要があります。 これは、サード パーティ製のコントロールまたは大規模なコントロール ライブラリを使用するプロジェクトで XAML ファイルを編集する場合に最も明確になります。

データ ツールと SQL Server

SQL Server データ ツール

SQL Server Data Tools の最新の更新プログラムが Visual Studio 2017 に含まれています。これにより、Azure SQL Database および の最新機能がサポートされます。

このリリースでは、Visual Studio を使用することで、サポートされているすべてのバージョンの SQL Server とデータベース プラットフォーム (オンプレミスとクラウドの両方) でデータベースを簡単に開発、テスト、デプロイできます。 このリリースには、データベースプログラミングの面の機能強化も含まれており、SQL Server Data Tools の SQL 接続エクスペリエンスが向上します。これにより、簡単なクリックで接続できる SQL Server と Azure SQL Database が自動的に検出されます。

さらに、Visual Studio 2017 では、新しい Azure SQL Database 認証の種類に加え、Azure Active Directory 統合認証とパスワード認証にも対応しています。

Developer Analytics ツール

Visual Studio 2017 には Developer Analytics Tools v8.6 が含まれています。次の点が改善されています。

  • CodeLens では、Application Insights リソースにデータを送信するプロジェクトのデバッグ テレメトリ データとライブ テレメトリ データの両方が表示されるようになりました。
  • 例外の CodeLens は、例外のユーザーの影響を示す Application Analytics へのリンクです。
  • CodeLens では、Application Insights SDK を使用したプロジェクト内のローカル デバッグ セッションからの要求が表示されます。
  • Visual Basic プロジェクトから要求と例外の CodeLens を使用できるようになりました。
  • Visual Studio からアプリを発行した後、ライブ メトリックがトースト通知に表示されるようになりました。
  • Application Insights の価格情報が [構成] ウィンドウに表示されるようになりました。
  • 可用性イベントが検索ツールと傾向ツールに表示されるようになりました。
  • 検索および診断ツールのイベントに、SDK のアダプティブ サンプリングに基づいて発生した頻度の数が表示されるようになりました。
  • CodeLens には、Application Insights SDK を使用したプロジェクトのローカル デバッグ セッション中に発生した例外が表示されます。
  • Application Insights 構成ウィンドウの新しいデザイン。
  • 例外の CodeLens に Application Analytics へのリンクが追加され、例外がユーザーに与えた影響を確認できるようになりました。
  • Application Insights がプロジェクトに追加されると、ページ ビューテレメトリを収集するための Application Insights JavaScript SDK が追加されるようになりました。
  • Visual Studio からアプリを発行すると、発行注釈が Application Insights リソースに送信されるようになりました。
  • 赤と黄色の Application Insights CodeLens インジケーターのスクロール バー マーカーが表示されるようになりました。

Application Insights の詳細については、 Microsoft Azure のドキュメントを参照してください

Visual Studio 用 Office 開発者ツール

このリリースには、次のような最新の機能と更新プログラムを含む Office Developer Tools が含まれています。

  • Excel、Word、PowerPoint、Outlook に固有の新しい Office アドイン テンプレート。
  • アドイン コマンド、ファブリック UI、新しいバージョンの Office.jsなど、新しい Office アドイン機能のサポート。
  • 新しい Office アドイン機能の使用を開始する方法を紹介するテンプレートの新しいスターター コード。
  • SharePoint ソリューションおよびアドイン テンプレートでの SharePoint 2016 のサポート。

ライブ アーキテクチャの依存関係の検証

Visual Studio Enterprise で依存関係検証図 (レイヤー 図とも呼ばれます) を設定した場合、コード エディターでコードを入力すると、アーキテクチャ依存関係ルールの違反に関するリアルタイム通知 (図 54) が表示されるようになりました。 エラーがエラー一覧に表示され、テキスト エディターに違反の正確な場所を示す波線が表示されます。 不要な依存関係が導入される可能性が低くなりました。

ライブ アーキテクチャの依存関係の検証
(図 54)ライブ アーキテクチャの依存関係の検証

開発者コマンド プロンプト

Visual Studio 2017 開発者コマンド プロンプト スクリプトは、新しいインストール エクスペリエンスをサポートするようにリファクタリングされました。

  • 環境変数には、インストールされているワークロードのみが反映されます。
  • Visual Studio 開発者コマンド プロンプトのショートカットは、以前のリリースと互換性がある必要があります。
  • コマンド ライン引数を使用して開発者コマンド プロンプト スクリプトを構成できるようになりました。
    • コマンド プロンプトで、(Visual Studio インストール ディレクトリから) common7\tools\vsdevcmd.bat -help を呼び出して詳細を確認します。

Azure SDK for .NET

Azure SDK for .NET Visual Studio を新しい Visual Studio インストーラーと共にインストールできるようになりました。 以前に Web プラットフォーム インストーラーを使用して Azure SDK for .NET をインストールした場合は、新しい Visual Studio インストーラーを使用して Azure ワークロードをインストールすることで、同じコンポーネントを取得できるようになりました。 インストールされるパッケージは、SDK の 2.9.5 バージョンと同じ機能レベルです。 このバージョンの Visual Studio と今後のすべてのバージョンでは、Azure SDK for .NET は Visual Studio インストーラーからのみ使用できます。


リリース ノート アイコン Visual Studio 2017 バージョン 15.0.1

リリース日: 2017 年 3 月 14 日

15.0.1 で修正された上位の問題

15.0.1 で対処された、お客様から報告された問題を次に示します。


リリース ノート アイコン Visual Studio 2017 バージョン 15.0.2

リリース日: 2017 年 3 月 28 日

15.0.2 で修正された上位の問題

15.0.2 で対処された、お客様から報告された問題を次に示します。


リリース ノート アイコン Visual Studio 2017 バージョン 15.0.3

リリース日: 2017 年 3 月 31 日

15.0.3 の更新プログラムの概要

Xamarin.VS Extension for Visual Studio 2017 では、Xcode 8.3、iOS 10.3、watchOS 3.2、および tvOS 10.2 のツールと API がサポートされるようになりました。


リリース ノート アイコン Visual Studio 2017 バージョン 15.0.4

リリース日: 2017 年 5 月 23 日

15.0.4 で修正された上位の問題

オフライン インストール シナリオでは、インターネット アクセスが不要になります。


リリース ノート アイコン Visual Studio 2017 バージョン 15.0.5

リリース日: 2017 年 9 月 18 日

15.0.5 で修正された上位の問題

15.0.5 で対処された、お客様から報告された問題を次に示します。


リリース ノート アイコン Visual Studio 2017 バージョン 15.0.6

リリース日: 2017 年 11 月 14 日

15.0.6 の更新プログラムの概要

Visual Studio 2017 バージョン 15.0 のセキュリティ アドバイザリに関する通知

Microsoft は、.NET Core および ASP.NET Core のセキュリティ アドバイザリをリリースしました。 詳細については、.NET Core および ASP.NET Core のリポジトリの該当するお知らせを参照してください。 次の情報にご注意ください。

CVE-2017-8585 証明書の形式が正しくないと、サービス拒否が発生する可能性があります

.NET Core 1.0、1.1、2.0 にはセキュリティ上の脆弱性があり、形式が正しくない証明書またはその他の ASN.1 形式のデータが Linux および macOS の無限ループを通じてサービス拒否につながる可能性があります。 システム管理者は、.NET Core ランタイムをバージョン 1.0.8、1.1.5、2.0.1 に更新することをお勧めします。 開発者は、.NET Core SDK をバージョン 2.0.3 または 1.1.5 に更新することをお勧めします。

CVE-2017-8700 CORS バイパスを使用すると、情報漏えいを有効にすることができます

ASP.NET Core 1.0 と 1.1 にはセキュリティ上の脆弱性があり、クロスオリジン リソース共有 (CORS) をバイパスして情報漏えいにつながる可能性があります。

CVE-2017-11879 Open Redirect は特権の昇格を引き起こす可能性があります

ASP.NET Core 2.0 には、オープン リダイレクトが存在し、特権の昇格につながるセキュリティの脆弱性があります。

CVE-2017-11770 サービス拒否の脆弱性

ASP.NET Core 1.0、1.1、2.0 でアプリケーションが Windows Http.Sys を介してホストされている場合、不正な要求によってサービス拒否が発生する可能性があるセキュリティの脆弱性があります。 ASP.NET Core 1.0 と ASP.NET Core 1.1 で作成された新しいプロジェクトでは、上記のセキュリティ更新プログラムを含むパッケージ バージョンが使用されるようになりました。 既存のプロジェクトの場合、ユーザーは [NuGet パッケージの管理] ダイアログを使用してパッケージを新しいバージョンに更新することができます。


リリース ノート アイコン Visual Studio 2017 バージョン 15.0.7

リリース日: 2017 年 12 月 6 日

15.0.7 の更新プログラムの概要

Visual Studio 2017 バージョン 15.0 セキュリティ アドバイザリに関する通知

Microsoft は、ASP.NET Core のセキュリティ アドバイザリをリリースしました。 詳細については、 ASP.NET Core リポジトリの対応するお知らせを参照してください。 次の情報にご注意ください。

CVE-2017-8700 CORS バイパスを使用すると、情報漏えいを有効にすることができます

ASP.NET Core 1.0 と 1.1 にはセキュリティ上の脆弱性があり、クロスオリジン リソース共有 (CORS) をバイパスして情報漏えいにつながる可能性があります。 ASP.NET Core 1.0 と ASP.NET Core 1.1 で作成された新しいプロジェクトでは、上記のセキュリティ更新プログラムを含むパッケージ バージョンが使用されるようになりました。 既存のプロジェクトの場合、ユーザーは [NuGet パッケージの管理] ダイアログを使用してパッケージを新しいバージョンに更新することができます。


リリース ノート アイコン Visual Studio 2017 バージョン 15.0.8

リリース日: 2018 年 1 月 9 日

15.0.8 の更新プログラムの概要

Visual Studio 2017 バージョン 15.0 のセキュリティ アドバイザリに関する通知

CVE-2018-0786 X509 証明書検証のセキュリティ機能バイパス

Microsoft では、.NET Core 1.0 および 1.1 および 2.0 のパブリック バージョンの脆弱性に関する情報を提供するために、このセキュリティ アドバイザリをリリースしています。 このアドバイザリでは、開発者がアプリケーションを正しく更新するために何ができるかに関するガイダンスも提供します。 このセキュリティ アドバイザリは、UWP 用の .NET ネイティブにも適用されます。

Microsoft は、特定の用途で無効とマークされた証明書を攻撃者が提示する可能性がある .NET Core のパブリック バージョンのセキュリティの脆弱性を認識していますが、コンポーネントはその目的のためにそれを使用します。 このアクションは、拡張キー使用法のタグ付けを無視します。

このセキュリティ更新プログラムは、.NET Core コンポーネントが証明書を完全に検証することで、この脆弱性を解決します。 システム管理者は、.NET Core ランタイムをバージョン 1.0.9、1.1.6、2.0.5 に更新することをお勧めします。 開発者は、.NET Core SDK をバージョン 2.1.4 または 1.1.7 に更新することをお勧めします。

CVE-2018-0764 XML ドキュメントの解析時のサービス拒否

Microsoft では、.NET Core 1.0 および 1.1 および 2.0 のパブリック バージョンの脆弱性に関する情報を提供するために、このセキュリティ アドバイザリをリリースしています。 このアドバイザリでは、開発者がアプリケーションを正しく更新するために何ができるかに関するガイダンスも提供します。

Microsoft は、XML ドキュメントの不適切な処理により、.NET Core のすべてのパブリック バージョンでサービス拒否の脆弱性を認識しています。 攻撃者がこの脆弱性を悪用すると、.NET アプリケーションに対してサービス拒否が発生する可能性があります。 認証されていないリモートの攻撃者は、特別に細工された要求を .NET Core アプリケーションに発行することにより、この脆弱性を悪用する可能性があります。

この更新プログラムは、.NET Core による XML ドキュメント処理の処理方法を修正することで、この脆弱性を解決します。 システム管理者は、.NET Core ランタイムをバージョン 1.0.9、1.1.6、2.0.5 に更新することをお勧めします。 開発者は、.NET Core SDK をバージョン 2.1.4 または 1.1.7 に更新することをお勧めします。


リリース ノート アイコン Visual Studio 2017 バージョン 15.0.9

リリース日: 2018 年 2 月 2 日

15.0.9 の更新プログラムの概要

  • MSVC コンパイラが更新され、/Qspectre スイッチがサポートされました。これは、コンパイラが Spectre バリアント 1 のインスタンスを検出したときに自動的に投機バリアを挿入します。 /Qspectre の詳細については、 Visual C++ チーム ブログを参照してください。
  • ダウンロード エラーを修正するために、Java™ Development Kit 8 Update 161 (JDK バージョン 8u161) に更新しました。

リリース ノート アイコン Visual Studio 2017 バージョン 15.0.10

リリース日: 2018 年 2 月 21 日

15.0.10 の更新プログラムの概要

チーム エクスプローラーでは、TLSv1.2 がサポートされています。 Visual Studio に付属する Git および Git Credential Manager コンポーネントが更新されました。 オプションの Git for Windows コンポーネントも更新されました。 この更新プログラムにより、Git は TLSv1 と TLSv1.1 のサポートが非推奨になったサービスに接続でき、TLSv1.2 が優先されます。


リリース ノート アイコン Visual Studio 2017 バージョン 15.0.11

リリース日: 2018 年 3 月 13 日

15.0.11 の更新プログラムの概要

Visual Studio 2017 バージョン 15.0 セキュリティ アドバイザリに関する通知

CVE-2018-0875 .NET Core の Microsoft セキュリティ アドバイザリ

Microsoft は、.NET Core のパブリック バージョンに存在するセキュリティ上の脆弱性を認識しています。このバージョンでは、悪意のあるファイルや Web 要求によってサービス拒否 (DoS) 攻撃が引き起こされる可能性があります。

  • システム管理者は、.NET Core ランタイムをバージョン 1.0.10、1.1.7、2.0.6 に更新することをお勧めします。 開発者は、.NET Core SDK をバージョン 1.1.8 または 2.1.101 に更新することをお勧めします。

リリース ノート アイコン Visual Studio 2017 バージョン 15.0.12

リリース日: 2018 年 4 月 10 日

15.0.12 の更新プログラムの概要

Visual Studio 2017 バージョン 15.0 セキュリティ アドバイザリに関する通知

CVE-2018-1037 Microsoft Visual Studio の情報漏えいの脆弱性に関する Microsoft セキュリティ アドバイザリ

Visual Studio でプログラム データベース (PDB) ファイルをコンパイル中に制限されていないメモリの内容が不適切に開示される場合に、情報漏えいの脆弱性が存在します。 この情報開示を利用した攻撃者は、PDB ファイルのコンパイルに使用された Visual Studio インスタンスから、初期化されていないメモリを閲覧することができます。

攻撃者がこの脆弱性を利用するには、脆弱なバージョンの Visual Studio を使用して作成された、影響を受ける PDB ファイルにアクセスする必要があります。 攻撃者は開発者に対して、この情報漏えいを強制的に実行させることはできません。

このセキュリティ更新プログラムは、プロジェクトのコンパイル時に PDB ファイルが生成される方法を修正することにより、この脆弱性を解決します。


リリース ノート アイコン Visual Studio 2017 バージョン 15.0.13

リリース日: 2018 年 4 月 26 日

15.0.13 の更新プログラムの概要

  • Java™ Development Kit 8 Update 172 (JDK バージョン 8u172) に更新しました。

リリース ノート アイコン Visual Studio 2017 バージョン 15.0.14

リリース日: 2018 年 5 月 31 日

15.0.14 の更新プログラムの概要

Visual Studio 2017 バージョン 15.0 セキュリティ アドバイザリに関する通知

CVE-2018-11235 Git のセキュリティの脆弱性に関するマイクロソフト セキュリティ アドバイザリ

Git コミュニティで明らかになった Git のセキュリティ上の脆弱性を修正しました。 この脆弱性は、ユーザーが悪意のあるリポジトリを複製した場合に、任意のコード実行を引き起こす可能性がありました。


リリース ノート アイコン Visual Studio 2017 バージョン 15.0.15

リリース日: 2018 年 7 月 10 日

15.0.15 の更新プログラムの概要

Visual Studio 2017 バージョン 15.0 のセキュリティ アドバイザリに関する通知

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

特別に作成されたプロジェクト、またはリソース ファイルを開くことで、ユーザーのコンピューターの悪用につながる可能性のある、リモート コード実行の脆弱性。 このセキュリティ更新プログラムは、Visual Studio でのファイルのソース マークアップの確認方法を修正することで、脆弱性に対処します。

CVE-2018-8260 .NET Framework のリモート コード実行の脆弱性

.NET ソフトウェアにはリモート コード実行の脆弱性が存在します。そのため、攻撃者は現在のユーザーのコンテキストで任意のコードを実行することができ、ユーザーのコンピューターの悪用につながる可能性があります。 このセキュリティ更新プログラムは、.NET でのファイルのソース マークアップの確認方法を修正することで、脆弱性に対処します。

CVE-2018-8232 .NET Microsoft Macro Assembler の改ざんの脆弱性

Microsoft Macro Assembler で正しくコードが検証されないことに関する改ざんの脆弱性 このセキュリティ更新プログラムは、確実に Microsoft Macro Assembler でコード ロジックが正しく検証されるようにすることで、脆弱性に対処します。

CVE-2018-8171 ASP.NET Core のセキュリティ機能バイパスの脆弱性

ASP.NET Core にはセキュリティ機能バイパスの脆弱性が存在します。不適切なログイン試行の回数が検証されず、攻撃者による無限の認証試行につながる可能性があります。 この更新プログラムは、不適切なログイン試行の回数を検証することで、脆弱性に対処します。


リリース ノート アイコン Visual Studio 2017 バージョン 15.0.16

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

15.0.16 の更新プログラムの概要

  • このリリースにより、Java™ Development Kit 8 Update 181 (JDK バージョン 8u181) がインストールされました。

Visual Studio 2017 バージョン 15.0 セキュリティ アドバイザリに関する通知

CVE-2018-8356 .NET Core のセキュリティ機能バイパスの脆弱性

Microsoft は .NET Core が証明書を適切に検証しない場合に存在するセキュリティ機能バイパスの脆弱性を認識しています。 この脆弱性の悪用に成功した攻撃者は、チャレンジの際に有効期限が切れた証明書を提示することができました。 この更新プログラムでは、.NET Core による証明書の検証方法を修正することにより、脆弱性を解決します。


リリース ノート アイコン Visual Studio 2017 バージョン 15.0.17

リリース日: 2018 年 8 月 14 日

15.0.17 の更新プログラムの概要

Visual Studio 2017 バージョン 15.0 セキュリティ アドバイザリに関する通知

CVE-2018-0952 Diagnostic Hub Standard Collector の特権の昇格の脆弱性

Visual Studio サービスに特権の昇格の脆弱性が存在し、ファイルの書き込み時に管理者以外のユーザーによるシステム特権が発生する可能性があります。 これを利用した攻撃者は、ユーザー レベルのアクセス権のみを持ちながら、ファイルをシステムとして書き込む可能性があります。 このセキュリティ更新プログラムは、現在のユーザーを偽装してファイルの場所へのアクセスを検証することで、この問題に対処します。


リリース ノート アイコン Visual Studio 2017 バージョン 15.0.18

リリース日: 2018 年 8 月 28 日

15.0.18 で修正された上位の問題


既知の問題

ご意見とご感想はすべて参考にさせていただいております。 開発者コミュニティ サイトにアクセスして、最新の問題を検索したり、新しい問題を投稿したり、既存の問題を更新したりします。


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

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