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


開発者コミュニティ | システム要件 | 互換性 | 再頒布可能コード | ライセンス条項 | ブログ | 既知の問題



Note

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



フィードバックと提案

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

サポート期間

Visual Studio 2017 バージョン 15.0 の Enterprise および Professional のユーザーは、2020 月 1 月までサポートされ、セキュリティの脆弱性に対する修正を受け取ります。 この期間は、2018 年 10 月に Visual Studio 2017 バージョン 15.9 が、Visual Studio 2017 製品の最後のサービス ベースラインとして指定されたことによって決定されました。 my.visualstudio.com のダウンロードのセクションで、Visual Studio 2017 の最も安全な最新バージョンを入手できます。  Visual Studio でサポートされるベースラインの詳細については、Visual Studio 2017 のサポート ポリシーに関するページを参照してください。 

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


リリース履歴


Release Notes IconVisual 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 のリモート実行脆弱性

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 を使用して脆弱性に対処します。


Release Notes IconVisual Studio 2017 バージョン 15.0 (26228.98)

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

Visual Studio 2017 バージョン 15.0 セキュリティ アドバイザリ メモ

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

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


Release Notes IconVisual Studio 2017 バージョン 15.0 (26228.96)

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

Visual Studio 2017 バージョン 15.0 セキュリティ アドバイザリ メモ

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

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


Release Notes IconVisual 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 の記事をご覧ください。


Release Notes IconVisual Studio 2017 バージョン 15.0 (26228.88)

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

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


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


Release Notes IconVisual 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 インストーラーが更新されました。


Release Notes IconVisual Studio 2017 バージョン 15.0 (26228.73)

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

Visual Studio 2017 バージョン 15.0 セキュリティ アドバイザリ メモ

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

特定の型を参照する XOML ファイルを Visual Studio で開くと、ランダムなコードが実行される場合があります。 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 のリリース ノートを参照してください。


Release Notes IconVisual Studio 2017 バージョン 15.0 (26228.64)

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

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

  • Azure DevOps ユーザーがそのプロジェクト名やリポジトリ名に空白を含めていた場合、チーム エクスプローラーで複製や発行を行うとエラーが発生します。

Visual Studio 2017 バージョン 15.0 セキュリティ アドバイザリ メモ

CVE-2018-8599 Diagnostics Hub Standard Collector Service の特権の昇格の脆弱性

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


Release Notes IconVisual 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 リダイレクトへの対応方法を修正することで、脆弱性に対処します。


Release Notes IconVisual Studio 2017 バージョン 15.0 (26228.52)

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

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


Release Notes IconVisual Studio 2017 バージョン 15.0 (26228.49)

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

Visual Studio 2017 バージョン 15.0 セキュリティ アドバイザリ メモ

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

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


Release Notes IconVisual 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 による証明書の検証方法を修正することにより、脆弱性を解決します。


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


Release Notes IconVisual Studio 2017 バージョン 15.0 (26228.37)

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

Visual Studio 2017 バージョン 15.0 セキュリティ アドバイザリ メモ

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

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


Release Notes IconVisual Studio 2017 バージョン 15.0 (26228.31)

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

このリリースの更新の概要

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

Release Notes IconVisual Studio 2017 バージョン 15.0 (26228.30)

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

Visual Studio 2017 バージョン 15.0 セキュリティ アドバイザリ メモ

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

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

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

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


Release Notes IconVisual Studio 2017 バージョン 15.0 (26228.29)

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

Visual Studio 2017 バージョン 15.0 セキュリティ アドバイザリ メモ

CVE-2018-0875 .NET Core のマイクロソフト セキュリティ アドバイザリ

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 に更新することをお勧めします。

Release Notes IconVisual 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 が採用されている場合にも、この変更でそのサービスに接続できるようになります。


Release Notes IconVisual Studio 2017 バージョン 15.0 (26228.23)

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

このリリースの更新の概要

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

Release Notes IconVisual Studio 2017 バージョン 15.0 (26228.21)

2018 年 1 月 9 日のリリース

Visual Studio 2017 バージョン 15.0 セキュリティ アドバイザリ メモ

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

Microsoft は、パブリック バージョンの .NET Core 1.0、.NET Core 1.1、.NET Core 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 ドキュメントを解析する際のサービス拒否

Microsoft は、パブリック バージョンの .NET Core 1.0、.NET Core 1.1、.NET Core 2.0 の脆弱性に関する情報を提供するために、このセキュリティ アドバイザリをリリースします。 またこのアドバイザリでは、アプリケーションを正しく更新する上で開発者が実行する必要のある操作に関するガイダンスも提供します。

Microsoft は、.NET Core のすべてのパブリック バージョンにおいて、XML ドキュメントの不適切な処理が原因でサービス拒否の脆弱性が発生することを認識しています。 攻撃者がこの脆弱性を悪用して、.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 に更新することをお勧めします。


Release Notes IconVisual 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 のバイパスによる情報漏えいの可能性

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


Release Notes IconVisual 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 のバイパスによる情報漏えいの可能性

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

CVE-2017-11879 オープン リダイレクトによる特権の昇格の可能性

オープン リダイレクトが存在する 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 パッケージの管理] ダイアログを使用してパッケージを新しいバージョンに更新することができます。


Release Notes IconVisual Studio 2017 バージョン 15.0 (26228.16)

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

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


Release Notes IconVisual Studio 2017 バージョン 15.0 (26228.13)

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

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

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


Release Notes IconVisual Studio 2017 バージョン 15.0 (26228.12)

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

このリリースの更新の概要

Xcode 8.3、iOS 10.3、watchOS 3.2、および tvOS 10.2 ツールおよび Visual Studio 2017 用 Xamarin.VS 拡張機能の API がサポートされるようになりました。


Release Notes IconVisual Studio 2017 バージョン 15.0 (26228.10)

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

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

以下は、ビルド 26228.10 で対処された、ユーザーから報告された問題です。


Release Notes IconVisual Studio 2017 バージョン 15.0 (26228.09)

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

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

以下は、ビルド 26228.09 で対処された、ユーザーから報告された問題です。


Release Notes IconVisual Studio 2017 バージョン 15.0 (26228.04)

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

このリリースの更新の概要

開発: すばやくコードの各部に移動し、記述や修正を行う

  • 新しいインストールでは、最小フットプリントが減ったことでインストールが高速になり、カスタマイズ性が向上しました。また、オフライン インストールがサポートされるようになりました。
  • Visual Studio IDE によって Visual Studio 2017 がさまざまな面で改善されました。たとえば、起動時間とソリューションの読み込み時間の短縮、サインインと ID の強化、コード ナビゲーションとフォルダー ビュー表示の向上が実現されています。また、接続済みサービスを使用すれば、アプリをオンプレミスまたはクラウドの任意のサービスと接続できます。
  • Visual C++ 2015 と 2017 の間で互換性に影響する変更はありません。 C++14 の一致レベル、CMake サポート、ビルドのスループット、エディターの生産性が改善されました。
  • C# と Visual Basic では、新しい C# 7.0 と Visual Basic 15 の言語機能のサポートが増えました。新しいリファクタリングが導入され、1 回の操作でソース コードを整理できるようになりました。
  • F# では F# 4.1 言語機能がサポートされるようになり、F# コンパイラと FSharp.Core が改善され、Roslyn Workspaces に基づく新しいエディターが導入されました。
  • JavaScript と TypeScript では、TypeScript 2.1 を Visual Studio のすべての TypeScript プロジェクトに使用できます。 新しい JavaScript 言語サービスが既定で有効になっています。

デバッグ: デバッグ、プロファイル、診断が簡単に

デバッグと診断では例外ヘルパーが大幅に見直され、クリックで実行するコード ナビゲーションがより高速になりました。 また、[診断ツール] ウィンドウにアプリケーション イベントの新しい概要が表示されるようになり、CPU ツールにいくつかの機能強化が行われました。

テスト: 包括的なテスト ツールで高品質のコードを作成する

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

共同作業: バージョン コントロールを使用した、迅速で、効率的な共同作業

  • チーム エクスプローラーの新しい Git 機能と新しくなった接続機能。Visual Studio 2017 で Git の機能が増えました。接続するプロジェクトやリポジトリを簡単に見つけることができます。
  • Visual Studio のフィードバック ワークフローが強化され、共同作業の問題の報告機能が増えました。 すべてのフィードバックについて、検索、追跡、投票、最新の更新プログラムの入手が可能になりました。

拡張: 独自の拡張機能を開発し、好みに応じてカスタマイズ

  • Visual Studio 拡張機能: 独自の拡張機能を開発し、好みに合わせて Visual Studio をカスタマイズできます。
  • プロジェクト テンプレートと項目テンプレートの検出性: テンプレート検出のパフォーマンス向上のため、Visual Studio によるプロジェクト テンプレートと項目テンプレートの使用方法が大きく変更されています。

装備: ツールを利用して生産性を上げ、新しい機能を最大限に活用します。

  • .NET Core と ASP.NET Core: これには、新しい MSBuild をベースとする .NET Core ツールの最終リリース 1.0 が含まれています。 Visual Studio 2017 を利用し、.NET Standard ライブラリ、.NET Core アプリ/ライブラリ、新しい csproj 形式を利用する 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 インストーラーから、Visual Studio Tools for Unity 3 を "Unity によるゲーム開発" ワークロードと共に入手できるようになりました。
  • Redgate Data Tools: DevOps 機能を SQL Database 開発に拡大するために、Visual Studio に Redgate Data Tools が追加されました。このツールは、Redgate ReadyRoll Core、SQL Search、SQL Prompt Core で構成されています。
  • NuGet: NuGet では、推移的パッケージ参照の長所を維持しながら、パッケージ参照など、プロジェクト ファイルにパッケージ依存関係情報を直接保存できるようになりました。
  • XAML アプリ用のツール: XAML ランタイム ツール バーでフォーカスを追跡できるようになりました。 XAML のエディット コンティニュ、XAML エディターの機能強化、およびパフォーマンスの最適化により、XAML の生産性が向上しています。
  • Data Tools および 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) の新機能の詳細

What's New in This Release IconVisual Studio 2017 バージョン 15.0 (26228.04) の詳細

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

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

新しいインストーラーが導入されました。このインストーラーは、次のことを目的として新しく設計されました。

  • Visual Studio の最小フットプリントの縮小
  • より高速でシステムへの影響がより少ないインストールと、クリーンなアンインストール
  • 必要な機能だけを簡単に選んでインストールできる

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

The new installation experience in Visual Studio 2017
(図 1) Visual Studio 2017 での新しいインストール エクスペリエンス

最小のインストールはわずか数百 MB ですが、それでもソース コード管理など、20 を超える言語の基本的なコード編集サポートが含まれます。 ほとんどのユーザーはさらに多くの機能のインストールを望みます。 .NET のデスクトップ開発から Unity でのゲーム開発まであらゆるものをカバーする、一般的なフレームワーク、言語、プラットフォームを表す "ワークロード" を 1 つ以上追加できます。

Visual Studio を更新する方法

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

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

新しいインストーラー クライアントのタイトル バーの右上隅にある [問題点の報告][提案の送信] コマンドを使用して、問題点や良い点をお知らせください。 インストール、アンインストール、インストールの変更でエラーが発生したかどうか、および異常なインストール時間 (ハングなど) や予期しないエラー メッセージについてご連絡ください。

オフライン インストールのレイアウトの作成と新しいコマンド ライン インストールのサポート

システム管理者およびその他のユーザーは、Visual Studio のオフライン レイアウトを作成できるようになりました。インターネットへのアクセスを必要とせず、製品のインストールに必要なすべてのコンテンツを含むものです。 このレイアウトは製品全体であったり、ワークロードやコンポーネントのサブセットであったり、1 つ以上の製品ロケールである場合があります。 オフラインのレイアウトの作成にはインターネットへのアクセスが必要であることに注意してください。 詳細については、「Create an offline installation of Visual Studio 2017 (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 インストーラーでは、Visual Studio 用 GitHub 拡張機能を選択できます。
  • すべてのプロジェクトの再読み込みは、[ソリューションの再読み込み] に置き換わり、外部の分岐を Visual Studio に切り替えるときのパフォーマンスが改善されました。 パフォーマンスを最大限に改善するには、Git コマンド ラインを使用して分岐を切り替えるときに、分岐を切り替えた後に [ソリューションの再読み込み] を選択します。
  • .NET Core プロジェクトと ASP.NET Core プロジェクトのファイル グロビング機能が強化されました。 詳細については、プロジェクト ファイル グロビングに関するページを参照してください。
  • これで、複製後、自動的にリポジトリのフォルダー ビューが表示されるようになりました。 ソリューション エクスプローラーの新しいソリューション選択リストで、ファイルを表示したり、ソリューションを開いたりできます。
  • VSHub に代わる新しい外部サービス ホストが導入されました。 この新しいサービス ホストは外部プロセスであり、タスク マネージャーでは ServiceHub.Host.CLR.*.exe および ServiceHub.Host.Node.x86.exe として表示されます。 このホストは、最終的に、VSHub で導入された localhost http トラフィックを除去します。これにより、Fiddler ユーザーから報告されたノイズが軽減されます。
  • プレリリースのライセンス有効期限メッセージで、現在のライセンスの状態がより明確に表示されます。
  • [アカウントの設定] ダイアログのアクセシビリティが向上し、スクリーン リーダーから使用しやすくなりました。
  • Visual Studio インストーラーでヘルプ ビューアー コンポーネントをインストールすることで、オフライン ヘルプを使用できるようになりました。
  • [言語パック] タブでは、Visual Studio インストーラーを使用して、いつでも複数のユーザー インターフェイス言語を追加および削除できるようになりました。インストールされているユーザー インターフェイス言語から現在のものを選択するには、[ツール] > [オプション] > [国際対応の設定] の順に移動します。
  • バージョン コントロールのステータス バーにより、SCC ホストに対するローカル リポジトリの発行や、コミットされていない作業 (図 2) とプッシュされていない作業 (図 3) の把握が簡単になりました。
Version Control - Unpublished commits example
(図 2) バージョン管理 - 発行されていないコミットの例
Version Control - No pending changes example
(図 3) バージョン管理 - 保留中の変更がない例

サインインと ID の機能強化

新しい ID サービスが導入されています。これにより、Microsoft 開発者向けツール全体でユーザー アカウントを共有できるようになります。 Visual Studio 内でこの共有の対象となるのは、チーム エクスプローラー、Azure Tools、Windows ストアの発行などの機能です。 これらの機能では、一般的で一貫したサインイン操作が共有されるようになります。

Visual Studio への機能強化と共に、サービス側にいくつかの機能強化を配置しました。これによりユーザーは安全にサインインした状態を維持し、12 時間おきの強制的なサインインを排除できます。 これは、最もよく報告されたサインインの問題に対処します。 詳しくは、少なくなった Visual Studio プロンプトに関する記事をご覧ください

開始ページ

再設計されたスタート ページには、以下のような "開く" 機能と "作成" 機能が新たに追加されています。

  • VSTS からリモート リポジトリを取得するか、向上した MRU を使用して、ローカル プロジェクトとソリューションを簡単に開きます。
  • スタート ページ MRU に他のコンピューターで複製したリポジトリが表示されるため、現在のコンピューターでリポジトリを簡単に複製できます。
  • 検索可能なテンプレートと、最近使用したテンプレートの一覧で、開始ページから新しいプロジェクトを直接作成します。 最近使ったテンプレートは、個人アカウントと共に Visual Studio インスタンス間を移動しても維持されます。
  • スタート ページの [Checkout from VSTS] (VSTS からのチェックアウト) オプションにより、VSTS エクスペリエンスから新しいクローンをすばやく起動します。
  • "作業の開始" セクションは閉じることができます。
  • "ニュース" セクションを折りたたむことができるようになりました。
    • ニュース フィードに新しく追加された項目のバッジが更新されました。
    • ニュース フィードが折りたたまれているときに新しい項目が表示された場合のニュース フィード展開コントロールのバッジ。
  • 視覚的なデザインを改良し、小さい画面で欠けて表示されてしまう部分および空きスペース活用に関するフィードバックに対応しました。

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

Start Page with Get Started and News
(図 4) "作業の開始" と "ニュース" が含まれたスタート ページ

コード ナビゲーションの向上

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

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

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

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

フォルダーを開く

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

The new Open Folder feature in Visual Studio IDE
(図 9) Visual Studio IDE の [フォルダーを開く] の新機能

さらに、次の一部の言語では、高度な IntelliSense と、フォルダーからの直接デバッグのサポートが用意されています。

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

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

フォルダー ビューでは、以下もサポートされます。

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

ファイルを開く操作とフォルダー ビューとソリューション ビューの切り替えのパフォーマンスが大幅に改善されました。

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

ライトウェイト ソリューション ロードにより、大規模なソリューションの読み込み速度が向上します。 大規模なソリューションにおけるソリューションの読み込み時間とメモリの使用量が大幅に改善します。 この機能は既定では有効になっていません。ソリューション単位で有効にするか、IDE でグローバルに有効にすることができます。 この機能をグローバルに有効にするには、[ツール] > [オプション] の順に移動し、[プロジェクトおよびソリューション] (図 10) の [全般] を選択するか、クイック起動で "ライトウェイト ソリューション ロード" を検索します。 この機能は、ソリューションの [プロパティ] ウィンドウでソリューションごとに有効または無効にすることができます。

The new Lightweight Solution load feature Visual Studio IDE
(図 10) Visual Studio IDE の新しいライトウェイト ソリューション ロード機能

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

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

構文の色づけ、AutoComplete、スニペット、[移動] 検索のサポートによる言語の追加

Visual Studio 2015 の更新プログラムで追加されたサポートを基にして、Visual Studio 2017 では、構文の色付けと AutoComplete がサポートされる言語の範囲が増えています。 さらに、これらの言語の一部では、[移動] (Ctrl+) およびコード スニペット (両方または一方のみ) による移動もサポートされます。

以下に示す言語のファイルは、その言語を明示的にサポートするワークロードがインストールされていない場合であっても、新しい Visual Studio Core Editor でこれらの機能をサポートします。 言語をサポートするワークロード (.NET Desktop Application Development ワークロード、Windows Desktop App Development with C++ ワークロードなど) がインストールされている場合は、IntelliSense や、電球などの他の高度な言語機能も提供されます。

サポート レベル別の言語ファイル種類一覧:

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

プロジェクトの作業開始の概要ページ

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

(Figure 11) Project Overview
(図 11) プロジェクト概要

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

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

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

[接続済みサービス] ページ (図 12) でサービスを選択すると、接続済みサービス ウィザードが起動します。このウィザードでは、プロジェクトを構成し、必要な NuGet パッケージをダウンロードして、サービスに対してすばやくかつ簡単にコーディングを開始できるようにします。

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

ツールと機能の製品内での取得

Visual Studio 2017 では、IDE を離れずに、追加のワークロードとコンポーネントを簡単に取得できます (図 13)。 クイック起動を利用して、ワークロードまたは個々のコンポーネントに対応する Visual Studio インストーラーを検索して起動します。

In-product acquisition through Quick Launch
(図 13) クイック起動による製品内での取得

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

In-product Quick Launch dialogue
(図 14) 製品内のクイック起動ダイアログ

Visual C++

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

C++ コードの分析

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

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

C++ コンパイラ

C++ コンパイラと標準ライブラリを更新して C++11 と C++14 機能のサポートを強化し、C++17 標準に組み込まれると予想される特定の機能について予備的なサポートを追加しました。 一般化された constexpr と集計のための NSDMI のサポートにより、コンパイラは C++14 標準で追加された機能に完全に対応します。 コンパイラには、C++11 標準および C++98 標準の一部の機能がないことに注意してください。 Visual Studio 2017 では、/sdl を /await と一緒に使うことができます。 コルーチンでの /rtc の制限がなくなりました。

このリリースには、最適化およびコード生成におけるいくつかの機能拡張が含まれています。 主な改良点は次のとおりです。

  • ループのコード生成の向上: 定数整数の除算の自動ベクター化がサポートされるようになりました。また、memset パターンの識別機能が向上しています。
  • コード セキュリティの向上: バッファー オーバーラン コンパイラ診断の出力が向上し、/guard:cf によりジャンプ テーブルを生成する switch ステートメントが保護されるようになりました。
  • /debug:fastlink オプションが改善され、大規模なコンポーネントでのリンク時間が Visual Studio 2015 よりも 30% 短縮されています。
  • コルーチンの使用時、試験的キーワード "yield" (/await switch の下にあります) は削除されています。 代わりにコードを書き直し、"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] もう 1 つの名前検索の適合性が解決しました。
  • [ATL] 既存の移動コンストラクターと移動代入演算子が非スローとして正しくマークされるようになりました。
  • [ATL] atlstr.h のローカルな静的変数のスレッド セーフな init に関する有効な警告 (C4640) の抑制が解除されました。
  • [ATL] [using ATL AND building a DLL (ATL を使用し DLL をビルドする)] の際、XP ツールセットで、ローカルな静的変数のスレッド セーフな初期化が自動的に無効になっていました。 この点は変更されました。 スレッド セーフな初期化をオフにすることを希望する場合は、[プロジェクト] 設定で /Zc:threadSafeInit- を追加することができます。
  • [AMP] ライブラリを監査し、タイプミスを修正しました。
  • [VCRuntime] コントロール フロー ガード シンボルに新しいヘッダー 'cfguard.h' が追加されました。

C++ IDE

C++ ネイティブ プロジェクトの構成変更が簡単になりました。C++/CLI プロジェクトの場合、さらに簡単です。 ソリューション構成を初めて有効にするとき、そのプロセスが以前より速やかに進行し、そのソリューション構成の後続のアクティベーションがすべて即座に完了します。

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

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

その他の更新内容:

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

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

  • Dot-to-Arrow IntelliSense 機能が試験段階から進んだ段階に移り、既定で有効になっています。 エディターの [Expand Scopes](スコープの展開) および [Expand Precedence](優先順位の展開) 機能が試験段階から進んだ段階に移ります。

  • 試験的なリファクタリング機能である 署名の変更 および 関数の抽出 が既定で使用可能になりました。

  • 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 Open Folder
(図 19) CMake の [フォルダーを開く]

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

  • C++ による Windows デスクトップ開発:

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

    • C++ デスクトップ ワークロードで Win32 プロジェクトを作成するには、ツールセットと Windows SDK の両方をインストールする必要があります。 推奨される (選択されている) コンポーネント "VC++ 2017 v141 toolset (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 プラットフォーム開発:

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

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

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

C# および Visual Basic

言語拡張

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

C# の場合 :

Visual Basic の場合

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

詳細については、CSharpLang GitHubVBLang GitHub で公開される弊社の言語設計の最新情報をいつも確認して、これらおよび他の提案中の言語拡張機能に関する情報を入手してください。

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

Visual Studio はさまざまなリファクタリングを提供します。生産性が上がり、コードがさらに読みやすくなります。 以下にいくつかの例を挙げます。

  • 初期化子によるオブジェクトの初期化の単純化 (図 20)
Use object initializer
(図 20) オブジェクトの初期化子の使用
  • C#7 の新機能を使用したインラインでの out 変数宣言の移動 (図 21)
Move out variable inline
(図 21) インラインでの変数宣言の移動
  • C#7 の新機能を使用した、null 合体演算子を使用した null チェックとスロー式の単純化 (図 22)
Use throw expression with null-coalescing operator
(図 22) スロー式と null 合体演算子の使用
  • 一致するファイルへの型の移動: 1 つのファイルから抽出した型を、Ctrl+ を使って 1 クリックで、一致する名前により別のファイルに配置します。
  • ファイル名と型名の同期: ファイル名と型名が同期されない場合、Ctrl+ を使用できます。
  • String.Format の文字列補間への変換: このクイック アクションを使用して C# 6 言語機能を活用します。
  • C# スイッチまたは Visual Basic Select の欠如しているケースを追加します。
  • プロパティをメソッドに、またはメソッドをプロパティに変換します。
  • パッケージ参照の追加: 認識されない種類に対し、NuGet パッケージを自動取得し、インストールします (さらに、using/Import を追加します)。 この機能を有効にするには、[ツール] > [オプション] > [テキスト エディター] > [C# / Basic] > [詳細設定] の順に進み、[参照アセンブリの型に using を提案する] または [NuGet パッケージの型に using を提案する] を選択します。
  • 適用可能であれば非同期メソッドを同期型にします。
  • 綴りの間違いに対して "あいまい" 一致を適用します。
コーディング規則の構成と適用

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

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

  • 名前付けスタイル規則。
  • var または明示的な型の使用。
  • メンバーのアクセス時の this. または Me. の使用。
  • 式本体またはブロックを使用。
  • cast チェックと null チェックにパターン一致を使用。
  • 明示的なタプル名の使用。
  • スロー式、条件付き代理、結合式、null 値反映による null チェックの単純化。
  • 中かっこが必要。

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

Configure code style preferences and enforcement from EditorConfig
(図 23) コード スタイル設定の構成と EditorConfig からの適用

IntelliSense 改善

また、このリリースでは、大規模なソリューションやよく知らないコードベースで作業するときの生産性を高めるために、IntelliSense に対する強化が加えられています。 種類 (例: メソッド、プロパティ、クラスなど) によってメンバーの一覧をフィルター処理するためのアイコン トレイが IntelliSense に追加されました。 フィルターのトグルにはそれぞれ関連付けられたキーボード ショートカットがあり、アイコンにカーソルを合わせることで調べることができます。 この機能を有効にするには、[ツール]>[オプション]>[テキスト エディター]>[C# / Basic]>[IntelliSense] に進み、フィルター処理と強調表示のオプションをチェックします (図 24)

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

エディターのその他の改善

  • カーソルを文字列の中間に置いて Enter キーを押すと、長い文字列を複数の連結された文字列に分割できるようになりました。
  • Microsoft では、診断と CodeLens 情報を計算するバックグラウンド操作があるときの IDE の応答性を改善するために大きな労力を費やしてきました。

F#

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

  • C# 7/VB 15 タプルと相互運用する構造体のタプル。
  • C# 7 の ref 戻り値の利用をサポートする ByRef 戻り値。
  • [<Struct>] 属性による構造体のレコードのサポート (協力者: Will Smith)。
  • [<Struct>] 属性による構造体の判別された共用体のサポート。
  • FSharp.Core の関数をサポートする新しい Result<'TSuccess, 'TFailure> 型 (協力者: Oskar Gewalli)。
  • スタックへのポインター型の固定をサポートする fixed キーワード。
  • 数値リテラルでのアンダースコア (_) (協力者: Avi Avni)。
  • 呼び出し元情報の属性引数 (協力者: Lincoln AtkinsonAvi Avni)。
  • namespace recmodule rec を介した同じファイル内の相互参照型とモジュール。
  • 型と同じ名前を共有するモジュールの暗黙的な "モジュール" サフィックス。

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

(多くは F# コミュニティによるものです)

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

(新しい IDE 機能の多くは素晴らしい F# コミュニティの貢献によるものです)

  • IntelliSense フィルターと Glyph の改善 (協力者: Vasily Kirichenko)。
  • IntelliSense のさまざまな機能改善 (協力者: Vasily Kirichenko)。
  • 新しいジャンプ機能のサポート (協力者: Vasily Kirichenko)。
  • すべての参照の検索のサポート (協力者: Vasily Kirichenko)。
  • 複数の F# プロジェクトの再有効化サポート (協力者: Ahn-Dung Phan)。
  • Roslyn の QuickInfo (ホバー型) サポート (協力者: Vasily Kirichenko)。
  • エディターでのモジュールと名前空間への色づけ (協力者: Vasily Kirichenko)。
  • ナビゲーション バー サポートの再有効化と改善 (協力者: Vasily Kirichenko)。
  • トークンの意味による強調表示 (協力者: Vasily Kirichenko)。
  • 新しい構造化ガイドラインのサポート (協力者: Vasily KirichenkoJared Hester)。
  • F1 ヘルプ サービスの再有効化 (協力者: Robert Jeppesen)。
  • QuickInfo とシグニチャ ヘルプの色づけ (協力者: Vladimir Matveev)。
  • コード インデントの改善 (協力者: Ahn-Dung Phan)。
  • IDE のエラー報告の改善 (協力者: Ahn-Dung Phan)。
  • インラインの名前変更 (一時的に無効) (協力者: Vasily Kirichenko)。
  • 定義へ移動の改善 (協力者: Vasily KirichenkoAhn-Dung Phan)。
  • ブレークポイント解像度の改善 (協力者: Vasily KirichenkoSteffen Forkmann)。
  • EditorBrowsable(EditorBrowsableState.Never) 属性の考慮 (協力者: Vasily Kirichenko)。
  • XML ドキュメント生成 (協力者: Ahn-Dung Phan)。
  • レコード ラベルの大文字識別、和集合の大文字と小文字のアナライザー、コード修正 (協力者: Steffen Forkmann)。
  • インターフェイス アナライザーの実装とコード修正 (協力者: Ahn-Dung Phan)。
  • 不明な識別子の交換、コード修正 (協力者: Steffen Forkmann)。
  • アンダースコア アナライザーで未使用値に接頭辞を付ける (または置換する)、コード修正 (協力者: Vasily Kirichenko)。
  • new キーワード アナライザーの追加とコード修正 (協力者: Vasily Kirichenko)。
  • open ステートメント アナライザーの追加とコード修正 (協力者: Vasily Kirichenko)。
  • ネーム アナライザーの簡素化とコード修正 (協力者: Vasily Kirichenko)。
  • 未使用値の淡色表示 (協力者: Vasily Kirichenko)。

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 は、下位レベルの async/await、より優れた型推論、ローカルのオブジェクトの展開などを提供します。 本リリースの詳細については、リリース ブログ投稿または詳細な変更ログを参照してください。

JavaScript 言語サービス

新しい JavaScript 言語サービス (図 25) が既定で有効になっています。 この新しいサービスはより充実した IntelliSense を提供し、JSDoc コメント注釈、ES6、共通 JS モジュール形式の IntelliSense をサポートします。 また、JSX 構文や、ES2016 の機能 (ジェネレーター、モジュール、デコレータなど) をサポートします。 詳細については、このブログ投稿か GitHub の JavaScript IntelliSense ドキュメントをご覧ください。

Rich JavaScript IntelliSense for jQuery
(図 25) 高機能な JavaScript IntelliSense for jQuery

パフォーマンスの向上

パフォーマンスの向上は今回のリリースで最も重視された部分の 1 つでした。 いくつかの最適化によりメモリと応答性の特性が改善されたほか、JavaScript/TypeScript 言語サービス全体が devenv.exe の外のサテライト プロセスに移り、大規模な Visual Studio プロジェクトでメモリを解放できます。 Visual Studio プロセスのメモリ消費量が下がり、大規模な JavaScript プロジェクトの作業中、メモリ クラッシュが減ります。

デバッグと診断

[クリックして実行]

デバッグ時にコード行の隣にあるアイコンをクリックするだけで、その行に実行されます (図 26)。 目的の行でのコードの実行や停止のため、一時的なブレークポイントを設定したり、複数の手順を実行したりする必要がなくなりました。 デバッガーの実行中にブレーク状態で停止したときに、マウスのポインターを置いたコード行の横に [Run to Click]\(クリックで実行) アイコンが表示されます。 マウスをアイコンに移動し、ボタンをクリックすると、次にコード パスでその地点に到達すると、該当の行でコードが実行され、停止されます。 これは、メイン メニューで [デバッグ]>[オプション]>[Enable Run]\(実行の有効化\) をクリックすることによってもオフにできます。

Run to Click Icon
(図 26) [Run To Click]\(クリックで実行) アイコン

[プロセスにアタッチ] フィルター

[プロセスにアタッチ] ダイアログ (図 27) で簡単に検索して、デバッガーをアタッチするプロセスをすばやく見つけることができます。 実行中のプロセスの一覧にフィルターが適用され、検索条件に一致する項目が表示されます。 検索フィルターでは値が保持されるため、ダイアログを再び開いたときに前回の検索条件が使用されます。

Attach to Process Filter
(図 27) [プロセスにアタッチ] フィルター

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

以前にデバッグしていたプロセスにすばやく再アタッチできるようになりました。 新しいデバッグ/プロセスに再アタッチ (Shift + Alt + P キー) コマンドをトリガーすると、[プロセスにアタッチ] ダイアログで起動された前回のデバッグ セッションの最後のプロセスにデバッガーをアタッチする操作が試みられます。 デバッガーは、再アタッチするプロセスを見つける際に、前回のプロセス ID、前回のプロセス名の順に一致するプロセスを検索します。 一致するプロセスが見つからない場合、または同じ名前のプロセスが複数見つかった場合は、[プロセスにアタッチ] ダイアログが表示され、目的のプロセスを選択できます。

新しい例外ヘルパー

新しい例外ヘルパー (図 28) を使用することにより、内部例外にすぐにアクセスできるコンパクトな非モーダル ダイアログに例外情報を表示できます。 NullReferenceException の診断時に、例外ヘルパー内の null をすばやく確認できます。 特定のモジュールからスローされた例外の種類の中断を除外できるようになりました。スローされた例外での中断時に条件を追加するチェックボックスをオンにします。 例外ヘルパーの新しい利点について詳しくは、このブログ投稿をお読みください。

The New Exception Helper dialog
(図 28) 新しい例外ヘルパー ダイアログ

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

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

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

デバッガーのアクセシビリティ機能の強化

いくつかのデバッガー ウィンドウ ([呼び出し履歴]、[ローカル]、[自動変数]、[ウォッチ]、および [クイックウォッチ]) がスクリーン リーダーでより効果的に使用できるようになったほか、その他のアクセシビリティ ニーズにも対応します。

.NET Core の IntelliTrace イベント

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

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

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

Summary tab in Diagnostics Tools Window
(図 30) [診断ツール] ウィンドウの [概要] タブ

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

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

CPU 使用率ツールの更新

CPU 使用率ツールに関していくつかの改良が行われています。

  • 外部コードのサポートの向上 - CPU ツールは、ユーザー コードからライブラリおよびフレームワークの機能を呼び出したときのコストの情報をさらに正確に提供するようになっています。
  • 関数ビュー (図 31) - 関数が CPU コストで順位付けされるビュー。
Functions List
(図 31) 関数リスト
  • 呼び出し元/呼び出し先ビュー (図 32) では、選択した関数に対して、または選択した関数から行われる関数呼び出しのコストを調べることができます。
Caller / Callee View
(図 32) 呼び出し元/呼び出し先ビュー
  • ソース ビューには、CPU ツールで関数が選択されているとき、関数のソース コードが表示されます。

Chrome のデバッグのサポート

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

ライブ単体テスト

ライブ単体テスト (図 33) は Visual Studio 2017 Enterprise Edition の機能であり、単体テスト結果やコード カバレッジをエディターでライブ表示します。 .NET Framework を対象とする C# プロジェクトと VB プロジェクトで MSTest、xUnit、Nunit をサポートします。

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

詳細については、ライブ単体テストに関するブログを参照してください。

テスト ツール

テスト エクスプローラーを利用し、テスト ケースの作業項目とオートメーションを関連付けます。

テスト エクスプローラーでテスト方法を選択することで、テスト ケースの作業項目 (図 34) とオートメーションを関連付けることができるようになりました。 この新しい機能では、選択したテスト方法の既存の関連付けも表示できます。

テスト エクスプローラーでテストを右クリックし、

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

テスト ケース ID を入力すると、関連付けが作成されます (図 35)

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

以前のバージョンの Visual Studio では、この作業は作業項目フォームで行っていました。 作業項目フォームを基盤とする操作は、[ツール]、[オプション] の順に選択し、互換性モードをオンにすることで有効にできます (図 36)

Work Item Form Compatibility mode
(図 36) 作業項目フォームの互換性モード

チーム エクスプローラー

Git の新機能

Visual Studio 2017 に Git の新機能が追加され、IDE を終了しなくても、さらに多くのエンドツーエンド ワークフローを実行できるようになりました。 送信コミットの差分を表示する、強制プッシュを実行して再ベースを完了するか、修正後のコミットをプッシュする、アップストリーム ブランチの設定を解除する、Visual Studio からパッチの再ベースを続行するといった作業を簡単に実行できます。 また、git.exe に移行しました。 これにより、最新の機能を提供することができます。 SSH 対応となり、ユーザーの設定オプションが適用され、チーム エクスプローラーにコマンド ラインとまったく同じ内容が表示されます。 これらの機能については、ブログ投稿を参照してください。

VSTS/TFS への接続

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

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

作業項目フォーム

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

Work Item Form in Team Explorer
(図 37) チーム エクスプローラーの作業項目フォーム

Visual Studio のフィードバック ワークフローの強化

Visual Studio 2017 には、フォローアップとコラボレーションの向上のためのアップグレードされたフィードバック エクスペリエンスが含まれます。 このアップグレードの一環で、総合的な Web ポータルが追加され、Visual Studio での共同作業の問題を報告しやすくなり、包括的なフィードバック ソリューションが実現されました。 Visual Studio IDE の問題の報告機能からいただいたすべてのフィードバックについて、検索、追跡、投票、最新の更新プログラムの入手ができます。 これらの強化された操作性で、ユーザーから送信された多くのフィードバックに対応し、Microsoft のチームとユーザーの間で双方向の通信が可能になります。

Visual Studio 機能拡張

新しい機能拡張の形式

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

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

VSIX マニフェスト デザイナーは、マニフェストの変更を反映するように更新されました。 拡張機能の開発者は、[必須コンポーネント] タブ (図 38) のインストール済みコンポーネントの一覧で、拡張機能の必須コンポーネントとして使用する拡張機能を指定できます。

Prerequisite tab
(図 38) [必須コンポーネント] タブ

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

VSIXInstaller
(図 39) VSIXInstaller

拡張機能の一括変更

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

Extensions and Updates Dialog
(図 40) [拡張機能と更新プログラム] ダイアログ ボックス

VSIX インストーラーは、Visual Studio のすべてのウィンドウが閉じられたことを検出すると、スケジュールされた変更の実行を開始します (図 41)

Batched Modification Installer
(図 41) 一括変更インストーラー

Ngen のサポート

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

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

拡張機能ディレクトリの外部へのファイルのインストール

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

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

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

Visual Studio 2017 の新機能である拡張機能マネージャーのローミングを使用すると、すべての開発環境にあるお気に入りの拡張機能を追跡できます。 拡張機能マネージャーのローミングは、クラウド内に同期されるリストを作成することで、インストールされている拡張機能を追跡します。

Visual Studio にサインインし、[ツール] > [拡張機能と更新プログラム] の順に選択し、[拡張機能マネージャーのローミング] をクリックすると、拡張機能の一覧がすぐに表示されます (図 44)。 拡張機能マネージャーのローミングでは、インストールした拡張機能が追跡されます。また、[Roaming List] (ローミング リスト) に追加する拡張機能を選択できます。 ギャラリーには毎日新しい拡張機能が追加されるので、お気に入りの拡張機能で開発環境をすばやく簡単にセットアップできます。

The new Roaming Extension Manager in the Visual Studio IDE
(図 44) Visual Studio IDE の新しい拡張機能マネージャーのローミング

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

  • Roamed Icon [Roamed] (ローミング済み) アイコン - [Roaming List] (ローミング リスト) にあり、このコンピューターにはインストールされていない拡張機能を示します。 この拡張機能は [ダウンロード] ボタンでインストールできます。
  • Roamed and Installed Icon [Roamed and Installed] (ローミングおよびインストール済み) アイコン - [Roaming List] (ローミング リスト) にあり、この環境にインストールされているすべての拡張機能を示します。 ローミングしない場合は、[ローミングの停止] ボタンで削除することもできます。
  • Installed Icon [Installed] (インストール済み) アイコン - この環境にインストールされ、[Roaming List] (ローミング リスト) にはないすべての拡張機能を示します。 [Start Roaming]\(ローミングの開始\) ボタンを使用して拡張機能をローミング リストに追加できます。

これらのアイコンは、リストの現在の状態を示します。 任意の状態の任意の拡張機能を使用できるので、好みに合わせてカスタマイズするか、 既定の設定を利用してください。 サインイン中にダウンロードした拡張機能は、[ローミングおよびインストール済み] としてリストに追加され、[Roaming List]\(ローミング リスト\) にも表示されるので、どのコンピューターからでもアクセスできるようになります。

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

Visual Studio 2017 では、テンプレート検出のパフォーマンス向上のため、Visual Studio によるプロジェクト テンプレートと項目テンプレートの使用方法が大きく変更されています。 新しい検出メカニズムでは、"vstemplate" スキーマに従うすべての項目テンプレートとプロジェクト テンプレートが、テンプレート マニフェスト ファイルで定義されている必要があります。 テンプレート マニフェスト ファイルで定義されていない Visual Studio のテンプレートは、[新しいプロジェクト] または [新しいアイテム] ダイアログ ボックスに表示されなくなります。 新しい機能拡張ツールは VSIX のビルド時にマニフェストを生成しますが、MSI パッケージの一部として Visual Studio テンプレートをリリースする場合は、そのようなテンプレートのテンプレート マニフェスト ファイルを手動で生成する必要があります。 詳細については、MSDN ページの「Upgrading Custom Project and Item Templates for Visual Studio 2017 (カスタム プロジェクトおよび項目テンプレートの Visual Studio 2017 へのアップグレード)を参照してください。

.NET Core および ASP.NET Core

これには、新しい MSBuild をベースとする .NET Core ツールの最終リリース 1.0 が含まれています。 Visual Studio 2017 を利用し、.NET Standard ライブラリ、.NET Core アプリ/ライブラリ、新しい csproj 形式を利用する 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 サポートによる ASP.NET Core アプリケーションの継続的なビルド統合と、Visual Studio IDE 内から Azure Container Services への継続的なビルド配信を簡単に構成できます。

詳細については、.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 つのソース画像から作成できます。

Manifest Visual Asset Generator
(図 45) マニフェストのビジュアル資産ジェネレーター

UI Analysis

ユニバーサル Windows プラットフォーム ツールにアクセシビリティやパフォーマンスに関連する一般的な問題を検出する機能が搭載されました。 [診断ツール] ウィンドウの [ツールの選択] メニューで "UI Analysis" ツールを有効にすることで、これらの問題が問題の対処方法と理由について解説した有用な記事へのリンクと共に報告されます。 UI Analysis を有効にして開発すると、UI のパフォーマンスとアクセシビリティがアプリケーション開発の中心となります。

Xamarin

Visual Studio 2017 には Xamarin 4.4 が含まれています。 詳細については、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)
  • "[ツール] -> [オプション] -> [Xamarin] -> [その他]" タブの順に移動すると Visual Studio はハングする。(4.3.1.39)
  • 環境によってはクロスプラット フォーム ソリューションの読み込み時に Visual Studio がハングする。(4.3.1.1)
  • Visual Studio プロジェクト テンプレートで Microsoft.Csharp が参照されない。(4.3.1.1)
  • 構成済みのユーザー シェルで bash 構文が使用されていない場合、Mac サーバーに接続できない。(4.3.1.1)
  • テスト クラウドへの送信オプションがない (Visual Studio 2013 および Visual Studio 2015 で修正済み)。(4.3.1.1)
  • 変数/プロパティの名前が他のもののクラス名と同じである場合、デバッガーに混乱を与える。(4.3.1.1)
  • アセット カタログから設定された画像の名前を変更することができない。(4.3.1.1)
  • Watch Extension プロジェクトで "Resources" フォルダーが強制的に非表示にされる。(4.3.1.1)
  • "Resources" 内の "Assets.xcasset" フォルダーが tvOS プロジェクトで非表示にされない。(4.3.1.1)

Visual Studio Tools for Apache Cordova

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

  • Cordova Simulate - 新しいブラウザーベースのシミュレーターでは、迅速にコードを記述し、ブラウザー内ですぐに結果を確認できます (図 46)。 ライブの再読み込み、プラグイン シミュレーション、および Ionic Framework のサポートにより、Visual Studio は市場で最速の開発者ワークフローを実現します。
Cordova simulate
(図 46) Cordova Simulate
  • iOS 10 & XCode 8 のサポート - iOS 開発用の remotebuild サーバー エージェントの更新に XCode 8 のサポートが含まれました。

  • エラーの色づけ - 多くの場合、ビルドの失敗を診断するには開発者がビルド出力を確認する必要があるため、読みやすくするためにエラーを色分けしてビルド出力ウィンドウに表示するようにしました (図 47)。 さらに、ビルド処理が失敗した場所を開発者が特定できるように、ビルド処理のステップを区切るためのヘッダーを追加しました。

Colorized Errors
(図 47) 色分けされたエラー
  • 製品内で取得 - Cordova アプリ構築の時間短縮のための軽量インストールに加えて、このたび開発が進むにつれて必要となる追加の構築ピースを Visual Studio 内で取得できるようにしました (図 48)。 まだ Android や Windows のコンポーネントをインストールしていない場合は、展開バーから取得できます。これにより、Visual Studio セットアップが起動し、インストール処理を進めることができます。
In-product acquisition
(図 48) 製品内で取得
  • 高速で信頼できるビルド - 新しい Visual Studio インストーラーは、サード パーティ製コンポーネントの十分に検証されたツールチェーンのオフライン インストールと組み合わせることで、より高速なビルドを実現します。これは、トラブルシューティングや修復もより簡単になります。

重要

Android および Windows 用のビルド ツールとエミュレーターはオプションになりました。 これらは、ビルド/展開メニュー バーから動的に取得できます。 Visual Studio のこのリリースは、Windows ストア 8.1 プロジェクトをサポートしていません。 Cordova プロジェクトを更新して Windows 10 をターゲットとするようお勧めします。 サポートされる Cordova の最低バージョンが 6.0.0 に上がっています。 6.0.0 より低いバージョンの Cordova を対象とするプロジェクトを 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 テンプレート ファイルのサポート。
  • より多くの最新のプロジェクト テンプレート。
  • Mocha 3.x テスト フレームワークのサポート。
  • 多数のバグ修正。

Node.js Tools for Visual Studio のこのリリースに多大な貢献をいただいたすばらしい協力者の皆さんに感謝します。 詳細については、オープン ソースの GitHub の Node.js ツール プロジェクトを参照してください。

Visual Studio Tools for Unity

Visual Studio を使用して、あらゆるプラットフォーム向けの Unity ゲームを作成してデバッグできます。 新しい Visual Studio 2017 インストーラーでは、Visual Studio Tools for Unity 3 (図 49) を "Unity によるゲーム開発" ワークロードと共にインストールできます。 Visual Studio Tools for Unity 3 では、Unity 開発者のコード編集およびデバッグ エクスペリエンスの改善に加えて、以下を含む製品全体の品質に重点を置いています。

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

Redgate

Visual Studio に含まれる Redgate Data Tools

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

  • Redgate ReadyRoll Core は、Visual Studio Enterprise 2017 に含まれており、移行スクリプトの開発、ソース管理によるデータベースの変更管理、アプリケーションの変更と並行した 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 にあります。今後、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 - パスやイベントのバインドする際に、IntelliSense のコンプリートを x:Bind で使用できるようにしました。
  • 名前空間の入力補完 - 名前空間の参照が存在しない場合 (図 50)、入力中に IntelliSense のサポートが得られません。 入力を完了すると、電球マークの提案が表示されます。プレフィックスを生成して挿入したり、XAML ドキュメントに名前空間定義を追加したりできます。
Code completion session for IntelliSense_without_namespace
(図 50) IntelliSense_名前空間なし
  • プレフィックスを必要とする型で、名前空間への参照が既に存在する場合、IntelliSense がプレフィックスをオート コンプリートします。

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

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

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

  • XAML エディター用の構造ビジュアライザー - 構造ビジュアライザー (つまりインデント ガイド) (図 53) が Visual Studio に組み込まれ、別の拡張機能は不要になりました。 この機能により、スクロールすることなく作業中のコード ブロックのコンテキストがひとめでわかります。

Structure Visualizer for XAML editor
(図 53) XAML エディター用の構造ビジュアライザー

XAML のパフォーマンスの向上

  • XAML タブの切り替え機能の向上 - XAML タブの切り替え機能が大幅に改善されました。 カスタマー プロジェクトのサンプルでは、90% 以上の切り替え時間短縮が確認されています。
  • XAML エディターの入力遅延への対応 - XAML の入力がかつてないほど高速になりました。 XAML エディターの入力遅延を減らすための投資を行いました。ほとんどの開発者が XAML エディターや XAML IntelliSense の応答性が改善したこと実感できます。 これは、サードパーティのコントロールや大規模なコントロール ライブラリを消費するプロジェクトの XAML ファイルを編集するときに、最も顕著に表れます。

Data Tools and SQL Server

SQL Server Data Tools

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

このリリースにより、サポートされるすべてのバージョンの SQL Server およびデータベース プラットフォーム (オンプレミスとクラウドの両方) で、Visual Studio を使ってデータベースを簡単に開発、テスト、展開できます。 このリリースには、データベース プログラミング サーフェス領域の拡張機能も含まれており、SQL Server データ ツールでの SQL 接続機能を改良し、接続する SQL Server および Azure SQL Database を 1 クリックで自動的に検出できるようになっています。

さらに、Visual Studio 2017 は、新しい Azure SQL Database 認証タイプや、Azure Active Directory 統合およびパスワード認証に対応しています。

Developer Analytics Tools

Visual Studio 2017 には Developer Analytics Tools v8.6 が含まれており、次の点が改善されました。

  • CodeLens は、Application Insights リソースにデータを送信するプロジェクトのデバッグおよびライブ テレメトリのデータ両方を表示するようになりました。
  • 例外の CodeLens が Application Analytics とリンクし、例外の影響をユーザーに表示するようになりました。
  • CodeLens で、Application Insights SDK でのプロジェクトのローカル デバッグ セッションからの要求が表示されるようになりました。
  • 要求や例外のための CodeLens が Visual Basic プロジェクトで利用可能になりました。
  • Live Metrics は、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 の文書をご覧ください。

Office Developer Tools for Visual Studio

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

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

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

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

Live Architecture Dependency validation
(図 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 インストーラーからのみ取得できます。


Release Notes IconVisual Studio 2017 バージョン 15.0.1

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

15.0.1 で修正された主な問題

以下は、15.0.1 で対処された、ユーザーから報告された問題です。


Release Notes IconVisual Studio 2017 バージョン 15.0.2

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

15.0.2 で修正された主な問題

以下は、15.0.2 で対処された、ユーザーから報告された問題です。


Release Notes IconVisual Studio 2017 バージョン 15.0.3

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

15.0.3 での更新の概要

Xcode 8.3、iOS 10.3、watchOS 3.2、および tvOS 10.2 ツールおよび Visual Studio 2017 用 Xamarin.VS 拡張機能の API がサポートされるようになりました。


Release Notes IconVisual Studio 2017 バージョン 15.0.4

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

15.0.4 で修正された主な問題

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


Release Notes IconVisual Studio 2017 バージョン 15.0.5

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

15.0.5 で修正された主な問題

以下は、15.0.5 で対処された、ユーザーから報告された問題です。


Release Notes IconVisual 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 のバイパスによる情報漏えいの可能性

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

CVE-2017-11879 オープン リダイレクトによる特権の昇格の可能性

オープン リダイレクトが存在する 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 パッケージの管理] ダイアログを使用してパッケージを新しいバージョンに更新することができます。


Release Notes IconVisual 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 のバイパスによる情報漏えいの可能性

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


Release Notes IconVisual 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、.NET Core 1.1、.NET Core 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 ドキュメントを解析する際のサービス拒否

Microsoft は、パブリック バージョンの .NET Core 1.0、.NET Core 1.1、.NET Core 2.0 の脆弱性に関する情報を提供するために、このセキュリティ アドバイザリをリリースします。 またこのアドバイザリでは、アプリケーションを正しく更新する上で開発者が実行する必要のある操作に関するガイダンスも提供します。

Microsoft は、.NET Core のすべてのパブリック バージョンにおいて、XML ドキュメントの不適切な処理が原因でサービス拒否の脆弱性が発生することを認識しています。 攻撃者がこの脆弱性を悪用して、.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 に更新することをお勧めします。


Release Notes IconVisual Studio 2017 バージョン 15.0.9

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

15.0.9 での更新の概要

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

Release Notes IconVisual 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 が採用されている場合にも、この変更でそのサービスに接続できるようになります。


Release Notes IconVisual Studio 2017 バージョン 15.0.11

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

15.0.11 での更新の概要

Visual Studio 2017 バージョン 15.0 セキュリティ アドバイザリ メモ

CVE-2018-0875 .NET Core のマイクロソフト セキュリティ アドバイザリ

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 に更新することをお勧めします。

Release Notes IconVisual Studio 2017 バージョン 15.0.12

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

15.0.12 での更新の概要

Visual Studio 2017 バージョン 15.0 セキュリティ アドバイザリ メモ

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

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

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

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


Release Notes IconVisual Studio 2017 バージョン 15.0.13

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

15.0.13 での更新の概要

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

Release Notes IconVisual Studio 2017 バージョン 15.0.14

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

15.0.14 での更新の概要

Visual Studio 2017 バージョン 15.0 セキュリティ アドバイザリ メモ

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

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


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


Release Notes IconVisual 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 による証明書の検証方法を修正することにより、脆弱性を解決します。


Release Notes IconVisual 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 サービスには特権の昇格の脆弱性が存在し、管理者以外のユーザーがシステム特権でファイルを書き込む可能性があります。 この脆弱性を悪用した攻撃者が、ユーザー レベルのアクセス権しか持たないのに、システムとしてファイルを書き込む可能性があります。 このセキュリティ更新プログラムでは、現在のユーザーを偽装してファイルの場所へのアクセスを検証することにより、この問題に対処します。


Release Notes IconVisual Studio 2017 バージョン 15.0.18

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

15.0.18 で修正された主な問題


既知の問題

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


フィードバックと提案

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


ブログ

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

Developer Tools Blogs


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

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


ページの先頭へ