Visual Studio 2015 更新プログラム 3

Last Update: 2017/04/07

リリース日: 2016 年 6 月 27 日

Microsoft は、本日、Visual Studio 2015 Update 3 がリリースされたことをお知らせします。 Update 2 で最も多く報告された問題の 1 つは、大量のメモリが消費されることでした。 Update 3 RC でこの問題に対処し、この問題を報告したユーザーに連絡を取って修正について肯定的な確認を得ました。 Update 3 では、パフォーマンスと安定性に関するカスタマー フィードバックに対処する多くの修正が含まれています。 これが予期したリリース ノートではない場合、最新バージョンのリリース ノートにアクセスしていることに注意してください。

Visual Studio のフィードバック オプションを使用してフィードバックをお送りください。 また、Visual Studio 2015 UserVoice サイトから提案を送信することもできます。

ダウンロード

Visual Studio 2015 は My.VisualStudio.com からダウンロードできます。 My.VisualStudio.com を使用するには、無料の Dev Essentials サブスクリプション、または Visual Studio サブスクリプションが必要です。

詳細については、「方法: Visual Studio の特定のリリースをインストールする」を参照してください。

新機能

その他の変更

Tools for Apache Cordova

Visual Studio 2015 Update 3 には、以下の機能強化を含む Apache Cordova Update 10 のツールが用意されています。 このリリースの詳細については、Update 9Update 10 の Tools for Apache Cordova のリリース ノートを参照してください。 Microsoft のツールに関する最新情報については、GitHub の開発者向けブログを参照してください。

  • Cordova 6.1.1 のサポートが追加されました。新しいプロジェクトの既定のバージョンとなります。
  • Cordova 4.x で使用されていた Cordova プラグイン レジストリは廃止されました。つまり、プラグインを追加するには Cordova 5.x 以降が必要になります。
  • コア プラグインの一覧が更新され、Intune、Azure Engagement、セキュリティ、SQLite ローカル ストレージなどのエンタープライズ シナリオ用のプラグインが含まれるようになりました。
  • npm パッケージの名前か ID を使用して構成デザイナーからプラグインを追加できるようになりました。

plugin-byid

  • パラメーターを必要とするプラグインも構成デザイナーから追加できるようになりました。

plugin-parameters

Developer Analytics Tools

Developer Analytics Tools v7.0.2 では、次の機能強化が追加されました。

  • Application Insights Trends (アプリのテレメトリの傾向を検索するためのツール)。
  • 新規 CodeLens の例外のテレメトリ。
  • 診断ツールの例外に追加された製品利用統計情報。
  • Visual Studio から ASP.NET Core RC2 プロジェクトに Application Insights を追加するためのサポート。
  • ASP.NET 5 RC1 および ASP.NET Core RC2 プロジェクト用の診断ツール イベント。
  • 詳細フィルター、時間範囲、イベントが選択されたときの Application Insights の検索の自動更新。
  • 検索時に要求からコードに移動する機能。
  • HockeyApp サインイン エクスペリエンスの向上。

詳細については、Microsoft Azure のドキュメントのテクニカル リリース ノートを参照してください。

デバッグと診断

HoloLens や IOT などの OneCore デバイスで実行されるアプリケーションの診断ツールのサポートが Update 3 で追加されました。

C++ のエディット コンティニュの改良:

  • FASTLINK を有効にしたときのパフォーマンスと信頼性が向上しました。
  • 静的ライブラリにコードの変更が正常に適用されたときに古いコードが生成されなくなりました。
  • 再コンパイル中に誤検知された型の変更に対して C4656 警告が表示されなくなりました。
  • 複数のコンパイル単位の境界を越えて同じ名前を持つ新しい型を追加する操作のサポート。

XAML UI のデバッグの機能強化。

  • ライブ ビジュアル ツリーの新しいフォーカス追跡機能により、アプリでフォーカスが変更されるたびに、ライブ ビジュアル ツリーの選択項目が、現在フォーカスがある要素に更新されます。

Visual Studio IDE

サブスクリプションとプロダクト キー

オンライン ID またはプロダクト キーを介したサブスクリプションを使用しているユーザーからの Update 3 のフィードバックに基づき、次のように IDE のロックが解除されます。

  • 割り当てられた Visual Studio Cloud サブスクリプションをアクティブ化するために https://my.visualstudio.com にアクセスする必要はなくなり、サブスクリプションが割り当てられるとすぐに Visual Studio IDE を使い始めることができます。
  • プロダクト キーを適用するときのエラー処理を改良しました。
  • すべてのユーザー アカウントおよびライセンス操作が HTTPS を使用してセキュリティ保護されるようになりました。
  • [アカウント設定] ダイアログでサブスクリプションをアクティブ化し、プロダクト キーを入力する操作のユーザー補助機能を強化しました。
  • 新規 個人アカウントのアクティブ化とローミング設定の同期を維持するために最大 8 日ごとの再認証を行う必要がなくなりました。

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

Visual Studio 2015 Update 3 では、ユニバーサル Windows アプリ用ツールにいくつかの機能強化が加えられています。 主な改善点によって、Windows ストアに送信するパッケージを作成するときに、Azure Active Directory の資格情報を使用して AAD ストア アカウントにサインインできます。 プロジェクトが Windows ストアに関連付けられると、ストアに送信するパッケージを作成するためにサインインする必要がなくなります。

ユニバーサル Windows アプリ用の .NET ネイティブ

.NET Native 1.4 は、パフォーマンスを向上させ、ユーザーが報告した複数のバグを解決し、大規模なアプリのリリース ビルドのコンパイル時間を短縮するマイナー サービス リリースです。 .NET Native 1.4 を使用すると、XAML アプリケーションと Unity ゲームの実行時のパフォーマンスが向上します。 これらの機能強化は、リフレクションとネイティブ API の呼び出しをどちらも高速化することで実現しました。

アーキテクチャ ツール

ユーザーからのフィードバックに基づき、パフォーマンスと信頼性が向上しています。

ドメインに固有のグラフィカル デザイナー (EDMX と DBML を含む)

Windows 10 で、オンスクリーン キーボードが表示されているときに大きな EDMX または DBML 図を開いたり、編集しようとすると、Visual Studio が応答しないという問題を解消しました。

コード マップ

  • ソリューションにインストーラー プロジェクト (.vdproj) が含まれている場合に、[ソリューションのコード マップを生成] を実行すると、Visual Studio が応答しないという問題を解消しました。
  • コード エディターからコード マップ コマンドを実行し、表示されたコード マップ ウィンドウをすぐに閉じると、Visual Studio が応答しなくなるという問題を解消しました。

レイヤー検証

  • 検証アクションを使用するレイヤー図を含むモデリング プロジェクトを持つソリューションを構築すると、構築が完了した後に CPU コアが使用されなくなります。
  • 親のモデリング プロジェクトが PCL ライブラリ (ODP.Netなど) を参照している場合に、レイヤー図を検証できるようになりました。

Node.js Tools for Visual Studio

新規 Node.js Tools 1.2 RC for Visual Studio のダウンロード提供を開始しました。 このリリースでは、以前のリリースに見られたメモリ不足によるクラッシュが軽減されるなど、安定性とパフォーマンスの大幅な向上が期待されます。

その他の特徴は次のとおりです。

  • より高速で高機能の ES6 IntelliSense
  • 信頼性の高いデバッグ
  • 単体テスト作業の向上 (テープのサポートを含む)
  • より多くのプロジェクト種類での .npm コマンド

すべての情報とダウンロードについては、Node.js Tools 1.2 RC のリリース ページをご覧ください。

Web Developer Tools

ASP.NET Web アプリケーション プロジェクトで [エディット コンティニュを有効にする] チェック ボックスをオフにした場合、デバッグを停止するたびに IIS Express プロセスの動作が停止することはなくなりました。

Visual C++

Update 3 では、C# と Visual Basic のコーディングのサポートとパフォーマンスの向上だけでなく、C++ コンパイラの新しいチェックや警告メッセージなどの機能強化が追加されました。

C++ コンパイラ

  • 削除された単純なコピー/移動 ctor へのアクセスが確認されるようになりました。 確認が行われない場合、(実装の形式が誤っている可能性のある) 既定のコピー ctor が誤って呼び出され、その結果、不適切なランタイム コードが生成される可能性があります。
  • Std::is_convertible により、コピー コンストラクターが削除された場合またはコピー コンストラクターがプライベートの場合に、クラス型の自己代入が適切に検出されるようになりました。
  • Visual Studio 2008 で開始された属性 ATL サポートを廃止する最後の段階として、コンパイラに新しい使用中止警告が追加されました。 Visual Studio 2015 Update 3 では、属性 ATL コードを使用すると、レベル 1 の警告 (既定でオン) が生成されます。 C4467
  • PCH ファイルを使用しているとき、-Yc を使用したコンパイルと -Yu を使用したコンパイルの間で一致していない -I インクルード ディレクトリをコンパイラに指定すると、新しい警告が生成されます。 C4599
  • PCH ファイルを使用しているとき、-Yc を使用したコンパイルと -Yu を使用したコンパイルの間で一致していない #include ディレクティブがソース ファイルに含まれていると、警告が生成されます。 C4598

これらの変更が既存のコードに与える影響については、MSDN の Visual C++ の移植とアップグレードに関するガイドを参照してください。

C++ ライブラリ

  • Update 2 で低下した、(ベクター内など) 単純なオブジェクトの範囲を破棄するときのデバッグ モードのパフォーマンスを元に戻しました
  • C++17 の研究報告書、つまり提案「P0185 Adding [nothrow-]swappable traits ([nothrow-]swappable 特徴の追加)」に従い、swappable 特徴 (traits) を実装しました。 予測的 C++17 機能の 1 つとして、/std:c++latest でコンパイルするときに、特徴 (is_swappableis_swappable_withis_nothrow_swappableis_nothrow_swappable_with) のみが表示可能になり、std::swap の制約のみがアクティブになります。
  • これまでプロセスの起動と dllmain の間に発生していた vcruntime140.dll と静的ライブラリからの ETW イベントの呼び出しが削除されました。
  • 新規 STL コンテナーで使用される一般的なメカニズムにおけるシンボル名の長さが削除されたため (std::vector など)、警告 C4503 の発生する可能性が減少しました。 たとえば、次の型は警告を生成しなくなりました: concurrency::concurrent_unordered_map<wstring, vector<pair<uint64_t, vector<uint8_t>>>>。

  • ATL/MFC/AMP/PPL: 次のように、2 フェーズ参照の準拠に関連する多くの修正が行われました。

    • _com_ptr_t で移動コンストラクターと移動代入演算子を使用できるようになりました。
    • MFC: 64 ビット アプリケーションでのメニューの適切な表示を妨げることがあった HMENU 値の処理を修正しました。

    • ATL/MFC: 次の警告が出力されなくなりました。

    • 関数のオーバーライド/非表示: C4263、C4264、C4266
    • 例外指定の不一致: C4986
    • /analyze: C6386

    • ATL: AtlThrow のすべてのバリエーションに __declspec(noreturn) というマークが適切に付けられるようになりました。 これにより、誤った SAL 警告が出力されなくなります。

    • ATL: いくつかの SAL 注釈が修正/改良されました。

    • /std:c++latest により、次の新機能が有効になります: P0025R1 "clamp()"、P0185R1 "is_swappable、is_nothrow_swappable"、P0272R1 "Non-const basic_string::data()"。

    • /std:c++latest を使用して、次の古い機能の削除を制御することもできます: N4190 "Removing auto_ptr, random_shuffle(), And Old Stuff (auto_ptr、random_shuffle()、古い機能の削除)"、P0004R1 "Removing Deprecated Iostreams Aliases (廃止された Iostreams エイリアスの削除)"、LWG 2385 "function::assign allocator argument doesn't make sense (function::assign アロケーター引数が意味を成さない)"、各種の非標準機能 (std::tr1 名前空間、いくつかの TR1 専用機構、および std::identity 構造体)。

    • x86 での atomic<int64_t>/atomic<uint64_t> のサイレントかつ不適切な codegen が修正されました。

    • STL で絶対的に必要な場合を除いてスレッドセーフな "マジック スタティック" の使用を中止した結果、コード生成のパフォーマンスが向上しました。

    • タプルの完全転送コンストラクターとコピー コンストラクターの競合が解消され、特定のシナリオでのコンパイラ エラーが修正されました。

  • コルーチン:

    • 使用が非推奨になった項目: __yield_value & __await キーワード。 代わりに、 co_await / co_yield を使用してください。
    • 非推奨の通知が追加された項目: coroutine_handle クラスの to_address メンバーおよび from_promise メンバー。 coroutine_handle::to_address() の代わりに coroutine_handle::address() を使用してください。
    • coroutine_handle::from_promise(Promise *P) の代わりに coroutine_handle::from_promise(Promise &P) を使用してください。
  • パフォーマンスが向上した項目: std::equalstd::lexicographical_compare。より積極的に memcmp と memchr にディスパッチすることで、特定のシナリオでパフォーマンスが大幅に向上します。 例: 64 ビット プラットフォームでの equal(char,char,char, char)。

    • 反復子デバッグ機構のブックキーピング関数呼び出しの数を減らすことによって、デバッグ ビルドのパフォーマンスが大幅に向上します。
    • string::push_back では、さらに 40% パフォーマンスが向上しています。リリース ビルドの Update 2 では、デバッグ ビルドにより重要な機能強化が加えられています (これは、Update 2 で実装された大規模なパフォーマンスの向上に追加されるものです)。
    • すべての標準アルゴリズムにまたがるデバッグ ビルドのパフォーマンスが向上しました。その方法として、述語を受け取るすべてのアルゴリズムにおいて述語のコピーの数を減らすことによって、いくつかの種類の空のテンプレート メタプログラミング サポート呼び出し (たとえば、_Iter_cat) を排除しました。
    • std::mismatch (_ITERATOR_DEBUG_LEVEL 1 および 2): 反復処理に先立って、可能な限り 2 番目の範囲の範囲チェックを実行します。
  • _SCL_INSECURE_DEPRECATE メッセージに対する機能強化された診断が残りのアルゴリズムに適用されました (Update 2 では少数のアルゴリズムのみが新しい非推奨メカニズムにフックされました)。 これよりに、標準アルゴリズムの複数のコピーを宣言する _ITERATOR_DEBUG_LEVEL プリプロセッサの相互作用が不要になったため、標準アルゴリズムをデバッグするときのデバッグ エクスペリエンスが向上しました。 次の項目も修正されました。

    • 非標準の _ITERATOR_DEBUG_ARRAY_OVERLOADS とデュアル範囲アルゴリズムの間の相互作用のために mismatch(iter, iter, T[]) などの一部の関数をコンパイルできない問題を修正しました。
  • STL の既定でオフの警告 C4242 の違反を修正しました。
  • std::pop_heap の整数オーバーフローのバグと思われる問題を修正しました。
  • ロケール ロックを保持しているときに CLR によって挿入される LoadLibrary 呼び出しが原因で /clr:pure で停止が発生する問題を修正しました。

C++/CLI デバッグ

  • 新規 C++/CLI 式エバリュエーターが、以前は純粋なネイティブ アプリでのみサポートされていた Natvis などのデバッガー機能をサポートするようになりました。 マネージ/ネイティブの混合アプリで、オブジェクトが変数ウィンドウ (またはデータヒント内) に一覧表示される場合は、その種類のビジュアライザーで定義されているように、純粋なネイティブ アプリの場合と同様に展開されます。

plugin-byid

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

Clang 3.8 リリースを Clang/C2 に統合し、64 ビットでホストされたツールセットを提供しています。

C++ MDD

最新の Android NDK バージョン R11C および機能のサポートが有効になり、最新の NDK に対応するように現在のプロジェクトをアップグレードできるようになりました。

TypeScript

新規 Visual Studio 2015 Update 3 に、TypeScript 1.8.34 が含まれました。 AngularJS を使用するいくつかの大規模な TypeScript プロジェクトでの、メモリ不足エラーが修正されました。

C# および Visual Basic

新規 メモリ使用量の削減とコードの診断のパフォーマンス向上に注力しました。 これにより、以前のリリースに見られた多くのメモリ不足によるクラッシュが削減されます。 ソリューション全体でコードの診断を実行するときのパフォーマンスが向上しています。 コードの診断のパフォーマンス向上については、MSDN の「How to: Enable and Disable Full Solution Analysis for Managed Code (方法: マネージ コードの完全なソリューション分析を有効または無効にする)」をご覧ください。

その他の機能強化として、以下のものがあります。

  • NuGet パッケージへの参照をクイック修正として追加するオプション:

plugin-byid

このオプションを有効にするには、[ツール]、[オプション]、[テキスト エディター]、[C#]、[詳細設定] の順に選択し、[ディレクティブを使用する] で目的のオプションを選択します。

plugin-byid

  • .NET Platform Standard を対象とするポータブル クラス ライブラリのサポートが強化されました。
  • C# の "実装に移動" と "すべての参照の検索" のパフォーマンスがさらに向上しました。 これらの機能を使用するには、オブジェクトを選択して右クリックし、メニューから目的の項目を選択します。
  • document/project/solution に "すべて修正" アクションを適用したときに進行状況バーが表示されるようになりました。
  • 新規 大規模なソリューションで C# および VB プロジェクトを再読み込みする場合のパフォーマンスが向上しました。 詳細とヒントについては、「Performance considerations for large solutions (大規模なソリューションのパフォーマンスに関する考慮事項)」をご覧ください。

チーム エクスプローラー

新規 チーム エクスプローラーの複数のバグが修正されました。

  • Git リポジトリから削除されたファイルの内容を表示できません。
  • 分岐の履歴を表示するときに、フォーカスが最新のコミットにある場合は [Go to Child] アイコンを無効にする必要があります。
  • Git.exe を使用して分岐を変更するときに、Visual Studio がクラッシュしたり、不明な状態になる可能性があります。
  • Git リポジトリに分岐の履歴を表示するときに、履歴グラフの強調表示が正しく表示されません。
  • チーム エクスプローラーで分岐を作成するときに、[分岐の作成] の Alt+B キーのショートカットが [ビルド] メニューと競合します。
  • メモリ使用量が高い状況で、使用可能なメモリよりも大きいオブジェクトを展開しようとすると、Git は、メモリ不足エラーの代わりに "オブジェクトが見つかりません - 一致するルーズ オブジェクト () はありません" というエラーを返します。
  • エラー メッセージ "...In order the open this solution ..." にタイプミスがあります。
  • 分岐の履歴を表示して履歴内の最初のコミットを右クリックすると、チェリーピックが無効になります。
  • チーム エクスプローラーの分岐ページからプル要求を作成する場合、選択された分岐ではなく現在の分岐がコンテキスト メニューで使用されます。

Xamarin for Visual Studio

新規 Visual Studio 2015 Update 3 に Xamarin 4.1 が含まれるようになりました。 このリリースでは、多数のバグ修正に加えて、tvOS のサポートの追加、iOS アセット カタログのサポートの強化、XML 編集機能の向上、iOS アプリを作成する際の SSL/TLS と HttpClient の実装のためのセレクターの追加が行われました。 詳細については、Xamarin のリリース ノートをご覧ください。

既知の問題

このリリースの既知の問題の詳細については、次の MSDN の記事をご覧ください。「Visual Studio 2015 Update 3 の既知の問題