Visual Studio 2017

Last Update: 2017/04/27

最新の更新プログラムを確認するには、英語版の「Release Notes」をご覧ください。

Microsoft は、Visual Studio 2017 がリリースされたことをお知らせいたします。 このリリースでは、モジュール式の軽量インストールが新しく導入されました。お客様のニーズに合わせてご利用いただけます。

Visual Studio 2017 を利用し、Android、iOS、Windows、Web、クラウド向けのアプリを開発します。 短期間でプログラミングできて、デバッグや診断も簡単に行えます。テストを頻繁に行うことで、自信をもってリリースできます。 独自の拡張機能を開発することで Visual Studio を拡張し、カスタマイズすることもできます。 今回の新しいリリースでは、バージョン管理を使用した、迅速で、効率的な共同作業が可能になりました。

ダウンロード: Visual Studio Enterprise 2017

他の関連ダウンロードについては、ダウンロードのページをご覧ください。 併せて、「Visual Studio 2017 のシステム要件」と「Visual Studio 2017 の対象プラットフォームと互換性」もご覧ください。

フィードバック

皆様のご意見をお待ちしております。 問題については、インストーラーまたは Visual Studio IDE 内で、右上の隅にある問題の報告 からご報告ください。 お客様のフィードバックは、開発者コミュニティ ポータルで追跡いただけます。 ご意見やご要望は、UserVoice からお寄せください。

リリース履歴

既知の問題

既知の問題」セクションを参照してください。


リリース日: 2017 年 4 月 17 日 - バージョン 15.1 (26403.07)

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

以下は、ユーザーから報告され、このバージョンで対処された問題です。

このバージョンで対処されたその他の問題:

  • オフライン レイアウトが新しいバージョンに更新されていても、インターネットにアクセスできない環境でオフライン レイアウトからインストールすると、更新の通知が送られてこない。

リリース日: 2017 年 4 月 10 日 - バージョン 15.1 (26403.03)

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

以下は、ユーザーから報告され、このバージョンで対処された問題です。


リリース日: 2017 年 4 月 5 日 - バージョン 15.1 (26403.00)

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

  • ユニバーサル Windows アプリ開発用ツール - Windows 10 Creators Update (バージョン 1703) 用 UWP アプリを開発するためのサポート。
  • 新しいチーム エクスプローラーのスタンドアロン インストール。
  • Microsoft アカウントにサインアップしてサインイン - 最初の起動ダイアログ ボックスから 1 つの手順でできるようになりました。
  • インストーラーの信頼性とアクセシビリティの問題点が解決されました。
  • レイアウト インストーラーのエクスペリエンスが向上しました。 インストーラーが InstallRecommended と InstallOptional を適切に優先するようになりました。

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

バージョン 15.1 で解決された問題の詳細については、開発者コミュニティ ポータルを参照してください。

このリリースの新機能

新しいチーム エクスプローラーのスタンドアロン インストール

Visual Studio Team Explorer 2017 は、Team Foundation Server と Visual Studio Team Services にアクセスすることができる高機能なスタンドアロン クライアントです。すべてのユーザーが無料で使用できます。 このインストールにはチーム エクスプローラーのみが含まれているので、他の IDE コンポーネントなしでバージョン コントロールと作業項目の追跡にアクセスできます。

チーム エクスプローラー

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

ユニバーサル Windows アプリのワークロードに Creators Update SDK (10.0.15063) が追加されたため、Windows 10 Creators Update (バージョン 1703) 用アプリをビルドできるようになりました。 さらに、このリリースには次の機能強化が含まれています。

  • Creators Update SDK 以降、Windows 10 SDK は side-by-side インストールできるようになりました。そのため、1 台のコンピューターを使用して、リリース バージョンの SDK をターゲットにした運用環境用のアプリをビルドし、さらにプレビュー バージョンの Windows SDK に搭載されている新しい OS 機能もテストすることができます。
  • PackageReference を使用して package.config と package.json を置き換えることで NuGet のパッケージ管理が改善されました。
  • .NET ネイティブ コンパイラが強化され、NuGet パッケージとして提供されるようになりました。
  • Visual Studio の XAML コントロール用ツールのサポートが改善され、NuGet パッケージとして提供されるようになりました。
  • XAML エディターの IntelliSense で、アプリがターゲットにしている SDK のバージョンでサポートされていない XAML の型とプロパティが強調表示されるようになりました。

詳細については、「Creators Update SDK support in Visual Studio 2017」(Visual Studio 2017 の Creators Update SDK のサポート) を参照してください。


リリース日: 2017 年 3 月 31 日バージョン 15.0 (26228.12)

このリリースの新機能

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

リリース日: 2017 年 3 月 28 日バージョン 15.0 (26228.10)

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

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


リリース日: 2017 年 3 月 14 日バージョン 15.0 (26228.09)

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

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


リリース日: 2017 年 3 月 7 日バージョン 15.0 (26228.04)

まとめ

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

  • 新しいインストール エクスペリエンス - 最小フットプリントの縮小により、より高速でカスタマイズ可能なインストールが実現し、オフライン インストールがサポートされるようになりました。
  • 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 ツールにいくつかの機能強化が行われました。

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

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

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

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

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

  • .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 インストーラーで利用できるようになりました。

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

Visual Studio 2017 (バージョン 15.0) で解決されたすべての問題を確認するには、開発者コミュニティ ポータルにアクセスしてください。

Visual Studio 2017 の新機能

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

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

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

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

The new installation experience in 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 拡張機能を選択できます。
  • すべてのプロジェクトの再読み込みは、[ソリューションの再読み込み] に置き換わり、外部の分岐を VS に切り替えるときのパフォーマンスが改善されました。 パフォーマンスを最大限に改善するには、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 ホストに対するローカル リポジトリの発行や、コミットされていない、かつプッシュされていない作業の把握が簡単になりました。

Version Control - Unpublished commits example

Version Control - No pending changes example

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

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

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

スタート ページ

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

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

新しいスタート ページを以下に示します。

Start Page with Get Started and News

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

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

  • すべてにジャンプ を利用すると、コード内のファイル、型、メソッド、その他の要素を簡単に見つけて移動できます。 大規模なコード ベースであっても、あらゆる種類の項目を見つけることができます。 さらに、項目の種類がわかっている場合、簡単にフィルターすることもできます。 C#、Visual Basic、F# に "あいまい" 一致が追加されました。綴りを間違えても、結果が表示されます。 Microsoft は、指定行へのジャンプ エクスペリエンスも最新化しました。 [編集] メニューの上部にあるコマンドの [移動先] ファミリを検索できます。

Go To Results Filtered

Go To Line

  • すべての参照の検索 が改良され (現時点では C#、Visual Basic、C++、F# に対応)、参照の結果内で高度なグループ化、フィルター処理、並べ替え、検索機能に加え、結果の色付け (C# と VB の場合) が可能になり、参照を明確に理解し、必要なコード行に確実に移動できます。 参照項目にマウス ポインターを合わせると、ソース コード内の参照のコンテキストと共にツールヒントが表示されます (C# および VB の場合)。 ツール バーの [結果を保持] ボタンを切り替えることにより、[すべての参照の検索] を次回呼び出したときに、参照の結果が新しいウィンドウに表示されます。 これにより、現在の結果を既存のウィンドウに保持できます。

Find All References

  • エディターで構造のガイド線が描画されるようになったため、作業中のコードの構造を簡単に視覚化できます。 マウス ポインターを合わせると、先祖のブロックを基準とする現在のコード ブロックのコンテキストを含むツールヒントが表示されます。 構造のガイド線は、現在、C#、Visual Basic、F#、XAML のファイルに加えて、TextMate 文法を介してサポートされるすべてのファイルでサポートされます。 この機能は、[ツール オプション] ダイアログ ボックスで無効にすることができます。これには、[テキスト エディター] > [全般] カテゴリで [構造のガイド線を表示する] チェック ボックスをオフにします。

Structure Guide Lines

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

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

フォルダーを開く

[フォルダーを開く] は、プロジェクトとソリューションなしでコード ベースを操作するのに便利です。 [ファイル]、[開く]、[フォルダー] の順に選択してフォルダー ビューを開き、ナビゲートするフォルダーを選択します。

The new Open Folder feature in the Visual Studio IDE

ソリューション エクスプローラーを使用してファイルを開き、編集することができます。 多くの一般的な言語には、構文の強調表示とシンボルのナビゲーション (GoTo) のサポートがあります。 さらに、次の一部の言語では、高度な IntelliSense と、フォルダーからの直接デバッグのサポートが用意されています。

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

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

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

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

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

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

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

The new Lightweight Solution load feature in the Visual Studio IDE

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

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

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

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

以下に示す言語のファイルは、その言語を明示的にサポートするワークロードがインストールされていない場合であっても、新しい 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 プロジェクトで有効になっています。

Project Overview

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

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

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

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

Connected Services

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

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

In-product acquisition via Quick Lauch

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

In-product acquisition via New Project Dialog


Visual C++

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

C++ コードの分析

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

CppCoreCheck properties page

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 エラーに対するフィルター処理とヘルプが追加されました。 エラー列をクリックするとフィルター処理を実行できます。 また、特定のエラーをクリックするか F1 キーを押すと、エラー メッセージのオンライン検索が開始します。

Error List

Error List Filtered

  • メンバー リストの項目を種類別にフィルターする機能が追加されました。

Member List Filtering

  • メンバー リストの表示項目のコンテキストに応じたフィルター処理を提供する新しい実験的な予測 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 ファイルにより、追加の構成がサポートされます。

CMake Open Folder

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

  • 初期化子によるオブジェクトの初期化の単純化:

Use object initializer

  • C#7 の新機能を使用したインラインでの out 変数宣言の移動:

Move out variable inline

  • C#7 の新機能を使用した、null 合体演算子を使用した null チェックとスロー式の単純化:

Use throw expression with null-coalescing operator

  • 一致するファイルへの型の移動: 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 チェックの単純化。
  • 中かっこが必要。

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

Configure code style preferences and enforcement from EditorConfig

IntelliSense 改善

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

IntelliSense Completion Filtering

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

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

Rich JavaScript IntelliSense for jQuery

パフォーマンスの向上

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


デバッグと診断

[Run To Click (クリックで実行)]

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

Run to Click Icon

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

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

Attach to Process Filter

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

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

新しい例外ヘルパー

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

The New Exception Helper dialog

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

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

Edit Conditions dialog box

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

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

.NET Core の IntelliTrace イベント

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

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

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

Summary tab in Diagnostics Tools Window

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

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

CPU 使用率ツールの更新

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

  • 外部コードのサポートの向上 - CPU ツールは、ユーザー コードからライブラリおよびフレームワークの機能を呼び出したときのコストの情報をさらに正確に提供するようになっています。
  • 関数ビュー - 関数が CPU コストで順位付けされるビュー。

Functions List

  • 呼び出し元/呼び出し先ビューでは、選択した関数に対して、または選択した関数から行われる関数呼び出しのコストを調べることができます。

Caller / Callee View

  • ソース ビューには、CPU ツールで関数が選択されているとき、関数のソース コードが表示されます。

Chrome のデバッグのサポート

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


ライブ単体テスト

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

Live Unit Testing

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


テスト ツール

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

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

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

Test Explorer Associate Automation

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

Associate Automation

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

Work Item Form Compatibility mode


チーム エクスプローラー

Git の新機能

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

VSTS/TFS への接続

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

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

作業項目フォーム

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

Work Item Form in Team Explorer


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

Prerequisite

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

VSIXInstaller

拡張機能の一括変更

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

Extensions and Updates Dialog

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

Batched Modification Installer

Ngen のサポート

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

NGEN Properties

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

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

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

VSIX Properties

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

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

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

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

The new Roaming Extension Manager in the Visual Studio IDE

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

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

これらのアイコンは、リストの現在の状態を示します。 任意の状態の任意の拡張機能を使用できるので、好みに合わせてカスタマイズするか、 既定の設定を利用してください。 サインイン中にダウンロードした拡張機能は、[Roamed & Installed (ローミングおよびインストール済み)] としてリストに追加され、[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 に配置されます。

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

マニフェスト デザイナーの外観が更新され、お使いの UWP アプリのビジュアル資産を作成する機能が追加されました。 アプリがターゲットとするあらゆる種類のデバイスに合ったサイズのタイル、ロゴ、アイコン、およびスプラッシュ画面を、1 つのソース画像から作成できます。

Manifest Visual Asset Generator

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 リリースの更新が行われました。

バグ修正

このリリースでは、次の問題点を修正しました。

  • "エンタイトルメント データの読み取りができません" という内容のエラーが発生して、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)
  • VS プロジェクト テンプレートで Microsoft.Csharp が参照されない。(4.3.1.1)
  • 構成済みのユーザー シェルで bash 構文が使用されていない場合、Mac サーバーに接続できない。(4.3.1.1)
  • テスト クラウドへの送信オプションがない (VS2013 および VS2015 で修正済み)。(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 - 新しいブラウザーベースのシミュレーターでは、迅速にコードを記述し、ブラウザー内ですぐに結果を確認できます。 ライブの再読み込み、プラグイン シミュレーション、および Ionic Framework のサポートにより、Visual Studio は市場で最速の開発者ワークフローを実現します。

Cordova simulate

  • iOS 10 & XCode 8 のサポート - iOS 開発用の remotebuild サーバー エージェントの更新に XCode 8 のサポートが含まれました。

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

Pretty printing

  • 製品内で取得 - Cordova アプリ構築の時間短縮のための軽量インストールに加えて、このたび開発が進むにつれて必要となる追加の構築ピースを Visual Studio 内で取得できるようにしました。 まだ Android や Windows のコンポーネントをインストールしていない場合は、展開バーから取得できます。これにより、Visual Studio セットアップが起動し、インストール処理を進めることができます。

In-product acquisition

  • 高速で信頼できるビルド - 新しい 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 を "Unity によるゲーム開発" ワークロードと共にインストールできます。 Visual Studio Tools for Unity 3 では、Unity 開発者のコード編集およびデバッグ エクスペリエンスの改善に加えて、以下を含む製品全体の品質に重点を置いています。

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

Code completion session for Unity messages


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 で使用できるようにしました。
  • 名前空間の入力補完 - 名前空間の参照が存在しない場合、入力中に IntelliSense のサポートが得られません。 入力を完了すると、電球マークの提案が表示されます。プレフィックスを生成して挿入したり、XAML ドキュメントに名前空間定義を追加したりできます。
    ![IntelliSense_without namespace](media/intelliSense_without namespace.PNG "IntelliSense_without namespace")

* プレフィックスを必要とする型で、名前空間への参照が既に存在する場合、IntelliSense がプレフィックスをオート コンプリートします。
  • 名前空間プレフィックスの名前の変更のリファクタリング - 名前の変更アクションは、コンテキスト メニューから呼び出すことも、カーソルがプレフィックス上にあるときにキーボード ショートカット (Ctrl + R + R キー) を使用して呼び出すこともできます。 変更を適用する前にプレビューすることもできます。

    名前空間プレフィックスの名前変更

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

    電球_不要な名前空間の削除

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

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

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

Live Architecture Dependency validation


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

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


既知の問題

以下は、このリリースの既知の問題と使用できる回避策です。


インストールの問題

Windows 10 SDK のインストールに失敗し、リターン コード -2147023293 が返される

  • 問題:

    特定の状況で、Windows SDK がインストールに失敗し、リターン コード 2147023293 が返されます。 セットアップ ログ dd_setup__errors.log に "パッケージ 'Win10SDK_10.0.14393.795,version=10.0.14393.79501' がインストールできませんでした" に似たエラーが表示されます。 (詳細) リターン コード: -2147023293 リターン コードの詳細: インストール中に致命的なエラーが発生しました。 パッケージの厳密な名前は、インストールを選択した Windows 10 SDK によって決まります。

  • 回避策:

    この問題にはいくつかの原因が考えられます。 この問題を回避するには、次の手順を実行します。

    • Visual Studio とは別に Windows 10 SDK をインストールします。 Windows デベロッパー センターから Windows 10 SDK をダウンロードできます。
    • Windows 10 より前のバージョンにインストールするとき、ユニバーサル C ランタイムの欠如によりインストールに失敗することがあります。 これは、Windows 10 1507 ランタイムに KB2999226 を、Windows 10 1511 ランタイムには KB3118401 を利用することでインストールできます。
      詳細については、「Visual Studio 開発者コミュニティ ポータル」を参照してください。

Cloud Explorer を起動できない

  • 問題:

    Web 開発ワークロードで Cloud Explorer をインストールした場合、Cloud Explorer の起動が、"Visual Studio の実行中は、セットアップを続行できません。 Visual Studio を閉じてから、もう一度お試しください。" というエラー メッセージが表示されて失敗する場合があります。 これは、依存関係がないために発生します。

  • 回避策:

    Azure 開発ワークロードをインストールした後、もう一度 Cloud Explorer を起動します。

Visual Studio Windows 10 SDK をアンインストールすると、Visual Studio 2017 または Visual Studio 2015 で UWP ビルド エラーが発生する

  • 問題:

    Windows 10 SDK をアンインストールすると、UWP アプリのビルド時に次のエラーが発生します。
    Cannot resolve 'GenXbf.dll' under path 'C:\Program Files\Windows Kits\10'. Please install the Windows Software Development Kit. The Windows 10 SDK is installed with Visual Studio.
    この問題は、Visual Studio 2017、Visual Studio 2017 Preview、および Visual Studio 2015 に影響します。 以下をインストールしたときにこのエラーが発生することがあります。

    • Visual Studio 2017 および Visual Studio 2017 Preview。これらのいずれかをアンインストールした場合にも発生します。
    • Visual Studio 2015 および Visual Studio 2017 または Visual Studio 2017 Preview。これらのいずれかをアンインストールした場合にも発生します。
    • Visual Studio 2017、Visual Studio 2017 Preview、または Visual Studio 2015。[プログラムと機能] から直接 Windows 10 SDK をアンインストールした場合、または Visual Studio のセットアップを使用してアンインストールした場合にも発生します。
  • 回避策:

    [コントロール パネル]、[プログラムと機能] の順に選択します。 次のいずれかを選択し、[修復] をクリックします。

    • Windows ソフトウェア開発キット - Windows 10.0.15063.00 (Creators Update)。
    • Windows ソフトウェア開発キット - Windows 10.0.14393.795 (Anniversary Update)。

インターネットからの切断時にオフライン インストール フォルダーを使用した場合、Windows エミュレーターがインストールされない

  • 問題:

    インターネットに接続されていない状態で、Windows 10 Mobile エミュレーター (Creators Update) を含むオフライン インストール フォルダーを使用して Visual Studio をインストールした場合、Visual Studio インストーラーは "セットアップは完了しましたが、警告が発生しました" という内容のメッセージで終了し、Windows エミュレーターのインストールは失敗します。

  • 回避策:

    Visual Studio とは別に Windows 10 Mobile エミュレーターをインストールします。

    1. Visual Studio のオフライン インストール フォルダーを開き、フォルダー "Win10_Emulator_10.0.15063,version=10.0.15063.12,chip=x64" に移動します。
    2. EmulatorSetup.exe を実行して Windows エミュレーターをインストールします。
Visual Studio をまだインストールしていない場合は、Windows エミュレーターを先にインストールすることができます。
1. 上記の手順を使用して Windows エミュレーターをインストールします。
2. Visual Studio インストーラーを実行して Visual Studio をインストールすると、インストーラーから警告は報告されません。

エディターと IDE の問題

EditorConfig が XML ファイルでサポートされていない

  • 問題:

    XML ファイルの編集時に、.editorconfig で定義されているコーディング スタイル規則が適用されません。

  • 対応策 :

    この問題の回避策はありません。

EditorConfig の insert_final_newline プロパティと trim_trailing_whitespace プロパティがサポートされていない

  • 問題:

    .editorconfig ファイルで定義されている insert_final_newline プロパティと trim_trailing_whitespace プロパティは無効です。

  • 対応策 :

    この問題の回避策はありません。

JavaScript IntelliSense が動作を停止する

  • 問題:

    JavaScript コードが 25 MB 以上のプロジェクトを開くと、"多数の .js ファイルが含まれるため、言語サービスはプロジェクト '' に対して無効です。 'tsconfig.json' ファイルの 'exclude' セクションを使用してファイルを除外することを検討してください。" というエラーが表示されます。

  • 回避策:

    プロジェクト ルートに tsconfig.json を追加します。コードは次のようになります。

      {
          "compilerOptions": {
              "allowJs": true,            // These settings apply to .js files as well as .ts files
              "noEmit":  true             // Do not compile the JS (or TS) files in this project on build
          },
          "exclude": [
              "node_modules",             // Don't include any JavaScript found under "node_modules" or "bower_components"
              "bower_components"
          ]
      }
    

    Add additional folders with JavaScript code libraries. Another common one is Scripts/Office/1 if you're using office-js.

TypeScript が ASP.NET Core プロジェクトで認識されない

  • 問題:

    ASP.NET Core プロジェクトの TypeScript ファイルに IntelliSense がなく、ビルド時にコンパイルされません。

  • 回避策:

    プロジェクト ルートに空の tsconfig.json ファイルを追加します。

NuGet の問題

パッケージ マネージャー コンソールの使用中、'Enter' キーが機能しない

  • 問題:

    パッケージ マネージャー コンソールで、Enter キーが機能しないことがあります。 その場合、修正プログラムで進捗状況を確認してください。再現手順について役に立つ情報があれば提供してください (NuGet#4204NuGet#4570)。

  • 回避策:

    ソリューションを開く前に、Visual Studio を再起動し、PMC を開いてください。 あるいは、project.lock.json を削除し、もう一度復元してください。

.NET Core プロジェクトで、署名が無効なアセンブリを含むパッケージを使用するとき、無限の復元ループが発生することがある

  • 問題:

    無効なアセンブリを含むパッケージを使用するとき、あるいはパッケージ バージョンに 'DateTime' ティッカーが設定されているとき、パッケージ復元が無限ループになることがあります (dotnet/project-system#1457)。

  • 回避策:

    この問題の回避策はありません。

NuGet パッケージ マネージャーを使用した DotNetCLITools の表示、追加、更新ができない

  • 問題:

    NuGet パッケージ マネージャーが表示されず、DotNetCLITools を追加または更新できません (NuGet#4256)。

  • 回避策:

    DotNetCLIToolReferences はプロジェクト ファイルで手動編集する必要があります。

ターゲット フレームワーク バージョンを再ターゲットすると、IntelliSense が不完全になる

  • 問題:

    Visual Studio では、ターゲット フレームワーク バージョンを再ターゲットすると、IntelliSense が不完全になることがあります。 これは、パッケージ マネージャー形式として PackageReferences を使用しているときに発生します (NuGet#4216)。

  • 回避策:

    手動で復元します。

ライブ単体テストの問題

ライブ単体テストが .NET Core プロジェクトで動作しない

  • 問題:

    ライブ単体テストは .NET Core プロジェクトで動作しません。

  • 対応策 :

    この問題の回避策はありません。

Web ツールの既知の問題

実行時に MVC4 プロジェクトが SQL Server LocalDB に接続されない

  • 問題:

    Visual Studio で MVC4 プロジェクトを実行するとき、アプリケーションが SQL Server Express LocalDB 2012 を使用している場合、アプリケーションからデータベースにアクセスできないことがあります。 MVC4 プロジェクトは既定で、Visual Studio 2017 でインストールされない SQL Server Express LocalDB 2012 に依存することが原因です。

  • 回避策:

    プロジェクトをアップグレードして SQL Server Express LocalDB 2016 を使用するか、コンピューターに SQL Server Express LocalDB 2012 を手動でダウンロードし、インストールします。

.NET Core ツールの問題

.NET Core および ASP.NET Core ツールに関する問題の現行リストについては、GitHub ページの を参照してください。

フォルダーを開く際の問題

launch.vs.json または tasks.vs.json の編集時に IntelliSense が使用できない

  • 問題:

    launch.vs.json または tasks.vs.json ファイルの編集時に IntelliSense が使用できません。

  • 回避策:

    "ASP.NET と Web 開発" ワークロードをインストールしてください。

C# のリファクタリングの結果に一貫性がない

  • 問題:

    C# または VB のコードをリファクタリングすると、フォルダー モードで結果に一貫性がない場合があります。

  • 回避策:

    C# または VB のプロジェクトをソリューション モードで読み込みます。

F10 キーを押しても、フォルダー モードでデバッガーが起動しない

  • 問題:

    F10 ホットキーを押しても、フォルダー モードでデバッガーが起動しません。

  • 回避策:

    F5 または F11 を使用し、アプリケーションのエントリ ポイントにブレークポイントを設定します。

launch.vs.json の未保存編集が失われる場合がある

  • 問題:

    コンテキスト メニューで "デバッグと起動設定" を選択しているとき、launch.vs.json の未保存編集が失われる場合があります。

  • 回避策:

    コンテキスト メニューで "デバッグと起動設定" を選択する前に、そのファイルに変更があれば保存します。

フォルダー モードで編集したプロジェクトを再度読み込むと失敗し、ダイアログが表示される

  • 問題:

    フォルダー モードからプロジェクト ファイルを編集した場合、後でソリューション モードから再読み込みできないことがあります。

  • 回避策:

    プロジェクトをもう一度再読み込みしてください。 読み込めなかった場合、ソリューションを再読み込みしてください。

テスト ツールの問題

Visual Studio VS2017 で作成された UITestMethod を使用した UWP プロジェクトの検出が失敗する

  • 問題:

    Visual Studio VS2017 で作成され、UITestMethod 属性が設定されたテスト メソッドを使用して UWP プロジェクトを検出すると失敗します。

  • 回避策:

    MSTest.TestAdapter NuGet パッケージを最新バージョン (1.1.12+) にアップグレードします。

テストに DeploymentItem 属性が設定されているときに、Visual Studio からのテストの実行が失敗する

  • 問題:

    Visual Studio で作成され、DeploymentItem 属性が設定されたテストが含まれたテスト プロジェクトを実行すると失敗し、FileNotFound 例外がスローされます。

  • 回避策:

    テスト メソッド\それを含むテスト クラスに、[DeploymentItem("Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll")] という DeploymentItem も追加します。 これにより、今後のバージョンの MSTest.TestFramework と MSTest.TestAdapter で修正されます。

デバッグと診断

Remote Tools for Visual Studio 2017 Preview を使用できない

  • 問題:

    Remote Tools for Visual Studio 2017 Preview の更新プログラムは公開されていません。

  • 回避策:

    Remote Tools for Visual Studio 2017 は Visual Studio 2017 Preview と互換性がありますが、 最新のプレビュー バージョンのリモート デバッガーに関心をお持ちの場合は、「Run the remote debugger from a file share」(ファイル共有からリモート デバッガーを実行する) を参照してください。

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

ライトウェイト ソリューション ロードが有効になっている場合、一部の拡張機能が正常に動作しないことがある

  • 問題:

    ライトウェイト ソリューション ロードが有効になっている場合、一部の拡張機能が正常に動作しないことがあります。

  • 回避策:

    ライトウェイト ソリューション ロードを無効にし、ソリューションを再読み込みます。

ライトウェイト ソリューション ロードが有効になっているとき、編集と続行が機能しない

  • 問題:

    ライトウェイト ソリューション ロードが有効になっているとき、編集と続行が正常に動作しないことがあります。

  • 回避策:

    ライトウェイト ソリューション ロードを無効にし、ソリューションを再度読み込んでから編集または続行を使用してください。

ライトウェイト ソリューション ロードが有効になっているとき、F# プロジェクトがビルドされない (シンボル ナビゲーションがサポートされない)

  • 問題:

    ライトウェイト ソリューション ロードが有効になっているとき、F# プロジェクトでシンボル ナビゲーションが正常にビルドされず、GoTo でシンボルが完全に利用できないことがあります。

  • 回避策:

    F# プロジェクトが含まれているソリューションのライトウェイト ソリューション ロードを無効にしてください。

ライトウェイト ソリューション ロードが有効になっているとき、警告が重複する

  • 問題:

    ライトウェイト ソリューション ロードを有効にしてソリューションをビルドするとき、ビルドから発行されるプロジェクト ファイルの警告がエラーの一覧に重複して表示されることがあります。

  • 回避策:

    ライトウェイト ソリューション ロードを無効にし、ソリューションを再読み込みます。

機能拡張の問題

カスタム コマンドまたはカスタム ツール ウィンドウを追加すると、エラーが発生する

  • 問題:

    XAML ファイルを含むプロジェクトにカスタム コマンドまたはカスタム ツール ウィンドウを追加しようとすると、どちらもプロジェクトに追加されないことがあります。 "シーケンスに複数の一致する要素が含まれています" というテキストが表示されることもあります。

  • 回避策:

    1. 開いている XAML ファイルをすべて閉じます。
    2. Visual Studio を閉じます。
    3. Visual Studio を起動し、プロジェクトを開きます。
    4. (XAML ファイルを読み込む前に) カスタム コマンドまたはカスタム ツール ウィンドウをプロジェクトに追加します。

Application Insights の問題

プロジェクトを右クリックしたとき、Application Insights 拡張プロバイダーが読み込みに失敗する

  • 問題:

    Visual Studio でプロジェクトを右クリックしたとき、Application Insights 拡張プロバイダーが読み込みに失敗します。 拡張プロバイダーは、ソリューションが読み込まれた後に、バックグラウンド スレッドで NuGet からバイナリを読み込むためにこの問題が発生します。 PHP や Azure Service Fabric の拡張プロバイダーなど、一部の拡張プロバイダーは既にインストールされており、この問題は発生しません。 Visual Studio 2017 の初回版の直後に、この問題の修正プログラムが自動更新で利用できるようになります。

  • 回避策:

    管理者特権でコマンド プロンプトを開き、お使いのバージョンの Visual Studio に基づいて次を実行します。

    • Visual Studio Enterprise

      • "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\VsRegEdit.exe" set "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise" HKCU AppInsightsGettingStarted UseBackgroundThreadToFetchProjectInfo string Disabled。
    • Visual Studio Professional

      • "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\VsRegEdit.exe" set "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional" HKCU AppInsightsGettingStarted UseBackgroundThreadToFetchProjectInfo string Disabled。
    • Visual Studio コミュニティ

      • "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VsRegEdit.exe" set "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community" HKCU AppInsightsGettingStarted UseBackgroundThreadToFetchProjectInfo string Disabled。

一部の ASP.NET Core プロジェクトで、ページ ビュー コレクションのために Application Insights JavaScript スニペットを追加できない

  • 問題:

    Visual Studio 2017 で作成されていない Application Insights で構成された ASP.NET Core プロジェクトは実行できません。 このようなアプリを実行すると、"InvalidOperationException: 'Microsoft.ApplicationInsights.AspNetCore.JavascriptSnippet' という種類のサービスは登録されていません" というエラーが表示されます。

  • 回避策:

    Application Insights で構成すると、JavaScript スクリプトがファイル Views/Shared/_Layout.cshtml に追加されます。 Application Insights でアプリからページ ビューを収集するかどうかによって 2 つの回避策があります。

    1. ページ ビューを収集する - ".UseApplicationInsights()" を Program.cs の WebHostBuilder に追加します。
    2. ページ ビューを収集しない - Views/Shared/_Layout.cshtml から次の行を削除します。
      • @inject Microsoft.ApplicationInsights.AspNetCore.JavaScriptSnippet JavaScriptSnippet。
      • @Html.Raw(JavaScriptSnippet.FullScript)。

チーム エクスプローラーの問題

インデックスを変更する Git コマンドは、孤立 index.lock が存在する場合、失敗することがある

  • 問題:

    これは最初に Git の取り消しとアンステージが失敗するとして報告された問題です。インデックスを変更する Git コマンドを実行すると、孤立 index.lock が存在する場合、失敗することがあります。 Git はこのファイルを使用し、編集のためにリポジトリをロックしていることを他の Git プロセスに示します。 編集プロセスが応答不能になったか、強制終了された場合、index.lock ファイルは取り残され、他の Git プロセスによるリポジトリ編集を妨げることがあります。

  • 回避策:

    この問題が発生したら、リポジトリの .git/ フォルダーを見て、index.lock ファイルがないか確認してください。 存在する場合、Git コマンドを頻繁に実行しないのであれば、ファイルを削除してください。

SSH で複製できない

  • 問題:

    チーム エクスプローラーで SSH による複製に失敗します。 この問題の修正プログラムは今後の更新プログラムで提供される予定です。

  • 回避策:

    SSH を使用する場合、コマンド ラインから複製し、チーム エクスプローラーのローカル リポジトリの一覧にリポジトリを追加します。 チーム エクスプローラーで HTTP 経由で複製し、[設定]、[リポジトリ設定]、[リモート] の順に選択し、SSH を使用するようにリモートを設定することもできます。

チーム エクスプローラーで Git コマンドをキャンセルできない

  • 問題:

    チーム エクスプローラーで Git コマンド (複製など) をキャンセルできず、操作が完了します。 この問題は、他のチーム エクスプローラーの操作には影響しません。

  • 回避策:

    この問題の回避策はありません。

管理対象ワークロード開発の問題

.NET 2.0/3.0/3.5 プロジェクトでターゲットが正しくないアセンブリが生成される

  • 問題:

    最初に個別のコンポーネント タブから .NET Framework 3.5 開発ツールを選択せずに、新しいコンピューターに Visual Studio 2017 をインストールし、.NET 2.0 (または 3.0/3.5) プロジェクトをビルドすると、プロジェクトが .NET 2.0 をターゲットにしていても、ビルド後に、一部のアセンブリ (リソースなど) に .NET4.0 が表示されます。 Visual Studio 2017 は既定で .NET Framework 3.5 SDK をインストールしません。SDK がなく、ビルド プロセスが .NET 4.X SDK になるため、この問題が発生します。

  • 回避策:

    .NET 3.5 SDK は任意のコンポーネントになりました。開発が .NET 3.5 製品 (2.0/3.0/3.5) をターゲットにしている場合、インストール中、個別のコンポーネント タブから “.NET Framework 3.5 開発ツール” も選択する必要があります。 これで、ビルド プロセス中に使用されるコンピューターに必要な .NET 3.5 SDK がインストールされます。

ユニバーサル Windows プラットフォーム開発のワークロード問題

XAML デザイナーを使用できない

  • 問題:

    UWP アプリの開発時には、XAML デザイナーを使用できません。

  • 回避策:

    アプリのターゲット プラットフォーム バージョンが、Visual Studio を実行している Windows 10 のバージョン以下の場合にのみ、XAML デザイナーを使用できます。 例: "Windows 10 Anniversary Update (ビルド 14393)" で Visual Studio を実行し、UWP アプリのターゲット プラットフォーム バージョンが "Windows 10 Creators Update" の場合、そのアプリのプロジェクトに XAML デザイナーを使用できません。 確実に XAML デザイナーを使用するには、最新バージョンの Windows 10 にアップグレードしてください。

UWP プロジェクトを開くと [Visual Studio 更新プログラムが必要] と表示される

  • 問題:

    Visual Studio 2017 Preview で作成されたプロジェクトを Visual Studio で開くと、更新されたプラットフォーム SDK をインストールするように求める [Visual Studio 更新プログラムが必要] というダイアログが表示されることがあります。 ダイアログからリンクされている Windows SDK アーカイブ Web サイトの一覧には、指定されたバージョンの Windows SDK がありません。

  • 回避策:

    Visual Studio 2017 Preview にはプレリリース版の Windows SDK が含まれていたため、これは想定されている動作です。 この問題を解決するには、プロジェクト ファイルでターゲット プラットフォーム バージョンを、ターゲットにする Windows SDK バージョンに変更します。 Windows 10 Creators Update の場合は "10.0.15063.0" です。

    1. プロジェクトを右クリックし、[[アプリ名].[xx]proj の編集] を選択します ([xx]proj は .csproj、.vcxproj などです)。
    2. プロジェクト ファイル "TargetPlatformVersion" (C#、VB、JS プロジェクトの場合) または "WindowsTargetPlatformVersion" (C++ の場合) プロジェクト プロパティで、値を "10.0.15063.0" に変更するか、インストールした別の SDK のバージョンに変更します。

Visual Studio Windows 10 SDK をアンインストールすると、Visual Studio 2017 または Visual Studio 2015 で UWP ビルド エラーが発生する

  • 問題:

    Windows 10 SDK をアンインストールすると、UWP アプリのビルド時に次のエラーが発生します。
    Cannot resolve 'GenXbf.dll' under path 'C:\Program Files\Windows Kits\10'. Please install the Windows Software Development Kit. The Windows 10 SDK is installed with Visual Studio.
    この問題は、Visual Studio 2017、Visual Studio 2017 Preview、および Visual Studio 2015 に影響します。 以下をインストールしたときにこのエラーが発生することがあります。

    • Visual Studio 2017 および Visual Studio 2017 Preview。これらのいずれかをアンインストールした場合にも発生します。
    • Visual Studio 2015 および Visual Studio 2017 または Visual Studio 2017 Preview。これらのいずれかをアンインストールした場合にも発生します。
    • Visual Studio 2017、Visual Studio 2017 Preview、または Visual Studio 2015。[プログラムと機能] から直接 Windows 10 SDK をアンインストールした場合、または Visual Studio のセットアップを使用してアンインストールした場合にも発生します。
  • 回避策:

    [コントロール パネル]、[プログラムと機能] の順に選択します。 次のいずれかを選択し、[修復] をクリックします。

    • Windows ソフトウェア開発キット - Windows 10.0.15063.00 (Creators Update)。
    • Windows ソフトウェア開発キット - Windows 10.0.14393.795 (Anniversary Update)。

ツールボックスで一部の XAML コントロールを使用できない

  • 問題:

    拡張 SDK からインストールされた XAML コントロールを使用するとき、ツールボックスに一部のコントロールが表示されないことがあります。

  • 回避策:

    表示されないコントロールを使用する場合、XAML エディターで手動で追加できます。

Visual C++ デスクトップの既知の問題

Windows 10 Creators Update SDK (10.0.15063.0) をインストールした後、新しく作成した C++ Win32 デスクトップ プロジェクトをビルドできない

  • 問題:

    Windows 10 Creators Update SDK は、既定ではインストール フットプリントを小さくするためにリファクタリングされています。 UWP ワークロードを介してこの SDK をインストールすると、Win32 C++ デスクトップ プロジェクトに必要なヘッダー/ライブラリがインストールされません。 ただし、Visual C++ デスクトップ プロジェクトは、この SDK をインストール済みとして検出し、既定では、新しく作成したプロジェクトで 10.0.15063.0 をターゲットにします。

  • 回避策:

    Visual Studio インストーラーで次の操作を行います。

    • [C++ によるデスクトップ開発] ワークロードの [デスクトップ C++ x86 および x64 用 Windows 10 SDK (10.0.15063.0)] 機能を選択します。
    • [プロジェクトのプロパティ] ダイアログ ボックスから、システムに完全にインストールされている以前の SDK バージョン (10.0.14393.0 など) を選択するという方法もあります。

Xamarin の問題

"プロジェクト 'project_name' ではコンピューター上に次のコンポーネントをインストールする必要があります" というエラーが発生してビルドがキャンセルされる

  • 問題:

    Android アプリケーションをビルドするときに、追加のコンポーネントのインストールが必要な場合があります。 この作業は、新しいコンポーネントとして NuGet パッケージを使用する場合や、これが特定のコンピューター上でビルドする最初の Xamarin.Forms ソリューションである場合など、いくつかのケースで必要になることがあります。

  • 回避策:

    • Intellisense エラーが一覧に表示されており、不足しているリソースを Xamarin for Visual Studio が検出することを確認します。 エラーが表示され、ダウンロードおよびインストールを必要とするリソースが通知されます。 一覧内のエラーをダブルクリックして、不足しているコンポーネントのダウンロードとインストールを開始します。 Intellisense エラーが一覧に表示されるようにする必要があります。そうしないと、そのエラーの内容を確認することができません。 不足しているコンポーネントをインストールしないで、ソリューションでプロジェクトのビルドを試みると、ビルドはキャンセルされます。
    • コマンドラインから、不足しているコンポーネントをインストールするという方法もあります。

その他の問題

x86 コンピューターで (LocalDB)\MSSQLLocalDB に接続できない

  • 問題:

    これは localDB 2014 に断続的に発生する既知の問題です。x86 コンピューターで (LocalDB)\MSSQLLocalDB に接続できません。

  • 回避策:

    コマンド プロンプトで次のコマンドを実行します。

    1. sqllocaldb stop mssqllocaldb.
    2. sqllocaldb delete mssqllocaldb.
    3. sqllocaldb start mssqllocaldb.

SharePoint ワークフローで関数ブレークポイントを作成できない

  • 問題:

    以前は、Visual Studio の [ブレークポイント] ウィンドウで "ワークフロー" のブレークポイントを作成できましたが、 この機能は削除されました。

  • 対応策 :

    右クリック メニューを使用して、デザイナー ビューでブレークポイントを作成します。

ワークフロー デザイナーで、SharePoint ワークフロー アクティビティが正しく読み込まれない可能性がある

  • 問題:

    ワークフローおよび SharePoint のアクティビティで新しい SharePoint アドインやソリューションのプロジェクトを作成すると、プロジェクトをビルドした後にワークフロー デザイナーで "XAML 内のエラーのため、アクティビティを読み込むことができませんでした" というエラーが表示されることがあります。 既定では新しい SharePoint アドイン プロジェクトが .NET Framework 4.5.2 を対象としています。 ワークフローで SharePoint のアクティビティを使用するには、プロジェクトが .NET Framework 4.5 を対象にしている必要があります。

  • 回避策:

    • ソリューション エクスプ ローラーの [コンテキスト] メニューまたは [プロジェクト] メニューから [プロジェクトのプロパティ] にアクセスします。
    • [アプリケーション] タブで [ターゲット フレームワーク] を [.NET Framework 4.5] に設定します。

動的な値が使用されているとき、ワークフローのある SharePoint プロジェクトがビルドに失敗する

  • 問題:

    ワークフローのある SharePoint プロジェクトがビルドに失敗し、"名前空間 'Microsoft' に種類または名前空間の名称 'Activities' がありません (アセンブリ参照が欠落していないか確認してください。)" というエラーが表示されることがあります。

  • 回避策:

    1. ソリューション エクスプローラーでワークフロー ノードを展開し、ファイルがソリューション エクスプローラーで選択されているとき、F7 を押すか、コンテキスト メニューからプロジェクトの workflow.xaml ファイルのコードを表示します。
    2. セクションに参照 Microsoft.Activities を追加します。

SharePoint アドイン プロジェクト ウィザードは、プロジェクトが対象としている SharePoint のバージョンを正しく検出しない可能性がある

  • 問題:

    SharePoint アドイン プロジェクトを作成するときに、[新しいプロジェクト] ダイアログが指定したサイトの URL に基づいて SharePoint の正しいバージョンを検出しようとします。 ただし、Visual Studio 2015 または古いバージョンの SharePoint Client コンポーネントもインストールされている場合、プロジェクトが SharePoint Online ではなく SharePoint 2016 を対象としていると、新しいプロジェクト ダイアログが誤って判断することがあります。

  • 回避策:

    新しいプロジェクトの場合は、新しい SharePoint アドイン プロジェクトを作成するときに、新しいプロジェクト ダイアログの最後のページが、プロジェクトが対象とする SharePoint の正しいバージョンを選択していることを必ず確認します。 既存のプロジェクトの場合は、次の手順に従って、プロジェクトが対象とする SharePoint のバージョンを変更できます。

    1. ソリューション エクスプ ローラーの [コンテキスト] メニューまたは [プロジェクト] メニューから [プロジェクトのプロパティ] にアクセスします。
    2. [SharePoint] タブで、[ターゲットの SharePoint バージョン] をプロジェクトが対象とする正しいバージョンの SharePoint に設定します。

Office Web アドイン プロジェクトのエラーの一覧に警告が含まれていることがある

  • 問題:

    _officeintellisense.js ファイルに、office.d.ts ファイルで宣言されているものと競合する Office オブジェクトの宣言が含まれています。

  • 回避策:

    これらの警告はプロジェクトに影響するものではありませんが、Scripts\Office\ _officeintellisense.js ファイルの追加の “var Office” 宣言をコメントアウトするか、ソリューション エクスプローラーの “プロジェクトから除外” コンテキスト メニューでプロジェクトからこのファイルを除外することで警告を削除できます。

Visual Studio Build Tools SKU の Web 開発ツール ワークロードに .NET Targeting Pack が含まれていない

  • 問題:

    Visual Studio Build Tools SKU の Web 開発ツール ワークロードには .NET Targeting Pack が含まれていません。 つまり、4.6 をターゲットにするように .NET バイナリのみがビルドされます。

  • 回避策:

    Microsoft からビルド コンピューターに .NET Targeting Pack を手動でダウンロードし、インストールします。

プロジェクトのルールの外にあるとき、グロビングで追加したファイルがソリューション エクスプローラーに表示されない

  • 問題:

    .NET Core プロジェクトと ASP.NET Core プロジェクトの場合、グロビング パターンにより追加されたファイルは、それがプロジェクトのルート ディレクトリの下にある場合にのみ、ソリューション エクスプローラーに表示されます。 プロジェクトのルート ディレクトリの外にあるファイルは表示されません。 [すべてのファイルを表示] をオンにしてもこの問題は解消されません。 また、このようなファイルには検索、ファイル内検索、ジャンプ、定義へ移動でも移動できません。

  • 回避策:

    ソリューション エクスプローラーで見つからないファイルを表示する、あるいは見つからないファイルに移動するための既知の回避策はありません。 しかしながら、このようなプロジェクトのビルドとデバッグは問題なく動作するはずです。 ほとんどの場合は、手動で開くことで、これらのファイルを通常どおり編集できるはずです。 当面の間、外部のグロビング パターンの代わりに、個別のリンクファイルの利用をお勧めします。

Visual Studio Test Professional 2017 SKU にチーム エクスプローラーが含まれておらず、TFS ウェアハウス/キューブから Excel ベースまたは SSRS ベースのレポートへのアクセスが制限される

  • 問題は、15.1 (26403.00) のバージョンで次のように解決されました。

    Visual Studio チーム エクスプローラーは TFS ウェアハウス/キューブから Excel ベースまたは SSRS ベースのレポートにアクセスするために使用しますが、Visual Studio Test Professional SKU のインストールでは Visual Studio チーム エクスプローラーがインストールされなくなりました。 Microsoft Test Manager (MTM) クライアントには影響しません。正常に動作し、既知の問題もありません。