Visual Studio Icon Visual Studio 2017 バージョン 15.8 リリース ノート


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



注意

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


Visual Studio 2017 をダウンロードするには、[ダウンロード] ボタンをクリックし、メッセージが表示されたら Visual Studio Subscription でログインします。 Visual Studio Subscription がない場合は、ログイン ページで [新しい Microsoft アカウントの作成] をクリックして、無料で作成できます。 Visual Studio 2019 を使用して、最新の機能とバグの修正を取得することをお勧めします。

他の Visual Studio 2017 製品をダウンロードするには、以前のバージョンのページを参照してください。


15.8 の新機能

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

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

重要

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

15.8 の主な新機能の概要

15.8 で修正された主な問題

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

ユーザーから報告され、Visual Studio 2017 バージョン 15.8 で修正されたすべての問題を参照してください。

The Developer Community Portal


15.8 の新機能の詳細

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

2018 年 8 月 14 日にリリース

15.8 の新機能

インストール

インストールを開始する前にすべてのインストール ファイルをダウンロードするオプションが追加されました。

  • この新しいオプションを使用するには、インストーラーで [全部ダウンロードしてからインストールする] オプションを選択します (図 1) 。 インターネット接続が低速の場合には、このオプションを選択することをお勧めします。
  • 既定のオプションは、ダウンロードとインストールを並行して行う、[ダウンロードしながらインストールする] のままです。
Download Otion
(図 1) ダウンロード オプション

パフォーマンス

このリリースには、次のパフォーマンスの向上が含まれています。

  • ソリューションの再読み込みが不要になったため、大規模なソリューションに対する C#、VB、および C++ プロジェクトの分岐の切り替えがさらに高速になりました。
  • 大規模なソリューションで C# および VB プロジェクトの小規模なセットをアンロードおよびリロードする時間が、数分から数秒に短縮されました。
  • 特定の種類のファイルまたはデザイナーを開きなおすと、ソリューションの読み込みが遅くなることがあるため、前のセッションで開いていたドキュメントをもう一度開くことを無効にするオプションを追加しました。
    • このオプションの切り替えは、 [ツール] > [オプション] > [プロジェクト] > [ソリューション] > [全般] で行います。

パフォーマンスのテスト

複数のテスト プロジェクトがある大規模なソリューションでいくつかのテストを実行する際のパフォーマンスを大幅に改善しました。 マイクロソフトのラボでは、10,000 を超える MSTests があるソリューションで 1 つのテストを実行した場合、最大 82% 高速になりました。

Visual Basic のパフォーマンス改善

Visual Basic で、パターン CInt(Fix(number)) を使用して非整数型から整数型に変換する際のパフォーマンスが大幅に向上しました。

パフォーマンス プロファイル

このリリースには、次のパフォーマンス プロファイルの機能強化が含まれています。

  • 一時停止状態でプロファイルを開始する機能が追加されました。

    • パフォーマンス プロファイラー (ALT-F2) の CPU 使用率ツールを一時停止状態で開始できるようになりました (図 2) 。 これは、CPU 使用率を調査する価値があるシナリオの待機中に役立つ場合があります。 起動時に CPU 使用率の収集が無効になっている場合、パフォーマンス プロファイラーでは、明確に有効化されるまで、CPU 使用率のいずれのサンプル スタック データも収集されません。 その結果、収集して分析するデータ量が少なくなるため、パフォーマンス調査の効率が高まります。

    • CPU 使用率のサンプル収集が無効になっている状態でセッションを開始するには、パフォーマンス プロファイラーの起動ページの [CPU 使用率] の横にある歯車アイコンをクリックします。 CPU 使用率のプロパティ ページで、 [CPU プロファイルを有効にする (サンプリング)] チェック ボックスをオフにし、 [OK] をクリックして設定を保存します。

      CPU Usage Tool settings page
      (図 2) CPU 使用率ツールの設定
    • (パフォーマンス プロファイラーの起動ページで [開始] をクリックして) ターゲット アプリケーションを起動すると、CPU プロファイルを制御することができる CPU 使用率のグラフが表示されます (図 3) 。 CPU 使用率のサンプル スタック データの収集を有効にするには、ビューの中央にある [CPU プロファイルを有効にする] を選択するか、CPU 使用率のグラフのすぐ下にある [CPU プロファイルの記録] をクリックします。 [CPU プロファイルの記録] をクリックして、必要に応じて何度でもサンプル データの収集を有効化または無効化することができます。 CPU 使用率グラフの色は、サンプル コレクションがその時点で有効または無効かどうかを示すために変化します。

      CPU Usage Tool monitoring view
      (図 3) CPU 使用率の使用状況グラフ
  • .NET オブジェクト割り当て追跡ツールを追加しました。

    • .NET オブジェクト割り当て追跡ツールが、パフォーマンス プロファイラーから使用できるツールのファミリに加わりました。 パフォーマンス プロファイラー セッションに対してこのツールを呼び出すと、ターゲット アプリケーションで発生するすべての .NET オブジェクト割り当てに対し、スタック トレースの収集が開始されます。 お使いのアプリケーションでのメモリのアクティビティの詳細を明らかにするため、このスタック データは、オブジェクトの種類とサイズ情報と共に分析されます。 コードで割り当てパターンをすばやく判断し、異常を特定することができます。 さらに、ガベージ コレクション (GC) イベントでは、収集され保持されたオブジェクトを簡単に判別し、アプリケーションのメモリ使用量に影響するオブジェクトの種類をすばやく判断できます。
    • これは、API の作成者が割り当てを最小限に抑えるのに特に役立ちます。 多くのアプリケーションでは、診断データの収集に関連するバッファーの制限がオーバーランされますが、API の主なシナリオを実行する小規模なテスト アプリケーションは非常にうまく診断することができます。 テスト アプリケーションの実行中に、パフォーマンス プロファイラーにより、ライブ オブジェクト (数) の折れ線グラフと、オブジェクトの差分 (変化の割合 %) の棒グラフが表示されます。
    • .NET オブジェクト割り当て追跡ツールを使用するには、パフォーマンス プロファイラーの起動ページ (図 4) を表示し、プロファイルするターゲットを選択し (既定のターゲットはソリューションのスタートアップ プロジェクト)、[使用可能なツール] の下にある [.NET オブジェクト割り当て追跡] チェック ボックスをオンにして、 [開始] をクリックします。
    Performance Profiler launch page
    (図 4) パフォーマンス プロファイラーの起動ページ

パフォーマンス プロファイリング (CPU 使用率)

このリリースには、パフォーマンス プロファイラーの CPU 使用率ツールに対する次の改善が含まれています (ALT F2 で利用可能)。

  • コール ツリー ビューで、論理呼び出しスタックによる非同期実行が既定で表示されるようになりました。 この動作をオフにするには、CPU 使用率のメイン ビューの [フィルター] ドロップダウン リストで [非同期コードの作成] オプションをオフにします。
  • モジュール (dll) ごと、およびモジュール内の関数ごとにパフォーマンス情報を表示するモジュール/関数ビューが追加されました。 モジュール/関数ビューは、CPU 使用率のメイン ビューで関数を選択したときに使用できるコンテキスト メニューから、またはコール ツリーまたは呼び出し元/呼び出し先ビューの [ビュー] ドロップダウンから表示できます。
  • CPU 使用率ツールのメイン ビューの CPU 使用率グラフに、インスタンスの表示が追加されました。 関数が (たとえば、スタック上で) 実行されているときに、いずれかの CPU 使用率ビューに一覧表示されている関数をダブルクリックすることで、インスタンスを表示できます。

生産性

このリリースには、次の生産性の機能強化が含まれています。

  • C# の開発の ドキュメントのフォーマット (Ctrl + K、D または Ctrl + E、D) を使用して、追加のコードのクリーンアップを実行できます。 クリーンアップを構成するには、 [ツール] > [オプション] > [テキスト エディター] > [C#] > [コード スタイル] > [書式設定] > [全般] の順に移動します。
  • リファクタリングと Ctrl +. または Alt + Enter を使用するクイック アクションをさらに追加しました。
    • "if の反転" は、if-else ステートメントのロジックを反転することができます。 このリファクタリングをトリガーするには、if キーワードにカーソルを置きます。
    • "メソッドの呼び出しサイトからパラメーターを追加" を使用すると、メソッドの呼び出しに引数を追加し、 [クイック アクションとリファクタリング] をトリガーすることで、メソッドにパラメーターを追加することができます。
    • "不要なかっこを削除" は、コンパイルに必ずしも必要ではない二項演算子を囲むかっこを削除します。 このスタイル規則は、 [ツール] > [オプション] > [テキスト エディター] > [C#] > [コード スタイル] > [全般] から構成することも、.editorconfig で構成することもできます。
      • dotnet_style_parentheses_in_arithmetic_binary_operators
      • dotnet_style_parentheses_in_relational_binary_operators
      • dotnet_style_parentheses_in_other_binary_operators
      • dotnet_style_parentheses_in_other_operators
    • "割り当てで三項条件を使用し、ステートメントを返す" は、 [ツール] > [オプション] > [...] で、または .editorconfig でスタイル規則として構成することもできます。
      • dotnet_style_prefer_conditional_expression_over_assignment
      • dotnet_style_prefer_conditional_expression_over_return
  • [すべてにジャンプ] ウィンドウに新しいコマンドと機能強化を追加しました。
    • 囲むブロックへの移動 (Ctrl + Alt + 上向き矢印) により、囲むコード ブロックの先頭まで簡単に移動することができます。
    • 次の/前の問題に移動 (Alt + PageUp/PageDown) により、次/前の問題 (エラー、波線、電球) にスキップすることができます。
    • メンバーへ移動 (Ctrl + T、M) が、既定のファイルのスコープになりました。 既定値をソリューションに戻すには、スコープを現在のドキュメントに切り替えます (Ctrl + Alt + C)。
  • マルチ キャレットのサポートにより、ファイル内の任意の複数の位置に挿入ポイントと選択を作成できるようになりました。 これにより、同時に複数の場所でテキストの追加、編集、または削除が可能になります。
    • キャレットを挿入するには、Ctrl + Alt + 左クリック します。
    • 現在の選択と一致する次の場所に選択とキャレットを追加するには、Shift + Alt + Ins を押します。
    • アクションの完全なリストを表示するには、 [編集] > [マルチ キャレット] の順に移動します。
  • コンテキストに応じたナビゲーション メニューにアクセスするには、Alt + ` を押します。
  • キーバインドと 2 つの新しいキーボード プロファイルとの一貫性を維持します: Visual Studio CodeReSharper (Visual Studio) 。 これらのスキームは、 [ツール] > [オプション] > [環境] > [キーボード] および上部のドロップダウン メニューで見つけることができます。

デバッグ

このリリースには、次のデバッグの機能強化が含まれています。

  • Visual Studio 2017 のインスタンスが複数インストールされている場合、デバッグ時にご自分の拡張機能を配置するインスタンスを選択できるようになりました (図 5) 。 これにより、たとえば、Visual Studio リリース チャネルをプレビュー チャネル内でデバッグしながら開発することができます。

    Select your debug instance
    (図 5) デバッグ インスタンスの選択
  • [発行の概要] ページからスナップショット デバッガーを直接アタッチできるようになりました (図 6)

    Attach Snapshot Debugger from Publish Summary page
    (図 6) [発行の概要] からのスナップショット デバッガーのアタッチ
  • ヒープ付きミニダンプのデバッグ中に、[タスク] ウィンドウからマネージド タスクを表示できるようになりました。

ユニバーサル Windows プラットフォーム開発者向けツール

Windows 10 Fall Creators Update (ビルド 16299) 以降をターゲット プラットフォーム バージョンとするユニバーサル Windows プラットフォームを対象としたプロジェクト向けに、XAML デザイナーに対して多くの重要な機能強化を行いました。 強化された点は次のとおりです。

  • プロパティ インスペクター内でコレクションを編集できるようになりました。
  • デザイナーを使用して、テンプレートやスタイルの編集ができるようになりました。これにはそれらのエンティティが他のドキュメントで定義されている場合も含まれます。
  • IconElement 型 (AppBarButton 内のアイコンなど) のプロパティについては、プロパティ インスペクター内でカスタム エディターを使用できるようになりました。これにより、これらのプロパティの設定がより簡単になります。
  • デザイナー、エディター、およびエディット コンティニュはいずれも、x:DefaultBindMode で正しく動作するようになります。
  • Blend 内の Visual State Manager エクスペリエンスで AdaptiveTrigger がサポートされるようになりました。

F# 4.5 および F# Tools for Visual Studio

このリリースでは F# 言語バージョン 4.5 を導入しました。 これは FSharp.Core の新しい 4.5.x ファミリにも対応しています (F# コア ライブラリ)。 これらの変更のそれぞれについては、F# RFC リポジトリで仕様を確認することができます。 また、このリリースでは F# Tools for Visual Studio に対してさまざまな機能強化が行われています。

F# 4.5

F# 言語バージョン 4.5 に含まれる主な特徴を次に示します。

Span<'T> のサポート

Span<'T> と関連する機能を実装しました。これにより、SpanMemory、および ref に類似したコンストラクトを使用した API の効率的な使用と生成が F# で可能になります。 関係する機能を次に示します。

  • 新たに追加された voidptr 型。
  • FSharp.Core 内に新たに追加された NativePtr.ofVoidPtr 関数と NativePtr.toVoidPtr 関数。
  • 新たに追加された inref<'T> 型 (読み取り専用の byref) と outref<'T> 型 (書き込み専用の byref)。 これは、C# における in ref および out ref に対応します。
  • ByRefLike 構造体 (Span および ReadOnlySpan など) を生成する機能。
  • IsReadOnly 構造体を生成する機能。
  • メソッドからの byref 戻り値および inref 戻り値の暗黙的な逆参照。
  • byref/inref/outref に対して拡張メンバーを生成する機能。

この機能セットによって、F# 4.1 での byref 戻り値の初期設計に存在するバグが修正されます。byref を返す関数、メソッド、およびプロパティでは戻り値が暗黙的に逆参照されていませんでした。 C# でのref 戻り値の処理方法を使用して機能をインライン展開するために、この変更を実施しました。 ref 戻り値の暗黙的な逆参照が使用されるようになったことを型注釈で示す場合は、エラー メッセージが使用されます。

さらに、この機能セットでは、F# コンパイラ内のバグも修正されます。"構造体の有害な置換" の可能性がありました。つまり、F# 構造体上でメソッドを呼び出すと、呼び出された実際の構造体が別のものに置き換えられることがありました。 構造体上の this パラメーターが inref<MyStruct> と見なされるようになり、構造体の変更を希望すると、変更可能なフィールドを追加することを提案するエラーが返されます。

span および ref に類似したコンストラクトの詳細については、この機能セットに関する RFC を参照してください。

コンピュテーション式での Match!

John Wostenberg 氏の全面的なご協力により、F# 4.5 では、コンピュテーション式内で使用する新しいキーワードとして match! が導入されました。 この糖衣構文は、let! の後に、結果に対する match を続けた場合と等価です。 詳細については、match! に関する RFC を参照してください。

シーケンス、リスト、および配列式内で yield を使用してアップキャストする必要性を緩和

F# 4.5 では、yield を使用する場合、サブタイプをスーパー タイプに変換するのにアップキャストが必須とされる場合がありましたが、これが緩和されました。 F# 3.1 以降、yield を使用 しない 場合、この制限は既に不要になっていました。したがって、今回の変更により既存の動作と整合性がさらに高まります。 詳細については、この機能に関する RFC を参照してください。

リストおよび配列のブラケットに対するインデント設定の解除を許可

F# 4.5 では、リストおよび配列のブラケットに関するインデント規則が緩和されました。これまでは、それらのブラケットが独立した行に配置されている場合に、順方向に 1 スコープだけインデントを設定することが必須でした。 この以前の要件により、特に F# の初心者は混乱していました。 さらに、F# シーケンス式の場合、その要件は必須ではありません。 これにより、配列式とリスト式は、シーケンス式と一貫性のある同じ状態になりました。 詳細については、この機能に関する RFC を参照してください。

パブリックとして出力される列挙型のケース

F# 4.5 では、C# で列挙型のケースを出力する方法と一致させるため、あらゆる状況下で列挙型のケースがパブリックとして出力されるようになりました。 また、これにより、プロファイル ツールで F# コードからログを分析するのがより容易になります。これまで、ログにはラベル名ではなく値が出力されていました。 詳細については、この機能に関する RFC を参照してください。

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

F# 4.5 では、前述した言語機能に加えて、F# コンパイラに対する機能強化も行われました。 次の設定があります。

  • F# コンパイラ内のすべての割り当ての最大 2.2% を削除することで、コンパイラのパフォーマンス作業を改善しました (さまざまなシナリオにおいて)。
  • yield! と構造体に基づく列挙を一緒に使用した場合に AccessViolatioNException が発生するというバグが修正されました。
  • 再び、FSharpFunc から継承できるようになりました。
  • F# for .NET Core のデバッグ ビルドの場合、末尾呼び出しが既定では無効にされます。 リリースの場合は有効にされるので、デスクトップ F # コンパイラと一致します。
  • 出力ファイルに書き込まれる推移的なアセンブリ参照を制御できるように、F# 参照正規化が修正されました。 これにより、.NET Core 上でアセンブリ リダイレクトに相当するものを実行できるようになります。
  • インライン関数上で動的呼び出しの使用を試みる場合に使用されるエラー メッセージが無視されていたというバグが修正されました。 エラー メッセージが反映されるようになりました。
  • プロジェクト ファイル内で設定できる WarningsNotAsErrors フラグが、F# により優先されるようになりました。
  • パターン マッチ式のブランチから同じエラー メッセージ型の条件が返されませんでしたが、Isaac Abraham 氏によって更新されてよりわかりやすくなりました。
  • オーバー ロードされたメソッド実装が欠落しているインターフェイス実装をコンパイルするときに発生する内部エラー バグが、Steffen Forkmann 氏によって修正されました。
  • コンパイラの字句解析フェーズでコピーされる何らかの不要な配列が Gauthier Segay 氏によって削除されました。
  • John Wostenberg 氏のご協力により、F# 列挙型でのパターン マッチが不完全な場合に、含まれていないケースの例を示す詳細な警告が生成されるようになりました。
  • Matthias Diitrich 氏のご協力により、`#nowarn "2003" が優先されるようになりました。
  • F# オーバー ロード ソリューションで C# 拡張メソッドを使用できない場合があるというバグが、Steffen Forkmann 氏によって修正されました。
  • 内部的な QueueList データ構造のバグが Steffen Forkmann 氏によって修正されました。
  • より規模の小さいさまざまな最適化およびコードのクリーンアップ作業が Steffen Forkmann 氏、Eugene Auduchinok 氏、および ncave のご協力によって行われました。

F# Core Library 4.5.x

F# Core Library ライブラリに対して次の機能が追加され、利用できるようになりました。

  • async { } コンピュテーション式に対するスタック トレースを強化するためにかなりの量の作業が行われました。 スタック トレース内でユーザー コードおよびユーザー行番号を表示できるようになったはずです。 詳細については、この機能に関する RFC を参照してください。
  • System.Func および System.Action オーバーロードを入力する FuncConvert.FromFunc API および FuncConvert.FromAction。C# とのやり取りで役に立ちます。 詳細については、この機能に関する RFC を参照してください。
  • ValueOption は利用可能な新しい種類の機能であり、アクティブ パターンのパフォーマンス向上を最終的な目標にして追加される一連の機能の 1 番目となります。 詳細については、この機能に関する RFC を参照してください。
  • TryGetValue が F# のマップの種類の新しいメンバーになりました。 詳細については、この機能に関する RFC を参照してください。
  • MailboxProcessor.TryReceive の最初の呼び出しで CPU 使用率が高くなるのを修正しました。
  • Vasily Kirichenko 氏のご協力により、bool 用の比較で、汎用的な高速比較が使用されるようになりました。
  • Patrick McDonald 氏のご協力により、Array.allPairs 用の概要テキストが更新されて正しい内容になりました。

F# ツールの機能強化

このリリースには、F# ツールにおけるパフォーマンスの強化などの重要な機能強化と、新しいエディター機能がいくつか含まれています。 いつものように、F# オープン ソース コミュニティから多くの投稿をいただきました。 主な特徴を次に示します。

  • マルチ ターゲットを使用するものも含め、すべてのフォームの .NET SDK スタイル プロジェクトに対する IntelliSense のパフォーマンスを向上させました。
  • Vasily Kirichenko 氏、Steffen Forkmann 氏、Gauthier Segay 氏のご協力により、ファイルが非常に大きい場合に IntelliSense のパフォーマンスを分析し向上させるコミュニティ主導の作業が行われました。 非常に大きなファイル (10 K + コード行) での IntelliSense は、およそ 2 倍の速さになりました。
  • (パッケージがインストールされているにも関わらず) FSharp.Core が期限切れであることを示す警告が、.NET SDK スタイル プロジェクトで発生しなくなりました。
  • IntelliSense 内の . 後にメンバー向けの XML ドキュメントを表示する説明のツールヒントは、10 秒経過してもタイムアウトにならなくなりました。
  • オブジェクト コンストラクター引数内にブレークポイントを設定できないというバグが修正されました。
  • 名前変更されたシンボルがジェネリック パラメーターである場合にそれが複製されるというバグが修正されました。
  • .NET Framework のテンプレート (クラシック F# テンプレート) では、.NET SDK F# テンプレートに合わせる目的で、NuGet パッケージの FSharp.Core が使用されるようになりました。
  • かっこの組み ()[]{}[||][<>] に自動入力補完機能が利用できるようになりました。 この作業は Gibran Rosa との共同で行われました。
  • F# 記号で Ctrl キーを押しながらクリックする ことで定義に移動できるようになりました。 この操作の設定は、 [ツール] の [オプション] ウィンドウでも適用されます。
  • IntelliSense パフォーマンス UI が変更され、さまざまな IDE 機能に対して古い型チェック情報を構成できるようになりました。 設定のツールヒントに、各オプションの説明が表示されるようになりました。
  • かっこ一致の強調表示でかっこが正しく強調表示されるようになりました。この作業は Vasily Kirichenko 氏との共同で行われました。
  • 型が再帰的に定義されているとき、[定義に移動] で正しく移動できるようになりました。この作業には Vasily Kirichenko 氏の貢献がありました。
  • ファイルの一番上が空のとき、自動インポートされた名前空間が開かないバグが Vasily Kirichenko 氏によって修正されました。
  • ドットを含む printf 指定子に間違った色が付くバグが Vasily Kirichenko 氏によって修正されました。
  • 再帰モジュール内で、あらゆるオープンが未使用と見なされるバグが Vasily Kirichenko 氏によって修正されました。
  • Unused Opens アナライザーのパフォーマンスが Vasily Kirichenko 氏によって大幅に改善されました。
  • 属性のオート コンプリート機能で、実際に属性である選択肢のみが入力候補として表示されるようになりました。この作業には Vasily Kirichenko 氏の貢献がありました。
  • コンストラクター呼び出しサイトで、Type Provider の静的パラメーターに対して Signature Help ツールヒントが生成されるようになりました。この作業には Vasily Kirichenko の氏の貢献がありました。
  • 測定単位として使用される値型に参照型の色が付くバグが Vasily Kirichenko 氏によって修正されました。
  • スクロール中、一部のファイルに対し、セマンティックの色付けが消えることがあるバグが Vasily Kirichenko 氏によって修正されました。
  • 現在、CodeLens が試験的に導入されています。この作業には Victor Peter Rouven Müller 氏の貢献がありました。 これは [オプション] > [テキスト エディター] > [F#] >[コード レンズ] の順に選択してオンにできます。
  • F# コンパイラ サービスで、XML 文書のモジュール名が間違って省略されるバグが Sebastian Urban 氏によって修正されました。
  • DictionaryContainsKey を使用し、その後 Item 呼び出しを使用するコードで TryGetValue が使用されるように Eugene Auduchinok 氏によって変更されました。
  • Jakob Majoka 氏は、ツールヒントで別の API を使用するプロセスにも貢献しています。

インフラストラクチャ、パッケージング、オープン ソースの機能強化

Microsoft は、インフラストラクチャ、パッケージング、Microsoft のオープン ソース貢献で次の機能強化を行いました。

  • Visual Studio で配布される F# コンパイラは、F# Compiler SDK の場所にシングルトンとしてインストールされることがなくなりました。 現在は Visual Studio と完全に横並びになっています。つまり、Visual Studio の横並びインストールでようやく、F# のツールと言語が完全に横並びになります。
  • FSharp.Core NuGet パッケージに署名が付きました。
  • ETW ログ記録が F# のツールとコンパイラに追加されました。
  • FSharp.Core の非常に大きな control.fs/control.fsi ファイルが async.fs/async.fsievent.fs/event.fsieventmodule.fs/eventmodule.fsimailbox.fs/mailbox.fsiobservable.fs/observable.fsi に分割されました。
  • プロジェクト パフォーマンス ストレス テストの成果物に .NET SDK スタイルのバージョンを追加しました。
  • コードベースから Newtonsoft.Json を削除しました。OSS 共同作成者向けのダウンロード パッケージが 1 つ少なくなりました。
  • System.Collections.Immutable と System.Reflection.Metadata の最新版を使用するようになりました。

C++ 準拠とツールセットの機能強化

このリリースでは、C++ 準拠とツールセットが次の点で機能強化されました。

  • C++11 標準に準拠するトークンベースの新しい試験的プリプロセッサ (C99 プリプロセッサ機能を含む) が /experimental:preprocessor スイッチで有効になりました。 これはマクロ _MSVC_TRADITIONAL で制御されます。このマクロは従来のプリプロセッサ使用時には 1、新しい試験的標準準拠プリプロセッサの使用時には 0 で定義されます。
  • Visual Studio 開発者コマンド プロンプトでは、Visual C++ Spectre バリアント 1 軽減ランタイム (-vcvars_spectre_libs = spectre) を有効にできます。 Spectre 軽減策の詳細については、Visual C++ チームのブログをご覧ください。
  • 最新の C++ コード生成に重点を置く SSA Optimizer に新しい機能が 2 つ追加されました。冗長ストアの削除と冗長ブランチの折りたたみです。
  • リンク時間を短縮する目的で、リンカーにおいて、メモリをマッピングする I/O パフォーマンスが最適化されました。

C++ クロスプラットフォーム開発

今回のリリースでは、C++ クロスプラットフォーム開発で次が追加され、機能強化されました。

  • [ツール] > [オプション] で ClangFormat に指定されるコーディング規則に従って、.clang-format ファイルを生成するためのテンプレートが [追加] > [新しい項目] に追加されました。 Visual Studio 規則を選択すると、生成されるファイルでは、 [ツール] > [オプション] にあるユーザーの現在の Visual Studio 書式設定構成に合わせるように試行されます。
  • 出荷される clang-format.exe バージョンが 6.0.0 に更新されました。
  • 構成を CppProperties.json に追加することがテンプレートで簡単になりました。
  • CMakeSettings.json への構成追加を簡単にするテンプレートが追加されました (図 7)
Configuration templates for CMake
(図 7) CMake 用の構成テンプレート

C++ 生産性

C++ 生産性を次の点で強化しました。

  • C++ クイック インフォのマクロに関するツールヒントで、マクロの定義だけでなく、マクロの展開後も表示されるようになりました。 これは特に、他のマクロを参照する複雑なマクロで便利です。プリプロセッサで置換されるマクロ識別子が明らかになるためです。
  • コードを最新化する新しいツールとして、基本のマクロを constexpr に変換する新しいクイック修正 (電球) を追加しました。
  • テンプレート用の IntelliSense では、テンプレート本文内で IntelliSense を完全活用するために、テンプレート引数が提供されます (図 8)
Template IntelliSense
(図 8) テンプレート IntelliSense
  • Microsoft はコード分析の操作性の一新に取り組んでいます。 [ツール] > [オプション] > [テキスト エディター] > [C++] > [試験段階] > [コード分析] の順に選択すると、開発中の新機能を有効にできるようになりました。 ファイルを開いているか、保存しているとき、バックグラウンドでコードを分析できます。結果はエラー一覧に表示されます。エディターには緑のジグザグとして表示されます (図 9)
In-editor code analysis
(図 9) エディター内のコード分析

C++ デバッグの機能強化

デバッグが次の点で機能強化されました。

  • マイ コードのみでは、呼び出し履歴ウィンドウで呼び出しを折りたためることに加え、システム ライブラリやサードパーティ C++ ライブラリからコードをステップオーバーできるようになりました。 この動作は、コードが /JMC でコンパイルされるとき、あらゆる C++ ライブラリに対して制御できます。非ユーザー ライブラリ パスは .natjmc ファイルに指定されます。 システム ライブラリがユーザーコードを参照する場合、ステップインしたとき、デバッガーでは、あらゆるシステム コートがスキップされ、ユーザーコード コールバックの最初の行で停止します (図 10)
Just My Code
(図 10)マイ コードのみ
  • データ ブレークポイントを Watch、Quickwatch、Autos、Locals ウィンドウ内に設定できるようになりました。ほんの数回の短いクリックで、メモリに保存されている値が変わるときにブレークできます。
  • ソース リンクでは、実行可能ファイルまたはライブラリの元のソース コードに関する情報をコンパイル中、PDB に埋め込むことができます。
  • デバッグの際、プログラムにより実行が停止されるとき、コンソール ウィンドウは既定で開いている状態が維持されます (デバッガーなしでプログラムを実行する場合と同様に)。 [ツール] > [オプション] > [デバッグ] > [全般] の順に選択すると、コンソールを自動的に閉じるようにこの動作を切り替えることができます。

JavaScript および TypeScript の機能強化

TypeScript 3.0

Visual Studio 2017 バージョン 15.8 には、既定で TypeScript 3.0 が含まれるようになりました。 このリリースの詳細については、TypeScript 3.0 リリースのお知らせを参照してください。

Vue.js サポートの強化

Vue.js ライブラリのサポートが強化されました。特に、"単一ファイル コンポーネント" とも呼ばれる .vue ファイルのサポートが強化されています。 これにより、スクリプト要素の lang="ts" 属性を使用して TypeScript で作成されるスクリプト ブロックに関するサポートを含む、.vue ファイル内のスクリプト ブロックを編集するときの機能が強化されます (メモ: 実行時に必要な HTML および JS ファイルに .vue ファイルを変換するには、WebPack または同様のものを使用するビルド プロセスを利用する必要があります。 詳細については、単一ファイル コンポーネントに関するページを参照してください)。

Node.js ワークロードがインストールされている場合は、[新しいプロジェクト] ダイアログの [JavaScript] の [Node.js] パスまたは [TypeScript] の [Node.js] パスの下に、[基本的な Vue.js Web アプリケーション] というテンプレートが示されるようになります。 .vue ファイルのスクリプト ブロック内の TypeScript コードを編集する例を以下に示します (図 11)

Editing a .vue file
(図 11) .vue ファイルの編集

ESLint の改善

このリリースでは、ESLint のサポートが再実装されました。 ESLint では、以下の機能強化と拡張が行われています。

  • Visual Studio では、保存したファイルの lint だけでなく、編集時にも JavaScript ファイルが lint されるようになります。
  • 開いているファイルだけでなく、プロジェクト内のすべての JS ファイルに関する結果を報告することができます。lint しないプロジェクトの一部である場合は、.eslintignore ファイルを使用して、無視する必要があるファイルとディレクトリを指定できるようになりました。
  • ESLint が更新されており、既定では ESLint 4 が使用されますが、プロジェクトで ESLint をローカルにインストールしている場合は、代わりにそのバージョンが使用されます。

ESLint は Visual Studio でグローバルに無効にすることができます。その場合、[ツール] > [オプション] > [テキスト エディター] > [Javascript/Typescript] > [Lint][ESLint の有効化] 設定のチェック ボックスをオフにします (図 12)

ESLint Options
(図 12) ESLint のオプション

Node.js 用のフォルダーを開く機能の強化

"Node.js ワークロード" がインストールされている場合、フォルダーを開くシナリオでの JavaScript および TypeScript の操作について、多くの機能が強化されています。 たとえば、NPM パッケージの管理、TypeScript の構築、Node.exe での起動とデバッグ、NPM スクリプトの実行、単体テストの実行などです。

詳細については、「Visual Studio でのソリューションまたはプロジェクトを使用しない JavaScript と TypeScript のコードの開発」を参照してください。

エディターのパフォーマンスの向上

以前のリリースでは、単一の Node.js プロセスで、JavaScript と TypeScript のすべての言語サービス操作が処理されていました。 そのため、(コードでのエラー分析など) 時間がかかる可能性のある操作が既に行われているときに、(改行後の自動書式など) ユーザー入力に影響するコマンドが送信された場合、エディターで遅延が発生する可能性があります。 これを防ぐために、編集に最も影響を与える操作に対して別のプロセスが使用されるようになりました。 システム リソースでは、このプロセスは既存の言語サービス プロセスより大幅に軽量になります。 ただし、新しいプロセスを無効にする場合は、 [ツール] > [オプション] > [テキスト エディター] > [JavaScript/TypeScript] > [言語サービス][専用の構文処理を無効にします] ボックスをオンにします。

Visual Studio Web ツール

ライブラリ マネージャーは、Visual Studio 2017 に含まれる新しい機能です。 自分の Web プロジェクトでクライアント側ライブラリを管理できます。

コンテナー ツール

ASP.NET Core Web プロジェクト用に、Docker コンテナー エクスペリエンスという新しいプロジェクトを 1 つ追加しました。 これは Docker Compose ベースの既存のコンテナー ツールを補完するものであり、Visual Studio から直接、Docker コンテナーを簡単に作成、デバッグ、ビルドする方法を与えます。

プロジェクトを作成するときに、Docker サポートを追加できます (図 13):

Enable Docker Support
(図 13) Docker サポートを有効にする

あるいは、ソリューション エクスプローラーのプロジェクトのコンテキスト メニューから、既存のプロジェクトの Docker サポートを有効にできます (図 14) 。 有効にすると、Visual Studio によってプロジェクト内に Dockerfile が 1 つ作成されます。 Windows か Linux を選択できます。

Add Docker Support
(図 14) Docker サポートの追加

コンテナー内で実行されるときにプロジェクトをデバッグできるように、Visual Studio によって Docker 用のデバッガー起動プロファイルも追加されます (図 15)

Docker Launch Profile
(図 15) Docker 起動プロファイル

ソリューションに複数の Docker プロジェクトが含まれる場合、既定では、ソリューションの開始を選択したとき、コンテナーは 1 つだけ実行されます。 複数のコンテナーを同時に実行する場合、ソリューション エクスプローラーでソリューションを右クリックし、 [スタートアップ プロジェクトの設定][マルチ スタートアップ プロジェクト] の順に選択し、実行するすべてのプロジェクトに対して [アクション] ドロップダウンを [開始] または [デバッグなしで開始] に設定します。

コンテナー化されたプロジェクトを任意の方法で実行したら、プロジェクトを右クリックし、 [Build Docker Image](Docker イメージのビルド) を選択すると、Azure Container Registry または DockerHub にプッシュする準備ができているとき、イメージをローカルでビルドできます。

新しい [コンテナー オーケストレーター サポート] オプションを利用し、Docker Compose ベースの既存の機能を ASP.NET Core Web プロジェクトに追加することもできます (図 16) 。 ソリューション エクスプローラーで ASP.NET Core Web プロジェクトを右クリックし、 [追加] > [コンテナー オーケストレーター サポート] の順に選択し、ドロップダウン メニューから [Docker Compose] を選びます。

Add Container Orchestrator Support
(図 16) オーケストレーション サポートの追加

公開機能の強化

このリリースでは、以下の点で公開機能が強化されています。

  • Docker コンテナーをコンテナー レジストリに公開するとき、イメージのタグをカスタマイズできるようになりました。 タグは手動で追加するか (既定は "最新")、タグがすべて一意になるように自動生成タグを利用できます。
  • 新しい Azure App Service を作成するときに、テレメトリを自動的に収集するように Application Insights を構成することもできます。 Application Insights も含まれるリージョンを選択する場合、既定で有効になります。 Application Insights が含まれていないリージョンを選択する場合、ドロップダウンから自分の Application Insights リソースとは異なるリージョンを手動指定できます。
  • Azure Functions プロジェクトを公開するとき、新しい ZIP から実行機能を利用した公開を選択できます。

Xamarin 用の Visual Studio ツール

このリリースには、Xamarin 向けの次の更新プログラムが含まれています。

  • Xcode 9.4 のサポートが追加されました。
  • 新しい Xamarin.Forms プロジェクトを作成するとき、既定のコード共有オプションが .NET Standard になりました。 共有プロジェクト オプションは引き続き利用できます。
  • Android インクリメンタル ビルドの機能強化を追加しました。 Xamarin.Android では、中間出力ディレクトリで生成されたファイルを使用し、完全ビルドより高速のインクリメンタル ビルドを実現します。 以前は、プロジェクトのターゲット フレームワークを変更すると、ファイルが無効になり、次の実行が完全ビルドになりました。 今回のリリースで、フレームワーク別のフォルダーにファイルが保存されるようになりました。異なるターゲット フレームワークを切り替えながら、同時にインクリメンタル ビルドの利点も得られます。 プロジェクトをクリーンアップすることで、保存済みのファイルによって使用されているディスク領域を解放できます。
  • Visual Studio 2017 で Xamarin.Mac バインド プロジェクトの最小サポートを追加しました。 これにより、Visual Studio では、サポートされる範囲において Xamarin.Mac バインド プロジェクトを読み込み、認識できます。 Xamarin.Mac バインド プロジェクトをビルドすることもできます。 ただし、ビルド プロセスはネイティブ Mac ツール チェーンを使用することなくローカルで実行されます。そのため、アプリでの実行やデバッグには、生成された IL アセンブリを使用できません。

Hyper-V Android Emulator のサポート

今回のリリースでは、Windows 10 2018 年 4 月の更新プログラムで実行する際に Hyper-V と互換性がある Google Android Emulator に関するサポートが追加されました (図 17) 。 このサポート追加により、Google の Android エミュレーターを、Hyper-V 仮想マシン、Docker ツール、HoloLens エミュレーターなど、Hyper-V ベースの他のテクノロジと並行して利用できます。 Hyper-V を使用するモバイル アプリ開発者は、最新の Android API に常に対応し、面倒な設定なしで Google Play 開発者サービスと連動し、カメラ、位置情報、クイック起動など、Android エミュレーターのあらゆる機能に対応する高速の Android エミュレーターにアクセスできるようになりました。

Screenshot of both the Google Android emulator and HoloLens emulator running at the same time.
(図 17) Google Android Emulator と HoloLens Emulator

Xamarin.Android Designer

デザイナーにとっての Xamarin.Android の使い勝手が大幅に改善されました。 特徴は次のとおりです。

  • 分割ビュー エディターが導入され、レイアウトを同時に作成、編集、プレビューできるようになりました (図 18)
Screenshot of the Xamarin.Android split-view editor.
(図 18) Xamarin.Android 分割ビュー エディター
  • IntelliSense の操作性を改善し、カスタム コントロールの信頼性を向上させました。
  • システムが提供する値のサンプル データ サポート。

Xamarin.Forms Previewer

Xamarin.Forms バージョン 3.1.0.583944 以降の使用時、Xamarin.Forms Previewer にツールボックス サポートが与えられるようになりました。 Xamarin.Forms コントロールがツールボックスに表示されるので、ツールキットを初めて使用する人でも簡単に見つけられます。 XAML コード エディターにコントロールをドラッグ アンド ドロップすることでコントロールをページに追加することもできます。 Xamarin.Forms Previewer は XAML エディターの一部になりました。 エディター ウィンドウの端にある展開アイコンを使用して開閉することができます。

Python

今回のリリースで、Python 開発者向けに次の機能強化が追加されます。

  • スタティック分析では入力候補を推測できないライブラリの結果を改善する目的で、Python IntelliSense で Typeshed 定義が使用されるようになりました。
  • 15.7 プレビュー リリースで最初に告知された試験段階のデバッガーが Python に使用する既定のデバッグ エンジンになりました。Python コードのデバッグがより速くなり、信頼性が上がりました。
  • デバッグ アタッチ、プロファイリング、混在モード (クロス言語) といったデバッグ機能を有効にする修正プログラムなど、Python 3.7 のサポートを追加しました。
  • 上記の機能の詳細については、「Python in Visual Studio 2017 version 15.8」 (Visual Studio 2017 バージョン 15.8 の Python) というブログ記事を参照してください。

ローカル Azure Function 設定の移行

[発行の概要] ページにある "マネージド アプリケーションの設定" ダイアログに local.settings.json ファイルからの値が表示されるようになりました。また、このページでは、Azure でホストしているリモート Azure Function アプリに値を移行できます。

接続済みサービス

Azure Function プロジェクトが含まれるソリューションを対象に、Visual Studio 2017 から直接、Azure 関数の継続的デリバリーを構成できます。

テスト エクスプローラーの機能強化

テスト エクスプローラーでは、階層ビューでグループの 1 つが選択されているとき、テスト ステータスの概要ウィンドウ (テスト エクスプローラーの下部ウィンドウ) に表示される有益な情報が増えました。 このウィンドウに、そのグループでテストに失敗した数、合格した数、未実行の数が表示されるようになりました。

新しい拡張機能

言語サーバー プロトコル

Visual Studio に言語サーバー プロトコルのネイティブ サポートを追加しました。 拡張機能の作成者は、Visual Studio に言語サポートを追加する目的で、既存の言語サーバーと通信する拡張機能を作成できます。 拡張機能ユーザーはこれらの拡張機能をインストールすることで、Rust など、お気に入りの言語を Visual Studio 内で使用できます。

AsyncPackage テンプレート

拡張機能の作成者は項目テンプレートを使用して AsyncPackages を作成し、拡張機能のパフォーマンスを最適化できます。 詳細については、AsyncPackages に関するページを参照してください。

拡張パック

拡張パックを使用すれば、お気に入りの拡張機能セットを共有したり、拡張機能をすべて含めるように Visual Studio の新しいインストールを設定したりすることが簡単にできます。 拡張パックでは、拡張機能の一覧を作成し、それらの拡張機能を 1 つの拡張にパッケージ化し、そのパッケージを利用して拡張機能を一括インストールできます。

コマンドラインで拡張機能を発行する

コマンド ラインを使用して Visual Studio Marketplace に拡張機能を発行します。

.NET Core SDK 2.1.400

Visual Studio 2017 バージョン 15.8 には .NET Core SDK 2.1.400 が含まれます。 新しい SDK 機能の内容:

  • NUnit テンプレートを追加
  • 署名入りグローバル ツールのサポートを追加
  • ヘルプ テキストに手を加え、わかりやすくした

.NET Core CLI に関する 32 件の問題が解決されました。
.NET Core SDK に関する 20 件の問題が解決されました。

ソース管理

.NET Core プロジェクトに関して、ソリューション エクスプローラーでは、プロジェクトにエクスプローラー経由で直接追加されたファイルに Git と TFS の正しいトラッキング アイコンが表示されるようになりました。ソリューションをリロードする必要がありません。

.NET テスト アダプターの拡張機能

.NET テスト アダプターに次の破壊的変更と非推奨が適用されます。

  • 重大な変更: すべてのテスト プロジェクトで、各 csproj に .NET テスト アダプターの NuGet 参照を含める必要があります。 含めない場合、ビルド後にテスト アダプター拡張機能の検出が開始されるとき、あるいは選択したテストをユーザーが実行しようとするとき、このテスト出力はプロジェクトに表示されます。
    • テスト プロジェクト {<Full path of test project>} では、いかなる .NET NuGet アダプターも参照されません。 このプロジェクトでは、テスト検出または実行が動作しないことがあります。 ソリューションの各テスト プロジェクトで NuGet テスト アダプターを参照することをお勧めします。
  • .NET テスト フレームワークは Visual Studio 拡張機能から移動となり、NuGet パッケージでそのアダプターがリリースされています。 拡張機能を介して提供される .NET テスト アダプターのサポートは非推奨となりました。ただし、引き続きサポートされます。 つまり、 [ツール] > [オプション] > [テスト] の順に選択すると、新しいオプションが 2 つ表示されます。
    • 最初のオプションでは、Visual Studio では、(テスト アダプターの NuGet 参照によってデータが入力される) テスト アセンブリ フォルダーで検出されたテスト アダプターのみ使用できます。あるいは、runsettings ファイルに指定されている範囲でテスト アダプターを使用できます。
    • 2 つ目のオプションでは、Visual Studio は以前の動作に "フォールバック" し、テスト アダプターの NuGet 参照が含まれないプロジェクトのテスト アダプター拡張機能を検出できます。 いずれのオプションも既定で選択されています。今回のリリースでは、既定の動作に変更はありません。
  • メモ: .NET 以外のテスト アダプターには、今回の変更による影響はありません。

ASP.NET .NET Framework でシークレットをサポート

.NET Framework 4.7.1 以降を対象とする ASP.NET .NET Framework プロジェクトの場合、プロジェクトを右クリックし、[Managed User Secrets](マネージド ユーザー シークレット) を選択することで、ソース コードに入れないシークレットを開いたり、usersecrets.xml に保存したりできるようになりました。

ASP.NET .NET Framework のパフォーマンスを向上させる

ASP.NET .NET Framework のプロジェクトで、参照先の .NET コンパイラのパッケージが古くなっている場合、Visual Studio は、ビルドのパフォーマンスを向上させるために、プロジェクトを開くと、パッケージをアップグレードするように求めます

.NET Framework 4.7.2

Visual Studio 2017 バージョン 15.8 は、サポートされているすべてのプラットフォーム (4.7.2 ランタイムが含まれる) に .NET Framework 4.7.2 開発ツールを提供するようになりました。 .NET Framework 4.7.2 では、いくつかの新しい機能が追加され、いくつかの機能が改善され、さらに信頼性、安定性、セキュリティ、パフォーマンスに関する修正プログラムがたくさん追加されました。

次の記事では、.NET Framework 4.7.2 に関する詳細を説明します。

パッケージの遅延読み込み

Visual Studio では、自動ロードするように構成されている非同期パッケージのロードを、Visual Studio IDE が完全に起動し、ソリューションが読み込まれるまで遅らせるようになりました。 この変更によって、同期的に自動ロードされるパッケージに影響が出ることはありません。 ステータス バーの左下隅にあるタスク ステータス センターで進捗状況を監視できます。 拡張機能の作成者が非同期パッケージを作成する場合、自分の拡張機能をテストしてください。 詳細については、「Improving the responsiveness of critical scenarios by updating auto load behavior for extensions」 (拡張機能の自動ロード動作を更新し、重要なシナリオの反応性を改善する) を参照してください。


---

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

Visual Studio 2017 バージョン 15.8.7 サービス リリース -- リリース日: 2018 年 10 月 10 日

CVE-2018-8292 .NET Core 情報漏えいの脆弱性

HTTP 認証情報には、HTTP リダイレクトが発生した送信要求に誤って公開されるときに、.NET Core でのセキュリティ機能のバイパスの脆弱性が存在します。 この脆弱性の悪用に成功した攻撃者は、情報を使用して、さらに、Web アプリケーションを危険にさらす可能性があります。 このセキュリティ更新プログラムは、.NET Core アプリケーションの HTTP リダイレクトへの対応方法を修正することで、脆弱性に対処します。

Visual Studio 2017 バージョン 15.8.4 サービス リリース -- リリース日: 2018 年 9 月 11 日

CVE-2018-8409 .NET Core サービス拒否の脆弱性

.NET Core 2.1 には、System.IO.Pipelines によって要求が不適切に処理される場合にサービス拒否の脆弱性が存在します。 攻撃者がこの脆弱性を悪用して、System.IO.Pipelines を利用しているアプリケーションに対してサービス拒否を発生させる可能性があります。 この脆弱性はリモートで、認証なしで悪用できます。 認証されていないリモートの攻撃者が、特殊な要求を作成してアプリケーションに送信することで、この脆弱性を悪用する可能性があります。

CVE-2018-8409 ASP.NET Core サービス拒否の脆弱性

ASP.NET Core 2.1 には、Web 要求が不適切に処理される場合にサービス拒否の脆弱性が存在します。 攻撃者がこの脆弱性を悪用して、ASP.NET Core Web アプリケーションに対するサービス拒否を発生させる可能性があります。 この脆弱性はリモートで、認証なしで悪用できます。 認証されていないリモートの攻撃者が、特殊な Web 要求を作成して ASP.NET Core アプリケーションに送信することで、この脆弱性を悪用する可能性があります。

Visual Studio 2017 バージョン 15.8 -- 2018 年 8 月 14 日にリリース

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

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

Visual Studio 2017 バージョン 15.8 Preview 4 -- 2018 年 7 月 10 日にリリース

CVE-2018-8172 Visual Studio のリモート コード実行の脆弱性

特別に作成されたプロジェクト、またはリソース ファイルを開くことで、ユーザーのコンピューターの悪用につながる可能性のある、リモート コード実行の脆弱性。 このセキュリティ更新プログラムは、Visual Studio でのファイルのソース マークアップの確認方法を修正することで、脆弱性に対処します。

CVE-2018-8260 .NET Framework のリモート コード実行の脆弱性

.NET ソフトウェアにはリモート コード実行の脆弱性が存在します。そのため、攻撃者は現在のユーザーのコンテキストで任意のコードを実行することができ、ユーザーのコンピューターの悪用につながる可能性があります。 このセキュリティ更新プログラムは、.NET でのファイルのソース マークアップの確認方法を修正することで、脆弱性に対処します。

CVE-2018-8232 .NET Microsoft Macro Assembler の改ざんの脆弱性

Microsoft Macro Assembler で正しくコードが検証されないことに関する改ざんの脆弱性 このセキュリティ更新プログラムは、確実に Microsoft Macro Assembler でコード ロジックが正しく検証されるようにすることで、脆弱性に対処します。

CVE-2018-8171 ASP.NET Core のセキュリティ機能バイパスの脆弱性

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

Visual Studio 2017 バージョン 15.8 Preview 3 -- 2018 年 6 月 26 日にリリース

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

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

Visual Studio 2017 バージョン 15.8 Preview 1 -- 2018 年 5 月 8 日にリリース

CVE-2018-0765 .NET Core サービス拒否の脆弱性のマイクロソフト セキュリティ アドバイザリ

  • Microsoft は、.NET Core と .NET ネイティブ バージョン 2.0 の脆弱性に関する情報を提供するセキュリティ アドバイザリをリリースしています。 またこのアドバイザリでは、この脆弱性をなくすためにアプリケーションを更新するうえで開発者が実行する必要のある操作に関するガイダンスも提供します。
  • Microsoft は、.NET Framework と .NET Core が、XML ドキュメントを不適切に処理するときに存在するサービス拒否の脆弱性を認識しています。 攻撃者がこの脆弱性を悪用して、.NET Framework、.NET Core、または .NET ネイティブ アプリケーションに対するサービス拒否を発生させる可能性があります。
  • 更新プログラムでは、.NET Framework、.NET Core、または .NET ネイティブ アプリケーションによる XML ドキュメントの処理の方法を修正することにより、脆弱性を解決します。
  • アプリケーションが ASP.NET Core アプリケーションである場合は、開発者が ASP.NET Core 2.0.8 に更新することもお勧めします。

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

2018 年 8 月 17 日にリリース

15.8.1 で修正された主な問題

以下は、15.8.1 で対処された問題です。

  • Web プロジェクトのデバッグ中にブラウザー ウィンドウが閉じられたときに、Visual Studio が予期せず閉じてしまうという問題が修正されました。

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

2018 年 8 月 28 日にリリース

15.8.2 で修正された主な問題

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


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

リリース日: 2018 年 9 月 6 日

15.8.3 で修正された主な問題

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


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

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

15.8.4 で修正された主な問題

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

セキュリティ アドバイザリ メモ


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

リリース日: 2018 年 9 月 20 日

15.8.5 の新機能の概要

  • Visual Studio Tools for Xamarin で Xcode 10 がサポートされるようになりました。

15.8.5 で修正された主な問題

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

15.8.5 の新機能の詳細

Xamarin 用の Visual Studio ツール

Visual Studio Tools for Xamarin で、iOS 12、tvOS 12、watchOS 5 向けのアプリのビルドとデバッグが可能になる Xcode 10 がサポートされるようになりました。 利用できる新機能の詳細については、iOS 12 で使用するための準備方法と、iOS 12 の概要に関するページを参照してください。


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

2018 年 10 月 2 日リリース

15.8.6 の新機能の概要

15.8.6 で修正された主な問題

15.8.6 で対処された、ユーザーから報告された問題を次に示します。

15.8.6 の新機能の詳細

ユニバーサル Windows プラットフォーム開発者向けの最新の Windows 10 SDK

ユニバーサル Windows プラットフォーム開発ワークロードのオプション コンポーネントとして、最新の Windows 10 SDK (ビルド 17763) を利用できるようになりました。 [Windows 10 SDK (10.0.17763.0)] チェックボックスをオンにすることで、ワークロードにこの SDK を追加できます。


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

2018 年 10 月 10 日リリース

15.8.7 の新機能

Azure DevOps

Visual Studio Team Services は Azure DevOps になりました! この新しいブランドは、チーム エクスプローラーと Visual Studio での参照として表示されます。

セキュリティ アドバイザリ メモ

CVE-2018-8292 .NET Core 情報漏えいの脆弱性


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

2018 年 10 月 24 日リリース

15.8.8 で修正された主な問題

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


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

2018 年 11 月 2 日リリース

15.8.9 で修正された主な問題

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


既知の問題

Visual Studio 2017 バージョン 15.8 のすべての既知の問題と回避策を参照できます。

Visual Studio 2017 Known Issues


フィードバックと提案

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


ブログ

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

Developer Tools Blogs


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

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


ページのトップへ