トレーニング
ラーニング パス
ソリューション アーキテクト: Microsoft Power Platform のソリューションを設計する - Training
ソリューション アーキテクトがソリューションを設計する方法について説明します。
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
開発者コミュニティ | システム要件 | 互換性 | 再頒布可能コード | ライセンス条項 | ブログ | 既知の問題
注意
これは Visual Studio の最新バージョンではありません。 最新のリリースをダウンロードするには、Visual Studio のサイトにアクセスしてください。
皆様のご意見をお待ちしております。 問題がある場合は、インストーラーまたは Visual Studio IDE 自体の右上隅にある [問題の報告] オプションからお知らせください。 右上隅に アイコンがあります。
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 をダウンロードしてください。
リリース日: 2019 年 12 月 11 日
兄弟サブモジュールのディレクトリ用のサブモジュール名の衝突が Git で発生している場合には、リモート コード実行の脆弱性が存在します。 この脆弱性を悪用した攻撃者によって、ターゲット コンピューター上のコードがリモートで実行される可能性があります。 セキュリティ更新プログラムでは、新しいバージョンの Git for Windows を使用してこの脆弱性に対処します。このバージョンでは、サブモジュールのクローン用のディレクトリを空にする必要があります。
SSH URL と組み合わせた再帰クローン中に特定の方法で引用されたコマンドライン引数が解釈される場合には、リモート コード実行脆弱性が存在します。 この脆弱性を悪用した攻撃者によって、ターゲット コンピューター上のコードがリモートで実行される可能性があります。 セキュリティ更新プログラムでは、この問題を解決する新しいバージョンの Git for Windows を使用して脆弱性に対処します。
アルファベット以外のドライブ名によって git clone
での安全性チェックが省略される場合、Git には任意のファイル上書き脆弱性が存在します。 この脆弱性を悪用した攻撃者によって、ターゲット コンピューター上の任意のファイルに対して書き込みが行われる可能性があります。 セキュリティ更新プログラムでは、この問題を解決する新しいバージョンの Git for Windows を使用して脆弱性に対処します。
NTFS 代替データ ストリームを介して git/ ディレクトリにクローンおよび書き込みを行う場合には、リモート コード実行脆弱性が存在します。 この脆弱性を悪用した攻撃者によって、ターゲット コンピューター上のコードがリモートで実行される可能性があります。 このセキュリティ更新プログラムでは、NTFS 代替データ ストリームを認識するようになった新しいバージョンの Git for Windows を使用して脆弱性に対処します。
バックスラッシュや悪意のあるシンボリック リンクを含むツリー エントリが処理ツリーを抜け出す可能性がある場合には、Git に任意のファイル上書き脆弱性が存在します。 この脆弱性を悪用した攻撃者によって、ターゲット コンピューター上の任意のファイルに対して書き込みが行われる可能性があります。 セキュリティ更新プログラムでは、このようなバックシュラッシュの使用を許可しない新しいバージョンの Git for Windows を使用して脆弱性に対処します。
サブモジュールで再帰的なクローンを行う場合は、Git にリモート コード実行脆弱性が存在します。 この脆弱性を悪用した攻撃者によって、ターゲット コンピューター上のコードがリモートで実行される可能性があります。 セキュリティ更新プログラムでは、サブモジュール名の検証を強化した新しいバージョンの Git for Windows を使用して脆弱性に対処します。
リリース日: 2019 年 9 月 10 日
Diagnostics Hub Standard Collector Service によって特定のファイル操作が適切に偽装されなかった場合に、特権の昇格の脆弱性が存在します。 この脆弱性の悪用に成功した攻撃者は、昇格された特権を取得できます。 脆弱なシステムへの特権のないアクセスを持つ攻撃者が、この脆弱性を悪用する可能性があります。 セキュリティ更新プログラムでは、Diagnostics Hub Standard Collector Service によってファイル操作が正しく偽装されるようにすることで、この脆弱性に対処します。
リリース日: 2019 年 8 月 13 日
特権の昇格脆弱性は、Git for Visual Studio で構成ファイルが正しく解析されないときに存在します。 脆弱性の悪用に成功した攻撃者は、別のローカル ユーザーのコンテキストでコードを実行することができます。 脆弱性を悪用するには、認証された攻撃者が、アプリケーションが完全にインストールされる前に、システム上の Git 構成ファイルを変更する必要があります。 その後、攻撃者は、システム上の別のユーザーを利用して、特定の Git コマンドを実行させる必要があります。 この更新プログラムでは、構成ファイルの編集に必要なアクセス許可を変更することにより、問題が解決されています。
リリース日: 2019 年 7 月 9 日
特定の型を参照する XOML ファイルを Visual Studio で開くと、ランダムなコードが実行される場合があります。 XOML ファイルで使用できる型に制限が設けられることになりました。 未承認のいずれかの新しい型が含まれる XOML ファイルを開くと、その型が未承認であることを示すメッセージが表示されます。
詳細については、XOML の記事をご覧ください。
リリース日: 2019 年 6 月 11 日
リリース日: 2019 年 5 月 14 日
Diagnostics Hub Standard Collector Service によって特定のファイル操作が適切に処理されなかった場合に、特権の昇格の脆弱性が存在します。 この脆弱性の悪用に成功した攻撃者は、任意の場所にあるファイルを削除できます。 この脆弱性を悪用するには、攻撃者が脆弱性のあるシステムに特権なしでアクセスできる必要があります。 セキュリティ更新プログラムでは、Diagnostics Hub Standard Collector によってファイル操作が実行される場所を保護することで、この脆弱性に対処します。
リリース日: 2019 年 3 月 12 日
Unity エディターには、リモート コード実行の脆弱性が存在します。このエディターは、Unity ワークロードによるゲーム開発の一貫としてインストールするために Visual Studio で提供されるサード パーティ製ソフトウェアです。 Visual Studio から Unity をインストールした場合は、CVE の説明に従って、使用している Unity のバージョンを、脆弱性に対処するバージョンに必ず更新してください。 脆弱性に対処する Unity エディターのバージョンをインストールするために提供される、Visual Studio インストーラーが更新されました。
リリース日: 2019 年 2 月 12 日
特定の型を参照する XOML ファイルを Visual Studio で開くと、ランダムなコードが実行される場合があります。 XOML ファイルで使用できる型に制限が設けられることになりました。 未承認のいずれかの新しい型が含まれる XOML ファイルを開くと、その型が未承認であることを示すメッセージが表示されます。
詳細については、https://support.microsoft.com/help/4512190/remote-code-execution-vulnerability-if-types-are-specified-in-xoml をご覧ください。
本日 .NET Core の更新プログラムがリリースされ、この Visual Studio の更新プログラムに追加されました。 このリリースでは、セキュリティと、その他の重要な問題に対処しています。 詳細は、.NET Core のリリース ノートを参照してください。
リリース日: 2018 年 12 月 11 日
Diagnostics Hub Standard Collector Service によって特定のファイル操作が適切に処理されなかった場合に、特権の昇格の脆弱性が存在します。 この脆弱性の悪用に成功した攻撃者は、昇格された特権を取得できます。 この脆弱性を悪用するには、攻撃者が脆弱性のあるシステムに特権なしでアクセスできる必要があります。 セキュリティ更新プログラムでは、Diagnostics Hub Standard Collector Services によってファイル操作が正しく偽装されるようにすることで、この脆弱性に対処します。
リリース日: 2018 年 10 月 10 日
HTTP 認証情報には、HTTP リダイレクトが発生した送信要求に誤って公開されるときに、.NET Core でのセキュリティ機能のバイパスの脆弱性が存在します。 この脆弱性の悪用に成功した攻撃者は、情報を使用して、さらに、Web アプリケーションを危険にさらす可能性があります。 このセキュリティ更新プログラムは、.NET Core アプリケーションの HTTP リダイレクトへの対応方法を修正することで、脆弱性に対処します。
リリース日: 2018 年 8 月 28 日
リリース日: 2018 年 8 月 14 日
Visual Studio サービスには特権の昇格の脆弱性が存在し、管理者以外のユーザーがシステム特権でファイルを書き込む可能性があります。 この脆弱性を悪用した攻撃者が、ユーザー レベルのアクセス権しか持たないのに、システムとしてファイルを書き込む可能性があります。 このセキュリティ更新プログラムでは、現在のユーザーを偽装してファイルの場所へのアクセスを検証することにより、この問題に対処します。
リリース日: 2018 年 8 月 2 日
Microsoft は .NET Core が証明書を適切に検証しない場合に存在するセキュリティ機能バイパスの脆弱性を認識しています。 この脆弱性の悪用に成功した攻撃者は、チャレンジの際に有効期限が切れた証明書を提示することができました。 この更新プログラムでは、.NET Core による証明書の検証方法を修正することにより、脆弱性を解決します。
リリース日: 2018 年 7 月 10 日
特別に作成されたプロジェクト、またはリソース ファイルを開くことで、ユーザーのコンピューターの悪用につながる可能性のある、リモート コード実行の脆弱性。 このセキュリティ更新プログラムは、Visual Studio でのファイルのソース マークアップの確認方法を修正することで、脆弱性に対処します。
.NET ソフトウェアにはリモート コード実行の脆弱性が存在します。そのため、攻撃者は現在のユーザーのコンテキストで任意のコードを実行することができ、ユーザーのコンピューターの悪用につながる可能性があります。 このセキュリティ更新プログラムは、.NET でのファイルのソース マークアップの確認方法を修正することで、脆弱性に対処します。
Microsoft Macro Assembler で正しくコードが検証されないことに関する改ざんの脆弱性 このセキュリティ更新プログラムは、確実に Microsoft Macro Assembler でコード ロジックが正しく検証されるようにすることで、脆弱性に対処します。
ASP.NET Core にはセキュリティ機能バイパスの脆弱性が存在します。不適切なログイン試行の回数が検証されず、攻撃者による無限の認証試行につながる可能性があります。 この更新プログラムは、不適切なログイン試行の回数を検証することで、脆弱性に対処します。
リリース日: 2018 年 5 月 31 日
Git コミュニティで明らかになった Git のセキュリティ上の脆弱性を修正しました。 この脆弱性は、ユーザーが悪意のあるリポジトリを複製した場合に、任意のコード実行を引き起こす可能性がありました。
リリース日: 2018 年 4 月 26 日
リリース日: 2018 年 4 月 10 日
Visual Studio でプログラム データベース (PDB) ファイルをコンパイル中に制限されていないメモリの内容が不適切に開示される場合に、情報漏えいの脆弱性が存在します。 この情報開示を利用した攻撃者は、PDB ファイルのコンパイルに使用された Visual Studio インスタンスから、初期化されていないメモリを閲覧することができます。
攻撃者がこの脆弱性を利用するには、脆弱なバージョンの Visual Studio を使用して作成された、影響を受ける PDB ファイルにアクセスする必要があります。 攻撃者は開発者に対して、この情報漏えいを強制的に実行させることはできません。
このセキュリティ更新プログラムは、プロジェクトのコンパイル時に PDB ファイルが生成される方法を修正することにより、この脆弱性を解決します。
リリース日: 2018 年 3 月 13 日
Microsoft は、.NET Core のパブリック バージョンに存在するセキュリティ上の脆弱性を認識しています。このバージョンでは、悪意のあるファイルや Web 要求によってサービス拒否 (DoS) 攻撃が引き起こされる可能性があります。
リリース日: 2018 年 2 月 21 日
チーム エクスプローラーでは TLSv1.2 がサポートされます。 Visual Studio に付属する Git と Git Credential Manager のコンポーネントを更新しました。 必須ではない Git for Windows コンポーネントも更新されています。 Git からの接続先サービスで TLSv1 と TLSv1.1 のサポートが非推奨とされ、TLSv1.2 が採用されている場合にも、この変更でそのサービスに接続できるようになります。
リリース日: 2018 年 2 月 2 日
2018 年 1 月 9 日のリリース
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 に更新することをお勧めします。
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 に更新することをお勧めします。
リリース日: 2017 年 12 月 6 日
Microsoft は、ASP.NET Core のセキュリティ アドバイザリをリリースしました。 詳細については、ASP.NET Core のリポジトリの該当するお知らせを参照してください。 次の情報にご注意ください。
クロス オリジン リソース共有 (CORS) をバイパスできる ASP.NET Core 1.0 および 1.1 では、情報漏えいにつながるセキュリティの脆弱性があります。 ASP.NET Core 1.0 および ASP.NET Core 1.1 で作成した新しいプロジェクトは、上記のセキュリティ更新プログラムを含むパッケージ バージョンを使用します。 既存のプロジェクトの場合、ユーザーは [NuGet パッケージの管理] ダイアログを使用してパッケージを新しいバージョンに更新することができます。
リリース日: 2017 年 11 月 14 日
Microsoft は、.NET Core および ASP.NET Core のセキュリティ アドバイザリをリリースしました。 詳細については、.NET Core および ASP.NET Core のリポジトリの該当するお知らせを参照してください。 次の情報にご注意ください。
.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 に更新することをお勧めします。
クロス オリジン リソース共有 (CORS) をバイパスできる ASP.NET Core 1.0 および 1.1 では、情報漏えいにつながるセキュリティの脆弱性があります。
オープン リダイレクトが存在する ASP.NET Core 2.0 でのセキュリティ脆弱性のため、特権の昇格が発生する可能性があります。
ASP.NET Core 1.0、1.1、2.0 でアプリケーションが Windows の Http.Sys によってホストされていると、形式が適切でない要求によってサービス拒否が発生するセキュリティの脆弱性があります。 ASP.NET Core 1.0 および ASP.NET Core 1.1 で作成した新しいプロジェクトは、上記のセキュリティ更新プログラムを含むパッケージ バージョンを使用します。 既存のプロジェクトの場合、ユーザーは [NuGet パッケージの管理] ダイアログを使用してパッケージを新しいバージョンに更新することができます。
リリース日: 2017 年 9 月 18 日
リリース日: 2017 年 5 月 23 日
オフライン インストール シナリオでインターネット アクセスが不要になりました。
リリース日: 2017 年 3 月 31 日
Xcode 8.3、iOS 10.3、watchOS 3.2、および tvOS 10.2 ツールおよび Visual Studio 2017 用 Xamarin.VS 拡張機能の API がサポートされるようになりました。
リリース日: 2017 年 3 月 28 日
以下は、ビルド 26228.10 で対処された、ユーザーから報告された問題です。
リリース日: 2017 年 3 月 14 日
以下は、ビルド 26228.09 で対処された、ユーザーから報告された問題です。
リリース日: 2017 年 3 月 7 日
デバッグと診断では例外ヘルパーが大幅に見直され、クリックで実行するコード ナビゲーションがより高速になりました。 また、[診断ツール] ウィンドウにアプリケーション イベントの新しい概要が表示されるようになり、CPU ツールにいくつかの機能強化が行われました。
リリース日: 2017 年 3 月 7 日
新しいインストーラーが導入されました。このインストーラーは、次のことを目的として新しく設計されました。
Visual Studio 2017 を初めてインストールすると、新しいエクスペリエンスが表示されます (図 1)。
最小のインストールはわずか数百 MB ですが、それでもソース コード管理など、20 を超える言語の基本的なコード編集サポートが含まれます。 ほとんどのユーザーはさらに多くの機能のインストールを望みます。 .NET のデスクトップ開発から Unity でのゲーム開発まであらゆるものをカバーする、一般的なフレームワーク、言語、プラットフォームを表す "ワークロード" を 1 つ以上追加できます。
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)" などの名前が表示されます。
新しい ID サービスが導入されています。これにより、Microsoft 開発者向けツール全体でユーザー アカウントを共有できるようになります。 Visual Studio 内でこの共有の対象となるのは、チーム エクスプローラー、Azure Tools、Windows ストアの発行などの機能です。 これらの機能では、一般的で一貫したサインイン操作が共有されるようになります。
Visual Studio への機能強化と共に、サービス側にいくつかの機能強化を配置しました。これによりユーザーは安全にサインインした状態を維持し、12 時間おきの強制的なサインインを排除できます。 これは、最もよく報告されたサインインの問題に対処します。 詳しくは、少なくなった Visual Studio プロンプトに関する記事をご覧ください。
再設計されたスタート ページには、以下のような "開く" 機能と "作成" 機能が新たに追加されています。
新しいスタート ページを以下の (図 4) に示します。
Visual Studio 2017 のコード ナビゲーション機能が大幅に強化されました。
Ctrl+
または Ctrl+ T
) を使用すると、コード内のファイル、型、メソッド、その他の要素を簡単に見つけて移動できます。 大規模なコード ベースであっても、あらゆる種類の項目を見つけることができます。 さらに、項目の種類がわかっている場合、簡単にフィルターすることもできます。 C#、Visual Basic、F# に "あいまい" 一致が追加されました。綴りを間違えても、結果が表示されます。 Microsoft は、[指定行へのジャンプ] (Ctrl + G
) エクスペリエンスも最新化しました。 [編集] メニューの上部に、コマンドの [移動先] ファミリの (図 5) と (図 6) があります。Visual Studio エディターで EditorConfig がサポートされるようになりました。これにより、開発者は、さまざまなエディターや IDE の間で一貫性のあるコーディング スタイル規則を定義して管理できます。 詳細については、ドキュメントを参照してください、.editorconfig ファイルを利用して .NET コード スタイルを制御する方法については、.NET ドキュメントを参照してください。
[フォルダーを開く] は、プロジェクトとソリューションなしでコード ベースを操作するのに便利です。 メニュー バーから [ファイル]>[開く]>[フォルダー] を順にクリックして、移動するフォルダーを選択することにより、[フォルダーを開く] 機能を参照することができます。 ソリューション エクスプローラーを使用してファイルを開き、編集することができます (図 9)。 多くの一般的な言語には、構文の強調表示とシンボルのナビゲーション (GoTo) のサポートがあります。
さらに、次の一部の言語では、高度な IntelliSense と、フォルダーからの直接デバッグのサポートが用意されています。
F5 キーとソリューション エクスプローラーのファイル コンテキスト メニューを使用してビルドまたはデバッグを実行できます。 最良の結果を得るには、作業に使用している言語のワークロードをインストールしてください。
フォルダー ビューでは、以下もサポートされます。
Ctrl+
) を使用してフォルダー内のコードを検索する。ファイルを開く操作とフォルダー ビューとソリューション ビューの切り替えのパフォーマンスが大幅に改善されました。
ライトウェイト ソリューション ロードにより、大規模なソリューションの読み込み速度が向上します。 大規模なソリューションにおけるソリューションの読み込み時間とメモリの使用量が大幅に改善します。 この機能は既定では有効になっていません。ソリューション単位で有効にするか、IDE でグローバルに有効にすることができます。 この機能をグローバルに有効にするには、[ツール] > [オプション] の順に移動し、[プロジェクトおよびソリューション] (図 10) の [全般] を選択するか、クイック起動で "ライトウェイト ソリューション ロード" を検索します。 この機能は、ソリューションの [プロパティ] ウィンドウでソリューションごとに有効または無効にすることができます。
ライトウェイト ソリューション ロードは、C# プロジェクトや C# と C++ を組み合わせたプロジェクトが含まれる大規模なソリューションに最適です。 大規模なソリューションで作業していることが検出された場合、この機能を有効にするように求められることがあります。
ソリューション ビルド全体のパフォーマンスが大幅に向上し、従来のソリューション ロードと同等になりました。
Visual Studio 2015 の更新プログラムで追加されたサポートを基にして、Visual Studio 2017 では、構文の色付けと AutoComplete がサポートされる言語の範囲が増えています。
さらに、これらの言語の一部では、[移動] (Ctrl+
) およびコード スニペット (両方または一方のみ) による移動もサポートされます。
以下に示す言語のファイルは、その言語を明示的にサポートするワークロードがインストールされていない場合であっても、新しい Visual Studio Core Editor でこれらの機能をサポートします。 言語をサポートするワークロード (.NET Desktop Application Development ワークロード、Windows Desktop App Development with C++ ワークロードなど) がインストールされている場合は、IntelliSense や、電球などの他の高度な言語機能も提供されます。
サポート レベル別の言語ファイル種類一覧:
新たに作成されたプロジェクトに対してまったく新しい作業の開始エクスペリエンスが導入されています。 現在の作業開始ページが新しいアプリ構成デザイナーの [概要] タブに置き換えられました。このページの内容は、作業をすぐに開始できるようにするためのアクションに絞り込まれています。 これは、ASP.NET 4.x、ASP.NET Core、Cordova プロジェクトで有効になっています (図 11)。
以前のリリースでは、この機能はサービス機能という名前でした。 接続済みサービスに名前が変更されました。
接続済みサービスとは、Visual Studio 2017 の最新の "接続済みサービスの追加" または "サービス参照の追加" 機能のことです。 接続済みサービス機能により、アプリをサービスにより簡単に接続できます。 ソリューション エクスプローラーでは、Web およびモバイル プロジェクトに "接続済みサービス" と呼ばれる新しいノードを使用できます。 このノードをダブルクリックすると、Visual Studio で新しいフル ページのタブが開きます。ここでは、接続可能な人気のある Microsoft サービスが見つかります。
[接続済みサービス] ページ (図 12) でサービスを選択すると、接続済みサービス ウィザードが起動します。このウィザードでは、プロジェクトを構成し、必要な NuGet パッケージをダウンロードして、サービスに対してすばやくかつ簡単にコーディングを開始できるようにします。
Visual Studio 2017 では、IDE を離れずに、追加のワークロードとコンポーネントを簡単に取得できます (図 13)。 クイック起動を利用して、ワークロードまたは個々のコンポーネントに対応する Visual Studio インストーラーを検索して起動します。
探しているテンプレートが見つからない場合は、[新しいプロジェクト] ダイアログ内から Visual Studio インストーラーを開くこともできます (図 14)。
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++ コア チェッカーが Visual Studio で配布されています。 プロジェクトのプロパティ ページ (図 15) の [Code Analysis Extensions]\(コード分析の拡張機能) ダイアログでチェックを有効にするだけで、拡張機能がコード分析の実行時に含まれます。
C++ コンパイラと標準ライブラリを更新して C++11 と C++14 機能のサポートを強化し、C++17 標準に組み込まれると予想される特定の機能について予備的なサポートを追加しました。 一般化された constexpr と集計のための NSDMI のサポートにより、コンパイラは C++14 標準で追加された機能に完全に対応します。 コンパイラには、C++11 標準および C++98 標準の一部の機能がないことに注意してください。 Visual Studio 2017 では、/sdl を /await と一緒に使うことができます。 コルーチンでの /rtc の制限がなくなりました。
このリリースには、最適化およびコード生成におけるいくつかの機能拡張が含まれています。 主な改良点は次のとおりです。
C++ ネイティブ プロジェクトの構成変更が簡単になりました。C++/CLI プロジェクトの場合、さらに簡単です。 ソリューション構成を初めて有効にするとき、そのプロセスが以前より速やかに進行し、そのソリューション構成の後続のアクティベーションがすべて即座に完了します。
SQLite ベースの新しいデータベース エンジンが、既定で使用されるようになりました。 これにより、[定義に移動] や [すべての参照を検索] などのデータベース操作が高速化され、ソリューションの初期解析時間も大幅に短縮されます。 設定は、[ツール] > [オプション] > [テキスト エディター] > [C/C++] > [詳細設定] に移動しました (以前は、... [C/C++] > [試験的] の下)。
プリコンパイル済みヘッダーを使用していないプロジェクトおよびファイルでの IntelliSense のパフォーマンスが向上しました。現在のファイルのヘッダーに対して自動プリコンパイル済みヘッダーが作成されます。
その他の更新内容:
メンバー リストの表示項目のコンテキストに応じたフィルター処理を提供する新しい実験的な予測 IntelliSense 機能が追加されました。
新しい [すべての参照を検索] UI に、C++ コードで、結果に表示された変数から読み取るのか変数に書き込むのかに関する情報が含まれるようになります。
Dot-to-Arrow IntelliSense 機能が試験段階から進んだ段階に移り、既定で有効になっています。 エディターの [Expand Scopes](スコープの展開) および [Expand Precedence](優先順位の展開) 機能が試験段階から進んだ段階に移ります。
試験的なリファクタリング機能である 署名の変更 および 関数の抽出 が既定で使用可能になりました。
C++ プロジェクトの '迅速なプロジェクトの読み込み' の実現に向けた試験的な新しい機能が有効になりました。 C++ プロジェクトを次回に開いた際に、読み込みが速くなり、またそれ以降、読み込みがさらに速くなります。
[フォルダーを開く] のエクスペリエンスが改善されました。 [フォルダーを開く] からソースを読み込むことで、MSBuild 以外の C++ プロジェクトを編集、ビルド、およびデバッグできます。 次に示す json ファイルを使用したエクスペリエンスのカスタマイズ:
C++ の IntelliSense は、ルート フォルダーに CppProperties.json ファイルを作成しなくても動作します。 これに加えて、CMake に用意された構成と CppProperties.json ファイルをユーザーが簡単に切り替えることができるように新しいドロップダウンが追加されました。 [フォルダーを開く] での CMake のサポート: [フォルダーを開く] で CMake プロジェクトを開くと、C++ の編集、ビルド、およびデバッグ用の環境が自動的に構成されます。
CMakeLists.txt ファイルと同じフォルダーに配置される CMakeSettings.json ファイルにより、追加の構成がサポートされます (図 19)。
C++ による Windows デスクトップ開発:
元の C++ ワークロードのインストールに対して、より詳細なインストール エクスペリエンスを提供します。 必要なツールだけをインストールできる選択可能なコンポーネントが追加されました。 インストーラーの UI のコンポーネント一覧で示されるインストール サイズは正確ではなく、合計サイズが少なめに表示されることに注意してください。
C++ デスクトップ ワークロードで Win32 プロジェクトを作成するには、ツールセットと Windows SDK の両方をインストールする必要があります。 推奨される (選択されている) コンポーネント "VC++ 2017 v141 toolset (x86, x64)" と "Windows 10 SDK (10.0.14393)" をインストールすれば、確実に実行できます。 必要なツールがインストールされていない場合、プロジェクトは正常に作成されず、ウィザードがハングします。
C++ による Linux 開発:
C++ によるゲーム開発:
C++ によるモバイル開発 (Android および iOS):
ユニバーサル Windows プラットフォーム開発:
Visual Studio 2017 に同梱されている Clang/C2 ツールセットが /bigobj スイッチをサポートするようになりました。これは、大規模なプロジェクトを構築する際に重要です。 また、コンパイラのフロントエンドとバックエンドの両方について、いくつかの重要なバグ修正が組み込まれました。
このリリースでは、C# 7.0 と Visual Basic 15 の言語機能サポートが導入されています。
C# の場合 :
Task<T>
と Task
に制限されていました。Visual Basic の場合
Dim point As (x As Integer, y As Integer) = GetOffset()
&B1001_0011
。詳細については、CSharpLang GitHub と VBLang GitHub で公開される弊社の言語設計の最新情報をいつも確認して、これらおよび他の提案中の言語拡張機能に関する情報を入手してください。
Visual Studio はさまざまなリファクタリングを提供します。生産性が上がり、コードがさらに読みやすくなります。 以下にいくつかの例を挙げます。
out
変数宣言の移動 (図 21)。Ctrl+
を使って 1 クリックで、一致する名前により別のファイルに配置します。Ctrl+
を使用できます。String.Format
の文字列補間への変換: このクイック アクションを使用して C# 6 言語機能を活用します。Visual Studio での EditorConfig のサポートに基づき、コミュニティと協力して .NET コード スタイル設定をファイル形式に追加しました。 これは、チームのコード スタイル規則を構成し、ソース管理に適用し、開発者がエディターでの入力時に規則に違反するとリアルタイムに表示できることを意味します。 Roslyn リポジトリの .editorconfig またはドキュメントですべてのコード スタイル オプションを確認できます。 [ツール] > [オプション] > [テキスト エディター] > [C#/Basic] > [コード スタイル] を選択すると、お使いのコンピューター固有のコード スタイル設定を引き続き構成できます。EditorConfig が存在して競合するとき、これらのルールはオーバーライドされます。
チームでコーディング規則をカスタマイズして適用するための、次のようなスタイル アナライザーも追加/更新されました。
var
または明示的な型の使用。this.
または Me.
の使用。cast
チェックと null
チェックにパターン一致を使用。注: これらのコード スタイル ルールのいくつかは、既定で、エディターで提案として構成されます (図 23)。
また、このリリースでは、大規模なソリューションやよく知らないコードベースで作業するときの生産性を高めるために、IntelliSense に対する強化が加えられています。 種類 (例: メソッド、プロパティ、クラスなど) によってメンバーの一覧をフィルター処理するためのアイコン トレイが IntelliSense に追加されました。 フィルターのトグルにはそれぞれ関連付けられたキーボード ショートカットがあり、アイコンにカーソルを合わせることで調べることができます。 この機能を有効にするには、[ツール]>[オプション]>[テキスト エディター]>[C# / Basic]>[IntelliSense] に進み、フィルター処理と強調表示のオプションをチェックします (図 24)。
Enter
キーを押すと、長い文字列を複数の連結された文字列に分割できるようになりました。[<Struct>]
属性による構造体のレコードのサポート (協力者: Will Smith)。[<Struct>]
属性による構造体の判別された共用体のサポート。Result<'TSuccess, 'TFailure>
型 (協力者: Oskar Gewalli)。fixed
キーワード。namespace rec
と module rec
を介した同じファイル内の相互参照型とモジュール。(多くは F# コミュニティによるものです)
(新しい IDE 機能の多くは素晴らしい F# コミュニティの貢献によるものです)
EditorBrowsable(EditorBrowsableState.Never)
属性の考慮 (協力者: Vasily Kirichenko)。new
キーワード アナライザーの追加とコード修正 (協力者: Vasily Kirichenko)。open
ステートメント アナライザーの追加とコード修正 (協力者: Vasily Kirichenko)。Visual Studio 2017 の F# ツーリングのビルドを使用し、バグを投稿し、話し合いを重ね、バグの修正プログラムや機能を導入した F# コミュニティ全体に感謝いたします。 Visual Studio 2017 の F# は、F# コミュニティの協力がなければ成功しませんでした。 協力者の全一覧はここでご覧になれます。
TypeScript 2.1 を、Visual Studio のすべての TypeScript プロジェクトに使用できます。 TypeScript 2.1 は、下位レベルの async/await、より優れた型推論、ローカルのオブジェクトの展開などを提供します。 本リリースの詳細については、リリース ブログ投稿または詳細な変更ログを参照してください。
新しい JavaScript 言語サービス (図 25) が既定で有効になっています。 この新しいサービスはより充実した IntelliSense を提供し、JSDoc コメント注釈、ES6、共通 JS モジュール形式の IntelliSense をサポートします。 また、JSX 構文や、ES2016 の機能 (ジェネレーター、モジュール、デコレータなど) をサポートします。 詳細については、このブログ投稿か GitHub の JavaScript IntelliSense ドキュメントをご覧ください。
パフォーマンスの向上は今回のリリースで最も重視された部分の 1 つでした。 いくつかの最適化によりメモリと応答性の特性が改善されたほか、JavaScript/TypeScript 言語サービス全体が devenv.exe
の外のサテライト プロセスに移り、大規模な Visual Studio プロジェクトでメモリを解放できます。
Visual Studio プロセスのメモリ消費量が下がり、大規模な JavaScript プロジェクトの作業中、メモリ クラッシュが減ります。
デバッグ時にコード行の隣にあるアイコンをクリックするだけで、その行に実行されます (図 26)。 目的の行でのコードの実行や停止のため、一時的なブレークポイントを設定したり、複数の手順を実行したりする必要がなくなりました。 デバッガーの実行中にブレーク状態で停止したときに、マウスのポインターを置いたコード行の横に [Run to Click]\(クリックで実行) アイコンが表示されます。 マウスをアイコンに移動し、ボタンをクリックすると、次にコード パスでその地点に到達すると、該当の行でコードが実行され、停止されます。 これは、メイン メニューで [デバッグ]>[オプション]>[Enable Run]\(実行の有効化\) をクリックすることによってもオフにできます。
[プロセスにアタッチ] ダイアログ (図 27) で簡単に検索して、デバッガーをアタッチするプロセスをすばやく見つけることができます。 実行中のプロセスの一覧にフィルターが適用され、検索条件に一致する項目が表示されます。 検索フィルターでは値が保持されるため、ダイアログを再び開いたときに前回の検索条件が使用されます。
以前にデバッグしていたプロセスにすばやく再アタッチできるようになりました。 新しいデバッグ/プロセスに再アタッチ (Shift + Alt + P キー) コマンドをトリガーすると、[プロセスにアタッチ] ダイアログで起動された前回のデバッグ セッションの最後のプロセスにデバッガーをアタッチする操作が試みられます。 デバッガーは、再アタッチするプロセスを見つける際に、前回のプロセス ID、前回のプロセス名の順に一致するプロセスを検索します。 一致するプロセスが見つからない場合、または同じ名前のプロセスが複数見つかった場合は、[プロセスにアタッチ] ダイアログが表示され、目的のプロセスを選択できます。
新しい例外ヘルパー (図 28) を使用することにより、内部例外にすぐにアクセスできるコンパクトな非モーダル ダイアログに例外情報を表示できます。 NullReferenceException の診断時に、例外ヘルパー内の null をすばやく確認できます。 特定のモジュールからスローされた例外の種類の中断を除外できるようになりました。スローされた例外での中断時に条件を追加するチェックボックスをオンにします。 例外ヘルパーの新しい利点について詳しくは、このブログ投稿をお読みください。
スローされた例外で中断するようにデバッガーを構成する場合、指定されたモジュールで例外がスローされた場合に限りデバッガーが中断するよう、条件を追加できます (図 29)。
いくつかのデバッガー ウィンドウ ([呼び出し履歴]、[ローカル]、[自動変数]、[ウォッチ]、および [クイックウォッチ]) がスクリーン リーダーでより効果的に使用できるようになったほか、その他のアクセシビリティ ニーズにも対応します。
IntelliTrace では、ASP.NET Core アプリの MVC、ADO.NET、HttpClient イベントがサポートされるようになりました。 これらのイベントは、[診断ツール] ウィンドウの [イベント] タブに表示されます。
デバッグ セッションを開始すると、[診断ツール] ウィンドウにアプリケーションの新しい概要ビュー (図 30) が表示されます。 ここから、次の操作を行うことができます。
パフォーマンス プロファイラーは、実行中のプロセスにアタッチできるようになりました。 CPU 使用率ツール、GPU 使用率ツール、およびパフォーマンス ウィザードで、実行中のプロセスへのアタッチ操作がサポートされます。
CPU 使用率ツールに関していくつかの改良が行われています。
ASP.NET プロジェクトのデバッグを開始したときにブラウザーとして Google Chrome を選択した場合、Chrome で実行される JavaScript がデバッグされます。 代わりにブラウザー内開発ツールを使用する場合は、[ツール] > [オプション] > [デバッグ] の順に移動し、この機能を無効にすることができます。
ライブ単体テスト (図 33) は Visual Studio 2017 Enterprise Edition の機能であり、単体テスト結果やコード カバレッジをエディターでライブ表示します。 .NET Framework を対象とする C# プロジェクトと VB プロジェクトで MSTest、xUnit、Nunit をサポートします。
詳細については、ライブ単体テストに関するブログを参照してください。
テスト エクスプローラーでテスト方法を選択することで、テスト ケースの作業項目 (図 34) とオートメーションを関連付けることができるようになりました。 この新しい機能では、選択したテスト方法の既存の関連付けも表示できます。
テスト エクスプローラーでテストを右クリックし、
テスト ケース ID を入力すると、関連付けが作成されます (図 35)。
以前のバージョンの Visual Studio では、この作業は作業項目フォームで行っていました。 作業項目フォームを基盤とする操作は、[ツール]、[オプション] の順に選択し、互換性モードをオンにすることで有効にできます (図 36)。
Visual Studio 2017 に Git の新機能が追加され、IDE を終了しなくても、さらに多くのエンドツーエンド ワークフローを実行できるようになりました。 送信コミットの差分を表示する、強制プッシュを実行して再ベースを完了するか、修正後のコミットをプッシュする、アップストリーム ブランチの設定を解除する、Visual Studio からパッチの再ベースを続行するといった作業を簡単に実行できます。 また、git.exe に移行しました。 これにより、最新の機能を提供することができます。 SSH 対応となり、ユーザーの設定オプションが適用され、チーム エクスプローラーにコマンド ラインとまったく同じ内容が表示されます。 これらの機能については、ブログ投稿を参照してください。
Visual Studio スタート ページやチーム エクスプローラーでは、プロジェクトに接続したり、VSTS/TFS のリポジトリを複製したりするプロセスがカスタマイズされ、合理化されました。接続するプロジェクトやリポジトリを簡単に見つけることができます。 新しい [接続] ページには、(すべてのプロジェクトのすべてのリポジトリではなく) すべての VSTS/TFS サーバー間でマップおよび複製されているプロジェクトとリポジトリだけが表示されます。 さらに、リポジトリを複製する前に、プロジェクトに接続する必要がなくなりました。
VSTS と TFS に接続するためのダイアログを起動すると、再設計された UX が表示されます。 追加したすべての TFS サーバーが表示され、続いて選択したユーザー アカウントの VSTS のすべてのサーバー、プロジェクト、およびリポジトリが表示されます。 ナビゲーションの向上のために、結果はツリーで表示されています。 リポジトリに加え、コレクションまたはプロジェクトにも接続できます。
Visual Studio 2017 から Visual Studio Team Services に接続して作業項目を開くと、作業項目フォームが Web ブラウザーに表示されます (図 37)。 しかし、Team Foundation Server 2015 以前に接続すると、従来の作業項目フォームが表示されます。
Visual Studio 2017 には、フォローアップとコラボレーションの向上のためのアップグレードされたフィードバック エクスペリエンスが含まれます。 このアップグレードの一環で、総合的な Web ポータルが追加され、Visual Studio での共同作業の問題を報告しやすくなり、包括的なフィードバック ソリューションが実現されました。 Visual Studio IDE の問題の報告機能からいただいたすべてのフィードバックについて、検索、追跡、投票、最新の更新プログラムの入手ができます。 これらの強化された操作性で、ユーザーから送信された多くのフィードバックに対応し、Microsoft のチームとユーザーの間で双方向の通信が可能になります。
Visual Studio 2017 の新しいインストーラー テクノロジにより、ユーザーは、インストールされるツールをより細かく制御できます。 核となる Visual Studio エディターのみをインストールするユーザーもいれば、複数のワークロードをインストールするユーザーもいます。 必要な前提条件の機能と拡張機能が確実にインストールされるように、拡張機能の作成者は、その拡張機能に必要な個々のコンポーネントをマニフェストで指定できるようになりました。
ユーザーは、新しい VSIX 形式を使用して作成されていない拡張機能をインストールしようとすると警告されます。 古い VSIX 形式では必要な必須コンポーネントが指定されないため、Visual Studio 2017 でこれらの必須コンポーネントを使用できない場合に動作しない可能性があります。 新しい VSIX 形式は下位互換性があるため、Visual Studio 2012 までの Visual Studio の以前のバージョンを対象にすることができます。
VSIX マニフェスト デザイナーは、マニフェストの変更を反映するように更新されました。 拡張機能の開発者は、[必須コンポーネント] タブ (図 38) のインストール済みコンポーネントの一覧で、拡張機能の必須コンポーネントとして使用する拡張機能を指定できます。
拡張機能のインストール中、VSIX インストーラー (図 39) は、足りないコンポーネントを示し、これらのコンポーネントを拡張機能と共にインストールします。
[拡張機能と更新] ダイアログ (図 40) では、Visual Studio を再起動する前に、複数の拡張機能のインストール、更新、およびアンインストールをスケジュールできるようになりました。 右下隅には、スケジュールされたタスクの概要が表示されます。 スケジュールされた変更を削除するには、インストールがスケジュールされている拡張機能の隣にある X をクリックします。
VSIX インストーラーは、Visual Studio のすべてのウィンドウが閉じられたことを検出すると、スケジュールされた変更の実行を開始します (図 41)。
Ngen を使用してアセンブリをインストールできるようになりました (図 42)。
拡張機能ディレクトリの外部にあるフォルダーの選択リストにファイルをインストールできるようになりました (図 43)。
Visual Studio 2017 の新機能である拡張機能マネージャーのローミングを使用すると、すべての開発環境にあるお気に入りの拡張機能を追跡できます。 拡張機能マネージャーのローミングは、クラウド内に同期されるリストを作成することで、インストールされている拡張機能を追跡します。
Visual Studio にサインインし、[ツール] > [拡張機能と更新プログラム] の順に選択し、[拡張機能マネージャーのローミング] をクリックすると、拡張機能の一覧がすぐに表示されます (図 44)。 拡張機能マネージャーのローミングでは、インストールした拡張機能が追跡されます。また、[Roaming List] (ローミング リスト) に追加する拡張機能を選択できます。 ギャラリーには毎日新しい拡張機能が追加されるので、お気に入りの拡張機能で開発環境をすばやく簡単にセットアップできます。
この機能を使用すると、3 つのアイコンが表示されます。
これらのアイコンは、リストの現在の状態を示します。 任意の状態の任意の拡張機能を使用できるので、好みに合わせてカスタマイズするか、 既定の設定を利用してください。 サインイン中にダウンロードした拡張機能は、[ローミングおよびインストール済み] としてリストに追加され、[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 へのアップグレード)を参照してください。
これには、新しい 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 ブログを参照してください。
この更新された .NET ネイティブ ツールチェーンでは、Visual Studio でマネージド UWP アプリの実行時パフォーマンスを向上させるためのいくつかの最適化が追加されています。 このリリースには、600 以上のバグ修正と、お客様の重要なフィードバックに対処してツールチェーン全体の品質を向上させるための機能が含まれています。
この .NET Core NuGet フレームワーク ライブラリの更新は、お客様によって報告されたいくつかの重要な問題に対処しています。 既存の UWP プロジェクトは、NuGet 参照マネージャーを使用して、この新しいバージョンに更新できます。 また、新しい .NET Core パッケージには .NET ネイティブ ツールチェーンが含まれます。
Windows 10 Anniversary Update 用の Windows SDK および Windows Phone エミュレーターが、このリリースには含まれます。
マニフェスト デザイナー (図 45) の外観が更新され、お使いの UWP アプリのビジュアル資産を作成する機能が追加されました。 アプリがターゲットとするあらゆる種類のデバイスに合ったサイズのタイル、ロゴ、アイコン、およびスプラッシュ画面を、1 つのソース画像から作成できます。
ユニバーサル Windows プラットフォーム ツールにアクセシビリティやパフォーマンスに関連する一般的な問題を検出する機能が搭載されました。 [診断ツール] ウィンドウの [ツールの選択] メニューで "UI Analysis" ツールを有効にすることで、これらの問題が問題の対処方法と理由について解説した有用な記事へのリンクと共に報告されます。 UI Analysis を有効にして開発すると、UI のパフォーマンスとアクセシビリティがアプリケーション開発の中心となります。
Visual Studio 2017 には Xamarin 4.4 が含まれています。 詳細については、Xamarin のリリース ノートをご覧ください。
この Xamarin for Visual Studio 4.4 リリースでは、Xamarin.iOS 10.8 リリースと Xamarin.Android 7.2 リリースの更新が行われました。
このリリースでは、以下の修正が行われています。
bash
構文が使用されていない場合、Mac サーバーに接続できない。(4.3.1.1)この Visual Studio 2017 リリースには、次の機能強化が含まれています。
iOS 10 & XCode 8 のサポート - iOS 開発用の remotebuild
サーバー エージェントの更新に XCode 8 のサポートが含まれました。
エラーの色づけ - 多くの場合、ビルドの失敗を診断するには開発者がビルド出力を確認する必要があるため、読みやすくするためにエラーを色分けしてビルド出力ウィンドウに表示するようにしました (図 47)。 さらに、ビルド処理が失敗した場所を開発者が特定できるように、ビルド処理のステップを区切るためのヘッダーを追加しました。
重要
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 により、Visual Studio が強力な Node.js 開発環境に変わります。 このリリースでは、安定性、パフォーマンス、および製品全体の品質に重点を置いています。
Node.js Tools for Visual Studio のこのリリースに多大な貢献をいただいたすばらしい協力者の皆さんに感謝します。 詳細については、オープン ソースの GitHub の Node.js ツール プロジェクトを参照してください。
Visual Studio を使用して、あらゆるプラットフォーム向けの Unity ゲームを作成してデバッグできます。 新しい Visual Studio 2017 インストーラーでは、Visual Studio Tools for Unity 3 (図 49) を "Unity によるゲーム開発" ワークロードと共にインストールできます。 Visual Studio Tools for Unity 3 では、Unity 開発者のコード編集およびデバッグ エクスペリエンスの改善に加えて、以下を含む製品全体の品質に重点を置いています。
データ ストレージと処理ワークロードで Redgate SQL Prompt Core、Redgate SQL Search、Redgate ReadyRoll Core から構成される Redgate Data Tools が利用可能になり、Visual Studio 2017 DevOps 機能を SQL Database 開発で利用できるようになりました。
Visual Studio 2017 には NuGet 4.0 が含まれています。 このリリースでは、多数のプロジェクトの種類のパッケージ参照、品質の改善、およびパフォーマンスの改善をサポートすることに重点を置いています。
Visual Studio で、WPF またはユニバーサル Windows アプリの実行中に XAML を編集できるようになりました。 Visual Studio でアプリをデバッグするとき、XAML コード エディターでマークアップを変更すると、アプリケーションを再コンパイルしなくても、実行中のアプリでその変更を反映することができます。
Ctrl+R+R
) を使用して呼び出すこともできます。 変更を適用する前にプレビューすることもできます。Ctrl+R+G
) を使用して、不要な名前空間 (図 52) を削除したり、名前空間を並べ替えたりすることができます。 XAML ドキュメントに不要な名前空間が含まれている場合は、それらを削除するオプションを示す電球が表示されます。XAML エディターの .editorconfig のサポート - .editorconfig ファイルで indent_style、indent_size、および tab_width の設定を定義できます。この設定は、[ツール] > [オプション] で定義した設定に代わって使用されます。
XAML エディター用の構造ビジュアライザー - 構造ビジュアライザー (つまりインデント ガイド) (図 53) が Visual Studio に組み込まれ、別の拡張機能は不要になりました。 この機能により、スクロールすることなく作業中のコード ブロックのコンテキストがひとめでわかります。
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 統合およびパスワード認証に対応しています。
Visual Studio 2017 には Developer Analytics Tools v8.6 が含まれており、次の点が改善されました。
Application Insights の詳細については、Microsoft Azure の文書をご覧ください。
このリリースには、次のような、最新の機能および更新プログラムを備えた Office Developer Tools が含まれています。
Visual Studio Enterprise では、依存関係検証ダイアグラム (レイヤー図とも呼ばれます) を設定した場合、コード エディターでのコードの入力時にアーキテクチャ依存関係ルールに違反するとリアルタイムの通知 (図 54) が表示されるようになりました。 エラーは [エラー一覧] に表示され、テキスト エディターでは波線でこの違反の正確な場所が示されます。 これにより、不要な依存関係を導入する可能性を低減できます。
Visual Studio 2017 の開発者コマンド プロンプトのスクリプトは、新しいインストール エクスペリエンスをサポートするようにリファクタリングされています。
common7\tools\vsdevcmd.bat -help
を呼び出してください。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 インストーラーからのみ取得できます。
リリース日: 2017 年 3 月 14 日
以下は、15.0.1 で対処された、ユーザーから報告された問題です。
リリース日: 2017 年 3 月 28 日
以下は、15.0.2 で対処された、ユーザーから報告された問題です。
リリース日: 2017 年 3 月 31 日
Xcode 8.3、iOS 10.3、watchOS 3.2、および tvOS 10.2 ツールおよび Visual Studio 2017 用 Xamarin.VS 拡張機能の API がサポートされるようになりました。
リリース日: 2017 年 5 月 23 日
オフライン インストール シナリオでインターネット アクセスが不要になりました。
リリース日: 2017 年 9 月 18 日
以下は、15.0.5 で対処された、ユーザーから報告された問題です。
リリース日: 2017 年 11 月 14 日
Microsoft は、.NET Core および ASP.NET Core のセキュリティ アドバイザリをリリースしました。 詳細については、.NET Core および ASP.NET Core のリポジトリの該当するお知らせを参照してください。 次の情報にご注意ください。
.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 に更新することをお勧めします。
クロス オリジン リソース共有 (CORS) をバイパスできる ASP.NET Core 1.0 および 1.1 では、情報漏えいにつながるセキュリティの脆弱性があります。
オープン リダイレクトが存在する ASP.NET Core 2.0 でのセキュリティ脆弱性のため、特権の昇格が発生する可能性があります。
ASP.NET Core 1.0、1.1、2.0 でアプリケーションが Windows の Http.Sys によってホストされていると、形式が適切でない要求によってサービス拒否が発生するセキュリティの脆弱性があります。 ASP.NET Core 1.0 および ASP.NET Core 1.1 で作成した新しいプロジェクトは、上記のセキュリティ更新プログラムを含むパッケージ バージョンを使用します。 既存のプロジェクトの場合、ユーザーは [NuGet パッケージの管理] ダイアログを使用してパッケージを新しいバージョンに更新することができます。
リリース日: 2017 年 12 月 6 日
Microsoft は、ASP.NET Core のセキュリティ アドバイザリをリリースしました。 詳細については、ASP.NET Core のリポジトリの該当するお知らせを参照してください。 次の情報にご注意ください。
クロス オリジン リソース共有 (CORS) をバイパスできる ASP.NET Core 1.0 および 1.1 では、情報漏えいにつながるセキュリティの脆弱性があります。 ASP.NET Core 1.0 および ASP.NET Core 1.1 で作成した新しいプロジェクトは、上記のセキュリティ更新プログラムを含むパッケージ バージョンを使用します。 既存のプロジェクトの場合、ユーザーは [NuGet パッケージの管理] ダイアログを使用してパッケージを新しいバージョンに更新することができます。
2018 年 1 月 9 日のリリース
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 に更新することをお勧めします。
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 に更新することをお勧めします。
リリース日: 2018 年 2 月 2 日
リリース日: 2018 年 2 月 21 日
チーム エクスプローラーでは TLSv1.2 がサポートされます。 Visual Studio に付属する Git と Git Credential Manager のコンポーネントを更新しました。 必須ではない Git for Windows コンポーネントも更新されています。 Git からの接続先サービスで TLSv1 と TLSv1.1 のサポートが非推奨とされ、TLSv1.2 が採用されている場合にも、この変更でそのサービスに接続できるようになります。
リリース日: 2018 年 3 月 13 日
Microsoft は、.NET Core のパブリック バージョンに存在するセキュリティ上の脆弱性を認識しています。このバージョンでは、悪意のあるファイルや Web 要求によってサービス拒否 (DoS) 攻撃が引き起こされる可能性があります。
リリース日: 2018 年 4 月 10 日
Visual Studio でプログラム データベース (PDB) ファイルをコンパイル中に制限されていないメモリの内容が不適切に開示される場合に、情報漏えいの脆弱性が存在します。 この情報開示を利用した攻撃者は、PDB ファイルのコンパイルに使用された Visual Studio インスタンスから、初期化されていないメモリを閲覧することができます。
攻撃者がこの脆弱性を利用するには、脆弱なバージョンの Visual Studio を使用して作成された、影響を受ける PDB ファイルにアクセスする必要があります。 攻撃者は開発者に対して、この情報漏えいを強制的に実行させることはできません。
このセキュリティ更新プログラムは、プロジェクトのコンパイル時に PDB ファイルが生成される方法を修正することにより、この脆弱性を解決します。
リリース日: 2018 年 4 月 26 日
リリース日: 2018 年 5 月 31 日
Git コミュニティで明らかになった Git のセキュリティ上の脆弱性を修正しました。 この脆弱性は、ユーザーが悪意のあるリポジトリを複製した場合に、任意のコード実行を引き起こす可能性がありました。
リリース日: 2018 年 7 月 10 日
特別に作成されたプロジェクト、またはリソース ファイルを開くことで、ユーザーのコンピューターの悪用につながる可能性のある、リモート コード実行の脆弱性。 このセキュリティ更新プログラムは、Visual Studio でのファイルのソース マークアップの確認方法を修正することで、脆弱性に対処します。
.NET ソフトウェアにはリモート コード実行の脆弱性が存在します。そのため、攻撃者は現在のユーザーのコンテキストで任意のコードを実行することができ、ユーザーのコンピューターの悪用につながる可能性があります。 このセキュリティ更新プログラムは、.NET でのファイルのソース マークアップの確認方法を修正することで、脆弱性に対処します。
Microsoft Macro Assembler で正しくコードが検証されないことに関する改ざんの脆弱性 このセキュリティ更新プログラムは、確実に Microsoft Macro Assembler でコード ロジックが正しく検証されるようにすることで、脆弱性に対処します。
ASP.NET Core にはセキュリティ機能バイパスの脆弱性が存在します。不適切なログイン試行の回数が検証されず、攻撃者による無限の認証試行につながる可能性があります。 この更新プログラムは、不適切なログイン試行の回数を検証することで、脆弱性に対処します。
リリース日: 2018 年 8 月 2 日
Microsoft は .NET Core が証明書を適切に検証しない場合に存在するセキュリティ機能バイパスの脆弱性を認識しています。 この脆弱性の悪用に成功した攻撃者は、チャレンジの際に有効期限が切れた証明書を提示することができました。 この更新プログラムでは、.NET Core による証明書の検証方法を修正することにより、脆弱性を解決します。
リリース日: 2018 年 8 月 14 日
Visual Studio サービスには特権の昇格の脆弱性が存在し、管理者以外のユーザーがシステム特権でファイルを書き込む可能性があります。 この脆弱性を悪用した攻撃者が、ユーザー レベルのアクセス権しか持たないのに、システムとしてファイルを書き込む可能性があります。 このセキュリティ更新プログラムでは、現在のユーザーを偽装してファイルの場所へのアクセスを検証することにより、この問題に対処します。
リリース日: 2018 年 8 月 28 日
ご意見とご感想はすべて参考にさせていただいております。 開発者コミュニティ サイトにアクセスして、最新の問題を検索したり、新しい問題を投稿したり、既存の問題を更新したりします。
皆様のご意見をお待ちしております。 問題がある場合は、インストーラーまたは Visual Studio IDE 自体の右上隅にある [問題の報告] オプションからお知らせください。 右上隅に アイコンがあります。
製品に関する提案をしたり、 Visual Studio 開発者コミュニティで問題を追跡したりすることにより、質問、回答の検索、新機能を提案したりすることができます。
ライブ チャット サポートを介して、無料のインストールのヘルプを取得することもできます。
開発者ツールのブログで提供されている洞察や推奨事項を活用すると、すべての新しいリリースに関する最新情報を入手し続けることができ、さまざまな機能について掘り下げた記事を参照することもできます。
過去のバージョンの Visual Studio 2017 に関連する詳細については、「Visual Studio 2017 リリース ノート履歴」のページを参照してください。
トレーニング
ラーニング パス
ソリューション アーキテクト: Microsoft Power Platform のソリューションを設計する - Training
ソリューション アーキテクトがソリューションを設計する方法について説明します。