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


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



Note

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


サポート期間

このバージョンはサポート対象外になりました。 Visual Studio のサポートの詳細については、Visual Studio 2017 のサポート ポリシーに関するページを参照してください。

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

Visual Studio ブログ

Visual Studio ブログは、Visual Studio エンジニアリング チームからの製品の情報の公式な情報源です。 Visual Studio バージョン 15.5 リリースの詳細については、次の投稿を参照してください。

Visual Studio 2017 バージョン 15.5 リリース


15.5 の主な新機能の概要

15.5 で修正された主な問題

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

ユーザーから報告され、Visual Studio 2017 バージョン 15.5 で修正されたすべての問題を参照できます。

Developer Community ポータル


15.5 の新機能の詳細

Release Notes Icon Visual Studio 2017 バージョン 15.5.0

2017 年 12 月 4 日リリース

15.5 の新機能

Visual Studio IDE

セットアップとインストール
  • インストーラーがインストール中に Windows の復元ポイントを生成するようになりました。
  • [プログラムの追加と削除] に Visual Studio のインストールごとのエントリが表示されるようになりました。 Visual Studio インストーラーでエントリごとの変更とアンインストールがサポートされるようになりました。
  • オフライン レイアウトからのインストールで、切断されているコンピューターへの中間証明機関の証明書のインストールが不要になりました。
  • インストールと更新のプロセスで、信頼性とキャンセル機能が改善されました。
エラー ダイアログの更新

エラー ダイアログに詳細情報が表示されるように更新され、Visual Studio 開発者コミュニティで挙がっている解決策を使用してインストールの問題が解決できるようになりました。 (図 1)

新しいインストーラー エラー ダイアログ ボックス
(図 1)新しいインストーラー エラー ダイアログ ボックス
パフォーマンス
  • 大規模な C# および Visual Basic のプロジェクトの読み込み時間が短縮されました。
  • デバッグからリリースまでの構成の切り替えの時間が短縮されました。
  • .NET Core プロジェクトのファイルとフォルダーの追加、削除、名前変更の時間が短縮されました。
  • ライトウェイト ソリューション ロード (LSL) がないとソリューションの読み込み時間が短縮されたため、LSL が非推奨になりました。
接続済みサービス
  • .NET Core をターゲットとする ASP.NET Core プロジェクトをサポートする Azure Storage サービス プロバイダーが更新されました。

チーム エクスプローラーの更新

チーム エクスプローラーの最新の更新プログラムは、UserVoice に寄せられたフィードバックを元に作成されています。

チーム エクスプローラーで Git のサブモジュールとワークツリーを操作したり、fetch.prunepull.rebase を構成したりできるようになりました。 Visual Studio で、Git のサブモジュールとワークツリーが標準のリポジトリと同様に扱われるようになりました。 ローカル リポジトリの一覧に追加して、コーディングを取得するだけです。

ただし、サブモジュールでは、複数リポジトリのサポートを必要とするアクション (親リポジトリのファイルとサブモジュールのファイルを同時に表示するなど) は実行できません。

さらに、既定の Git の動作を設定して、フェッチごとの排除や、プルごとのリベースが簡単にできるようになりました。 フェッチごとの排除によって、サーバーに存在しなくなったローカル追跡ブランチが削除され、ブランチの一覧を最新で無駄がない状態に保てるようになります。 プルごとのリベースによって、コミットの履歴を線形で追跡しやすい状態に保てるようになります。 こうしたオプションはグローバルのリポジトリ設定にあります。

.NET Core と ASP.NET Core のセキュリティ アドバイザリ

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

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

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

  • CVE-2017-11879 オープン リダイレクトにより、特権の昇格が発生する場合があります。オープン リダイレクトが存在する ASP.NET Core 2.0 では、特権の昇格が生じるセキュリティの脆弱性があります。

  • CVE-2017-11770 サービス拒否の脆弱性: ASP.NET Core 1.0、1.1、2.0 でアプリケーションが Windows の Http.Sys によってホストされていると、形式が適切でない要求によってサービス拒否が発生するセキュリティの脆弱性があります。

ASP.NET Core 1.0、ASP.NET Core 1.1、ASP.NET Core 2.0 で作成した新しいプロジェクトでは、上記のセキュリティ更新プログラムを含むパッケージ バージョンを使用します。 既存のプロジェクトの場合、ユーザーは [NuGet パッケージの管理] ダイアログを使用してパッケージを新しいバージョンに更新することができます。

MSVC コンパイラ ツールセット

Visual Studio 2017 15.5 では、ビルド ツールの MSVC コンパイラ ツールセットが、15.4 バージョン 14.11 ツールセットと互換性のあるバージョン 14.12 に更新されています。 Visual Studio 2017 15.5 へのアップグレード後にコードのコンパイルで問題が発生した場合は、14.12 ツールセットと並行して 14.11 ツールセットのインストールを強制することができます。 Visual Studio 2017 15.4 ツールセット (14.11) は、C++ デスクトップのワークロードのインストール後、[個々のコンポーネント] タブから選択することができます。

C# コンパイラの新機能

C# コンパイラで以下のような 7.2 の言語機能セットがサポートされるようになりました。

  • ref struct 修飾子を使用した Kestrel と CoreFX 全体で使用されている Span<T> 型のサポート。
  • readonly struct 修飾子: 構造体のすべてのメンバーが readonly になるように強制します。 これにより、コードの正確性が向上し、コンパイラがメンバーにアクセスする際に不要な値をコピーすることを回避できます。
  • in パラメーター / ref readonly の戻り: 変更できない構造体を変更可能な ref 値と同じ効率で安全に渡したり戻したりできます。
  • private protected アクセス修飾子: protectedinternal の共通部分にアクセスが制限されます。
  • 末尾以外の名前付き引数: 後続のすべての引数が名前で渡されていなくても、引数リストの途中で名前付き引数を使用できるようになりました。

Visual Studio Tools for Xamarin

このリリースには、iOS と Android 向けの Xamarin SDK で更新されたサポートが含まれています。

ライブ実行の現在のビュー

XAML ベースのユーザー インターフェイスの構築が、新しいライブ実行の現在のビュー機能により、簡単になりました (図 2)。 ユーザー インターフェイスを構築すると、アプリを保存、コンパイル、再展開することなく Android エミュレーターへの入力と同時に有効になります。

Xamarin Live Player

Xamarin Live Player では、開発者は iOS および Android デバイスで直接、アプリを継続的に展開、テスト、デバッグすることができます。 Xamarin Live Player アプリ (App Store または Google Play で入手可能) をダウンロードした後、デバイスを Visual Studio とペアリングすることで、Visual Studio とモバイル デバイスのみを使用したモバイル アプリの構築を始めることができます。 Xamarin.Forms 用に最適化されており、XAML を変更してその変更をすぐにデバイスで確認できるようになりました。コンパイルや完全展開を待つ必要はありません。 このリリースでは、多くの Xamarin Live 機能が以下のように拡張されています。

  • スマートなデバッグとライブ実行: Xamarin Live Player のデバッグ時に、このライブ プレイヤーがスタートアップ プロジェクトを自動的に正しいプラットフォームに調整します (図 3)。 たとえば、iOS が選択されていて、ペアリングされるライブ プレイヤーが Google Pixel である場合、IDE によりスタートアップ プロジェクトを Android に変更するよう推奨されます。
  • 展開状態: "デバッグ" の状態を Xamarin Live Player のステータス バーの展開状態で追跡できます。
  • コンソールとエラー ウィンドウの統合: アプリ内で記録された出力がコンソール ウィンドウに、エラーは Visual Studio のエラー ウィンドウに表示されるようになりました。
  • コンテキスト メニューとキーボード ショートカットのライブ実行: XAML UI を簡単に視覚化するため、コンテキスト メニューとキーボード ショートカットを追加して XAML ページをより速く簡単にプレビューできるようにしました。
  • ドキュメント切り替えのライブ実行: UI をビルドするときに異なる XAML ドキュメントを切り替えることはよくあります。 Visual Studio でアクティブなドキュメントを変更すると、どの XAML ページを開いてもライブ実行が自動的に行われるため、異なるページを簡単に切り替えて、デバイスに即座に反映することができます。
Xamarin Live Player
(図 3) Xamarin Live Player のペアリング、展開、ライブ エディット モードのアニメーション
テンプレート

[ファイル] > [新しいプロジェクト] > [モバイル アプリ] (図 4) が、iOS、Android、Windows アプリのクロスプラットフォーム ウィザードに対する次のような更新によりいっそう簡単になりました。

  • .NET Standard サポート - コード共有方法として .NET Standard 2.0 を使用する新しいクロスプラットフォームの Xamarin アプリを作成できるようになりました。
  • [ターゲット プラットフォーム] のチェックボックス - [ファイル] > [新規] で目的のプラットフォームを選択します。
  • PackageReference - すべてのテンプレートが既定で PackageReference を使用するようになりました。これで、Xamarin アプリで NuGet パッケージを簡単に管理できます。
  • 展開のパフォーマンスの拡張 - テンプレートが以前より速く展開されるようになりました。 特に極端なケースでは、展開時間が 40 分の 1 まで短縮される場合があります。
[ファイル] -> [新規] -> [モバイル アプリ]
(図 4) [ファイル] -> [新規] -> [モバイル アプリ] 設定
リモートの iOS シミュレーター

リモートの iOS シミュレーターにより、Windows の Visual Studio のシミュレーターのみを使用して iOS アプリのデバッグとテストを簡単に行えるようになります。 Mac の iOS シミュレーターで可能なことがすべてサポートされるだけでなく、マルチタッチなどもサポートされます。 Visual Studio 2017 バージョン 15.5 から、リモートの iOS シミュレーターが無料の Community Edition を含むすべての Visual Studio エディションで使用できるようになりました。

Xamarin Android SDK Manager

Xamarin Android SDK Manager により、Android SDK の管理が簡単になりました。 新しい SDK Manager は Visual Studio の [ツール] > [Android] > [Android SDK Manager] から使用できます。

F# ツールの機能強化

Visual Studio 2017 15.5 リリースでは、.NET Core SDK プロジェクトの F# ツールのサポートに重点を置きました。 次の内容がサポートされます。

  • 新しい .NET Core コンソール アプリ、.NET 標準ライブラリ、.NET Core 単位テストのプロジェクトを [ファイル] > [新しいプロジェクト] から作成できるようになりました。
  • 既存の .NET Core と .NET Standard プロジェクトのサポートを追加しました。
  • .NET Framework のバージョンを対象とする既存の .NET Core SDK プロジェクトのサポートを追加しました。
  • プロジェクト間参照がサポートさています。
  • Web SDK プロジェクトのサポートが追加されました (例: F# ASP.NET Core プロジェクトまたは Giraffe テンプレートを使用するプロジェクト)。
  • Web SDK プロジェクトのツールを右クリックで公開できるようになりました。
  • Visual Studio Team Services ツールを使用した CI/CD パイプラインの自動生成がサポートされています。

.NET Core SDK プロジェクトでは注目されていない Visual F# ツールの改善点も多数あります。 これには次のようなものがあります。

  • (F# から C# への) 定義へ移動 (Saul RennisonVasily Kirichenko)。
  • 青 (エクストラ コントラスト) のテーマの色付け (Microsoft と Vasily Kirichenko)。
  • プロパティ ページがさまざまなモニターで正しく自動サイズ調整されるようになります。
  • インデントが "スマート" に設定されていると、改行時にスマートな自動インデントが行われます (Duc Nghiem Xuan)。
  • インデントが "スマート" に設定されていると、右かっこの自動インデント解除が行われます (Saul Rennison)。
  • ツールヒントのシンボル、[すべての参照の検索]、[すべてに移動]、[インラインの名前変更] で列挙型フィールドを表示できるようになりました (Vasily Kirichenko)。
  • 改行で区切られている XML ドキュメントのコメントがマウスでホバーされている XML ドキュメントのコメントに付加されません (Vasily Kirichenko)。
  • ref キーワードの XML ドキュメントが修正されました (CHBen)。
  • 複数のバグ修正とパフォーマンスの改善。

問題が見つかりましたら、GitHub リポジトリにお送りください。

F# セットアップの変更

F# の入手方法を変更しました。

  • .NET Core 2.0 を必要とするワークロードをインストールする場合、F# 言語のサポートも既定でインストールされます。 .NET Core、ASP.NET、および Azure のワークロードでもこれが行われるようになりました。
  • .NET デスクトップ開発、データの保存と処理、データ サイエンスと分析のアプリケーションのワークロードの "F# 言語サポート" チェックボックスの名前が "F# デスクトップ サポート" に変更されています。

F# 4.1 コンパイラの機能強化

このリリースでは F# 4.1 コンパイラのバグ修正が多数あります。

  • F# コンパイラでの PDB 生成の機能強化。2014 年から発生している F# のデバッグに関する既知の 5 つの問題が修正されています。
  • コンパイラによって誤って解決されているレコード フィールドの修正 (Vasily Kirichenko)。
  • StartAsTask でキャンセルの終了が適切に待機されるようになりました (Matthias Ditrich)。
  • 型が属性だけで使用されるときに、アセンブリ参照が作成されるようになりました。
  • 同じケース名の単一ケース構造体の判別共同体がオブジェクト型に暗黙的に変換されなくなりました。
  • MailboxProcess で起こりうる無限非同期ループ。 受信が修正されました。

Visual C++ の機能強化

[ファイル]>[開く]>[CMake] を使用して、IDE に既存の CMake プロジェクトとキャッシュ構成をインポートできるようになりました。

[フォルダーを開く] での ARM オンライン コンパイラ エクスポートのサポート

埋め込みの IoT プロジェクトに Linux C++ ワークロードのオプションを選択すると、ARM マイクロコントローラーを対象とするプロジェクトを編集してコンパイルできます。 ARM オンライン コンパイラから GCC としてエクスポートされたプロジェクトのオープンをサポートしています。これは後に Visual Studio 内からローカルにクロスコンパイルできます。 詳細については、ARM 開発のための Visual C++ に関するブログの投稿を参照してください。

リモート タスク

[フォルダーを開く] で、リモート タスクがサポートされるようになりました。 これらは、Secure Shell (SSH) 上のリモート システムで実行されるタスクです。 このタスクは Linux システムで作成したコードのコンパイルなど行うために、対象のコンピューターにファイルをコピーするように構成することもできます。 詳細については、Visual Studio でのリモート タスクの使用に関するブログの投稿を参照してください。

標準テンプレート ライブラリの機能強化

オープン標準の Web サイトには、オープン標準を作成しているグループのさまざまなページが掲載されています。 C++17 標準に関する以下の機能強化を、標準テンプレート ライブラリに追加しました。

  • not_fn(): P0005R4 は以前の否定子である not1not2 の置き換えとして、ライブラリ基盤 TS v2 から not_fn 関数バインダーを採用することをお勧めしています。
  • enable_shared_from_this の新しい表現: P0033R1 Re-enabling shared_from_this
  • 残留ライブラリ パーツの廃止: P0174R2。 C++ 標準ライブラリの多くの機能が年を経て追加されることで改善されています。そのため、意図した目的や当初の予想どおりに動作しない場合があることについても説明しました。 このペーパーでは、より優れた、簡単な、または明確なオプションを使用できる非推奨の機能を提示します。
  • std::function のアロケーター サポートの削除: P0302R1。 クラス テンプレート std::function にはアロケーター引数を取る複数のコンストラクターがありますが、セマンティクスが不明確です。また、型が消去されたコンテキストでアロケーターを格納し、そのアロケーターをコピー割り当て中に必要な割り当てのために回復する際に技術的な問題があります。 そのようなコンストラクターは削除する必要があります。
  • not_fn() の修正: P0358R1std::not_fn の新しい表現が提示されています。特筆すべき改善点としては、ラッパー呼び出し時の値のカテゴリの伝達がサポートされます。
  • shared_ptr<T[]>shared_ptr<T[N]>: P0414R2。 ライブラリ基盤から C++17 への shared_ptr の変更のマージ。
  • 配列の shared_ptr の修正: P0497R0。 配列の shared_ptr のサポートの修正。
  • shared_ptr::unique() の廃止: P0521R0。 CA 14 の解決策の提案 (shared_ptr use_count/unique)。
  • codecvt の廃止: P0618R0<codecvt> は Unicode コード変換の対処方法として最適ではありません。このライブラリ コンポーネントは Annex D に移動する必要があります。
  • 動的例外指定の削除: P0003R5。 C++11 では動的な例外の指定は非推奨となりました。 C++17 の機能が削除され、一方で noexcept(true) のエイリアスとして (引き続き) 非推奨の throw() 指定が厳密に維持されます。
  • マップと設定のスプライス: P0083R3。 この設計では、あらゆる種類のスプライス操作、コンテナーからの要素 (マップ キーを含む) の移動、その他多くの便利な操作やデザインが可能になります。 これは連想コンテナーと、順序指定されていない連想コンテナーが、ノードの操作をサポートするための拡張です。 これは、標準ライブラリへの純粋な追記です。
  • insert_return_type の明確化: P0508R0。 固有のキーを持つ連想コンテナーと、固有のキーを持つ順序指定されていないコンテナーには、入れ子になった型 insert_return_type を返すメンバー関数 insert があります。 その戻り値の型は、このセクションで指定された型の特殊なものです。
  • STL のインライン変数: P0607R0
Visual C++ コンパイラの機能強化

Visual C++ コンパイラは C++17 機能の約 75% をサポートしています。その中には構造化バインド、constexpr ラムダ、if constexpr、インライン変数、フォールド式、16 進浮動小数点リテラル、型システムへの noexcept の追加が含まれます。 /std:c++17 スイッチの下にあります。 /permissive- 準拠モードには、2 フェーズの名前参照のサポートと、可変個引数テンプレートのパック展開サポートの改善が含まれています。 さらに、/permissive- モードが C++ プロジェクトのプロジェクト プロパティの新しい言語のドロップダウン メニューとして追加されています。

Visual C++ オプティマイザーの機能強化

C++ コードの生成チームは、15.5 リリースで既存のコンパイラの最適化を改善し、新しい最適化を追加しました。

リンカーの機能強化を選択してください:

  • /OPT:ICFの実装が新しく、高速になります: リンク時間が最大で 9% 速くなります。
  • インクリメンタル リンクの修正を行いました。 インクリメンタル リンクがフル リンクよりも遅いことがなくなります。

既存の最適化の機能強化を選択してください:

  • 条件式のベクター化ヒューリスティックを改善しました。
  • loop-if-unswitching の最適化を拡張しました。
  • ループのアンローリングを改善しました。
  • 浮動小数点数の最小/最大の codegen を改善しました。

新しい最適化を選択してください:

  • SSA オプティマイザーの冗長 (および部分的に冗長) な指示を除去することで改善しました。
  • 条件付きスカラーのストアのベクター化を最適化しました。
  • sin(x)cos(x) の呼び出しを sincos(x) に統合しました。

Visual C++ は Intel の AVX-512 に対応しています。これに含まれるベクトルの長さ命令は AVX-512 の新しい関数を 128 ビット長と 256 ビット長のレジスタに与えます。

C++ のコード分析で、20 を超える新しい C++ Core Guidelines のチェックを配布しています。 このチェックでは、スマート ポインターが正しいこと、グローバル初期化子の使い方が正しいこと、gotobad_cast のようなコンストラクトのフラグ使用が確認されます。

15.3 で使われていた警告番号の一部は 15.5 では使われなくなりました。 より具体的なチェックに置換されました。

Google Test および Boost.Test フレームワークの組み込みサポート

Visual Studio で Google Test と Boost.Test の単体テストを記述、探索、および実行します。 既定では、Google Test および Boost.Test フレームワークがテスト エクスプローラーでサポートされるようになりました。 前の Visual Studio のインストールからアップグレードする場合、Visual Studio インストーラーを開き、Visual Studio インスタンスで [変更] をクリックし、[C++ によるデスクトップ開発] の下の [Test Adapter for Google Test] と [Test Adapter for Boost.Test] をチェックします。 新しい Google Test プロジェクトは簡単に作成されます。[ファイル] > [新規] > [プロジェクト] > [Visual C++] > [テスト] > [Google Test] の順に選択します。

詳細については、Microsoft Docs の「How to use Google Test for C++ in Visual Studio」(Google Test を Visual Studio の C++ で使用する方法) と「How to use Boost.Test for C++ in Visual Studio」(Boost.Test を Visual Studio の C++ で使用する方法) を参照してください。

Visual Studio Web ツール

  • Razor 構文の書式設定が改善されました。
  • Azure Virtual Machines に ASP.NET アプリケーションを公開するための操作が改善されました。

Docker コンテナーのツール

  • Docker コンテナー用の Visual Studio のツールで、最適化されたコンテナー イメージの作成を効率化するためのマルチステージの Dockerfile がサポートされるようになりました。
  • Windows 10 バージョン 1709 または Windows Server バージョン 1709 を実行しているコンピューターで Visual Studio を実行している場合、コンテナー イメージは既定で Windows Server バージョン 1709 を利用します。 これは、Dockerfile を編集することで変更できます。 古いバージョンの Windows を利用するコンテナー イメージは、Hyper-V 分離モードの Windows 10 バージョン 1709 および Windows Server バージョン 1709 でのみ実行されます。 詳細については、「Windows コンテナーのバージョンの互換性」ページを参照してください。
  • 既定では、Docker サポートが含まれるプロジェクトを開くと、Visual Studio が必要なコンテナー イメージをバックグラウンドで自動的にプル、ビルド、および実行します。 これは Visual Studio の [コンテナーをバックグラウンドで自動的に開始する] 設定で無効にすることができます。

TypeScript/JavaScript の機能強化

Angular 2 のサポート

Angular 2 の開発者は、エラー、入力候補、コード ナビゲーションをインライン テンプレートと .ngml テンプレートのファイルに表示できるようになりました。 概要と手順については、サンプルのリポジトリを参照してください

パフォーマンスの向上

JavaScript/TypeScript テキスト エディターのプロジェクトのオプション ページの下に、[エディターで開いているファイルを含むプロジェクトのみ分析する] チェックボックスを追加しました。 このオプションにより、大規模なソリューションにおけるパフォーマンスと信頼性が向上します。 このボックスを選択すると、すべてのファイルの TypeScript エラーの完全な一覧を表示するにはソリューションのビルドを実行する必要があります。

TypeScript/JavaScript の言語サービスで想定より多くのメモリが使用され、誤ったバージョンの TypeScript がマルチ プロジェクト ソリューションに読み込まれる原因となった問題を修正しました。

Windows Communication Foundation (WCF) のツール

WCF Web サービス リファレンスが接続されているサービス プロバイダー (図 5) が Visual Studio 15.5 の一部になりました。

WCF Web Service Reference
(図 5) WCF Web サービス リファレンス

このツールを使用するには、.Net Core プロジェクトで [依存関係] プロジェクト項目を右クリックし、[接続済みサービスの追加] オプションを選択して、コードを生成する Web サービスのアドレスを入力します。 生成された WCF クライアント プロキシ コードは、プロジェクトに自動的に追加される C# ファイルに保存されます。 これにより、.NET Core ベースのコードが Web サービスと簡単に通信できるようになります。

詳細については、WCF Web サービス リファレンスのリリース ノートを GitHub で参照してください。

デバッグと診断

スナップショット デバッガーで実稼働アプリをデバッグする

スナップポイントとログポイントを使用して、アプリへの影響は最小限に、Azure App Services で実行される ASP.NET と ASP.NET Core アプリケーションに対するデバッグを実行できるようになりました。

  • スナップポイントをローカル、ウォッチ、呼び出し履歴を含む、アプリの状態をキャプチャするように設定します (図 6)。 ブレークポイントとは異なり、スナップポイントがヒットしても、アプリは停止しません。
スナップポイントの画像
(図 6) スナップポイント
  • ログポイントを使用して、アプリからの新しいメッセージを記録します。コードの追加やアプリケーションの再展開は必要ありません (図 7)
ログポイント
(図 7) ログポイント
埋め込みソースおよび埋め込み PDB のサポート

埋め込みソースにより、Visual Studio デバッガーが PDB ファイルから直接マネージド バイナリのソース ファイルを抽出して使用できるようになりました。 埋め込みソースと埋め込み PDB を組み合わせて、完全にスタンドアロンのデバッグ可能なバイナリを作成します。 /embed コンパイラ スイッチの使用について、詳細を参照してください。

埋め込み PDB を使用したビルド時に、エディット コンティニュを使用してマネージド コードをデバッグできるようになりました。

IntelliTrace によるデバッグ中のステップバック

新しい IntelliTrace のデバッグのステップバック機能では、IntelliTrace がブレークポイントとデバッガーの各手順でアプリケーションのスナップショットを自動的に取得します。 これにより、前のブレークポイントまたは手順に戻り、過去の時点でのアプリケーションの状態を確認できるようになります。

この機能は Windows 10 Anniversary Update 以降で使用することができ、現在のところ ASP.NET、WinForms、WPF、マネージド コンソール アプリ、マネージド クラス ライブラリをサポートしています (図 8)。 この機能を有効にするには、[ツール]>[オプション]>[IntelliTrace] 設定に移動して、[IntelliTrace events and snapshots]\(IntelliTrace のイベントとスナップショット\) を選択します。

ステップバック
(図 8) IntelliTrace によるデバッグ中のステップバック

条件付きアクセスが有効になっている Visual Studio から Azure のリソースへのアクセス

Visual Studio で条件付きアクセスが有効になっている Azure リソースへのアクセスがサポートされるようになりました。アカウント自体に 2FA が必要でない場合でも 2FA での認証が必要となります。 以前は、アカウントのサインインに 2FA が必要だった場合、Visual Studio で 2FA のプロンプトが表示されていたため、2FA が必要なすべてのリソースにアクセスできました。しかし、アカウントに 2FA が必要でなかった場合、Visual Studio はそのような 2FA のリソースにアクセスできませんでした。

今は、アカウントに 2FA が必要でないがリソースでは必要な場合、2FA なしで Visual Studio 内でアカウントを認証することができます。最初に 2FA が必要な Azure リソースにアクセスしようとすると、Visual Studio は再認証を求め、リソースにアクセスできるようになるために 2FA が必要になります。

Windows ストアの Office の Office ツール サポート

Office Web アドイン プロジェクトと VSTO プロジェクトで、Windows ストアの Office を使用した開発がサポートされるようになりました。 Windows ストアの Office を使用して Web アドイン プロジェクトと VSTO プロジェクトを作成、ビルド、デバッグ、および公開できます。

  • Windows ストアの Office で Office ツールを使用するには、Windows 10 または Windows Server 2016 の Fall Creators Update (バージョン 1709) が必要です。

Visual Studio Tools for Unity

  • Unity プロジェクトが、Unity からのスクリプトの追加または削除時に自動的に Visual Studio に再読み込みされるようになりました。
  • IL2CPP/.NET 4.6 のバックエンドの UWP ゲームで動作している場合の .Player プロジェクトの生成が修正されました。
  • Unity エディターをデバッグするために Xamarin および Visual Studio for Mac で共有された Mono デバッガーを使用するオプションが導入されました。

ライブ単体テスト

  • Live Unit Testing のビルドが Visual Studio のアウトプロセスのメモリ使用率の改善プロセスに含まれなくなりました。

Windows のパッケージ化

既存のデスクトップ アプリケーションから最新の Windows 10 の機能を利用するのに役立つ UWP アプリケーションとコンポーネントを含めるためのサポートがパッケージ プロジェクトに追加されました。 UWP コンポーネントを含めるには、UWP アプリケーションに参照を追加 (Add Reference) することができます "(図 9)"

UWP 参照を含む Windows パッケージ プロジェクト
(図 9) UWP 参照を含む Windows パッケージ プロジェクト

ストア パッケージ ウィザードを使って、既存の UWP プロジェクトと同様に、ストアにデスクトップ ブリッジ アプリケーションを送信するのに必要なファイルを生成できます。


Release Notes IconVisual Studio 2017 バージョン 15.5.1

2017 年 12 月 7 日リリース

15.5.1 で修正された主な問題

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


Release Notes IconVisual Studio 2017 バージョン 15.5.2

2017 年 12 月 14 日リリース

15.5.2 で修正された主な問題

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


Release Notes IconVisual Studio 2017 バージョン 15.5.3

2018 年 1 月 9 日リリース

15.5.3 での更新プログラムの概要

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

  • CVE-2018-0786 X509 証明書の検証でのセキュリティ機能のバイパス: Microsoft は、パブリック バージョンの .NET Core 1.0、.NET Core 1.1、.NET Core 2.0 の脆弱性に関する情報を提供するために、このセキュリティ アドバイザリをリリースします。 またこのアドバイザリでは、アプリケーションを正しく更新する上で開発者が実行する必要のある操作に関するガイダンスも提供します。 このセキュリティ アドバイザリは、UWP の .NET ネイティブにも適用できます。

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

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

  • CVE-2018-0764 XML ドキュメントを解析する際のサービス拒否: 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 に更新することをお勧めします。

15.5.3 で修正された主な問題

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


Release Notes IconVisual Studio 2017 バージョン 15.5.4

2018 年 1 月 16 日リリース

15.5.4 で修正された主な問題

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


Release Notes IconVisual Studio 2017 バージョン 15.5.5

2018 年 1 月 25 日リリース

15.5.5 での更新の概要

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

15.5.5 で修正された主な問題

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


Release Notes IconVisual Studio 2017 バージョン 15.5.6

2018 年 1 月 29 日リリース

15.5.6 での更新の概要


Release Notes IconVisual Studio 2017 バージョン 15.5.7

2018 年 2 月 20 日リリース

15.5.7 での更新の概要

  • チーム エクスプローラーでは TLSv1.2 がサポートされます。 Visual Studio に付属する Git と Git Credential Manager のコンポーネントを更新しました。 必須ではない Git for Windows コンポーネントも更新されています。 Git からの接続先サービスで TLSv1 と TLSv1.1 のサポートが非推奨とされ、TLSv1.2 が採用されている場合にも、この変更でそのサービスに接続できるようになります。

15.5.7 で修正された主な問題

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

  • .NET Core 2.1 以降をターゲットとするプロジェクトは、Visual Studio 2017 バージョン 15.5 ではサポートされません。
  • .NET Core 2.1 以降用の SDK をインストールすると ASP.NET Core 2.0 の Web アプリケーションを作成するオプションが消滅するという問題を修正しました。

既知の問題

ご意見とご感想はすべて参考にさせていただいております。 開発者コミュニティ サイトにアクセスして、最新の問題を検索したり、新しい問題を投稿したり、既存の問題を更新したりします。 Visual Studio 2017 バージョン 15.5 のすべての既知の問題と回避策を参照できます。

Visual Studio 2017 の既知の問題


フィードバックと提案

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


ブログ

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

開発者ツールのブログ


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

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


ページの先頭へ