次の方法で共有


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

サポートされているバージョンの Visual Studio 2017 はバージョン 15.9 です。

Important

これは Visual Studio の最新バージョンではありません。 最新のリリースをダウンロードするには、 https://visualstudio.microsoft.com/downloads/ にアクセスし、 Visual Studio 2022 リリース ノートを参照してください。

Visual Studio ブログ

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

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

Important

Visual Studio 2017 バージョン 15.8 セキュリティ アドバイザリに関する通知

15.8 の注目すべき新機能の概要

15.8 で修正された上位の問題

15.8 で対処された、お客様から報告された問題を次に示します。

Visual Studio 2017 バージョン 15.8 で修正された、お客様から報告されたすべての問題を確認します。

開発者コミュニティポータル


15.8 の新機能の詳細

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

リリース日: 2018 年 8 月 14 日

15.8 の新機能

Install

これで、インストールを開始する前にすべてのインストール ファイルをダウンロードするオプションが表示されます。

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

Performance

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

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

パフォーマンスのテスト

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

Visual Basic のパフォーマンスの向上

Visual Basic では、パターン CInt(Fix(number)) を使用して整数以外の型から整数に変換するときに、パフォーマンスが大幅に向上するようになりました。

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

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

  • 一時停止状態でプロファイリングを開始する機能を追加しました。

    • パフォーマンス プロファイラー (Alt - F2) の CPU 使用率ツールを一時停止状態で起動できるようになりました (図 2)。 これは、CPU 使用率の調査に値するシナリオを待っている間に役立ちます。 起動時に CPU 使用率の収集が無効になっている場合、パフォーマンス プロファイラーは、明示的に有効になるまで CPU 使用率のサンプル スタック データを収集しません。 これにより、収集および分析するデータの量が少なくなるため、パフォーマンス調査がより効率的になります。

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

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

      CPU 使用率ツールの監視ビュー
      (図 3)CPU 使用率グラフ
  • .NET オブジェクト割り当て追跡ツールを追加しました。

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

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

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

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

生産性

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

  • C# 開発では、ドキュメントの書式設定 (Ctrl + K、D、Ctrl + E、D) を使用して、追加のコード クリーンアップを実行できます。 Tools>Options>Text Editor>C#>Code Style>Formatting>General に移動してクリーンアップを構成します。
  • Ctrl + または Alt + Enter キーを使用して、リファクタリングとクイック アクションを追加しました。
    • If を反転 すると、if-else ステートメントでロジックを反転できます。 if キーワードにカーソルを置き、このリファクタリングをトリガーします。
    • メソッド呼び出しサイトからパラメーターを追加すると、メソッド呼び出しサイト に引数を追加し、 クイック アクションとリファクタリングをトリガーすることで、メソッドにパラメーターを追加できます。
    • 不要なかっこを削除すると、 コンパイルに不可欠ではない二項演算子の周りのかっこが削除されます。 このスタイルルールは、 Tools>Options>Text Editor>C#>Code Style>General または .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
    • 割り当てと戻り値ステートメントで三項条件を使用 すると、 Tools>Options>... または .editorconfig を使用してスタイル ルールとして構成することもできます。
      • dotnet_style_prefer_conditional_expression_over_assignment
      • dotnet_style_prefer_conditional_expression_over_return
  • [ すべてに移動 ] ウィンドウに新しいコマンドと機能強化が追加されました。
    • 外側のブロック (Ctrl + Alt + UpArrow) に移動すると、外側のコード ブロックの先頭にすばやく移動できます。
    • 次へ/前の問題 (Alt + PgUp/PgDn) に移動すると、次/前の問題 (エラー、波線、電球) にスキップできます。
    • [メンバーに移動] (Ctrl + T、M) のスコープが既定でファイルに設定されるようになりました。 スコープを現在のドキュメントに切り替えることで、既定値をソリューションに戻すことができます (Ctrl + Alt + C)。
  • 複数のキャレットをサポートするファイル内の複数の任意の場所に挿入ポイントと選択範囲を作成できるようになりました。 これにより、複数の場所のテキストを同時に追加、編集、または削除できます。
    • Ctrl + Alt + LeftMouseClick でキャレットを挿入します。
    • Shift + Alt + Ins を使用して、現在の選択範囲と一致する次の位置に選択範囲とキャレットを追加します。
    • アクションの完全な一覧については、「 複数のキャレット > 編集」 を参照してください。
  • Alt + 'を使用してコンテキスト ナビゲーション メニューにアクセスします。
  • 2 つの新しいキーボード プロファイル ( Visual Studio CodeReSharper (Visual Studio)) とキーバインドの整合性を保ちます。 これらのスキームは、[ ツール] > [オプション] > [環境] > キーボード と上部のドロップダウン メニューにあります。

デバッグ

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

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

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

    [発行の概要] ページからスナップショット デバッガーをアタッチする
    (図 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 (F# コア ライブラリ) の新しい 4.5.x ファミリにも対応しています。 これらの各変更の仕様は 、F# RFC リポジトリで読み取ることができます。 このリリースでは、Visual Studio 用の F# ツールにも多くの機能強化があります。

F# 4.5

F# 言語バージョン 4.5 のハイライトの一部を次に示します。

Span<'T> サポート

F# でSpan<'T>SpanMemoryのようなコンストラクトを使用して API を効果的に使用および生成できるように、refと関連する機能を実装しました。 この機能は次のとおりです。

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

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

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

この機能セットの span では、refに似たコンストラクトの詳細を確認できます。

マッチ! コンピュテーション式

F# 4.5 では、match! によって完全に提供された、コンピュテーション式内で使用するための新しいキーワードであるが導入されています。 この構文糖は、結果のlet!が続くmatchに相当します。 詳細については、 RFC for match!を参照してください。

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

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

リストと配列の角かっこのインデントを許可する

F# 4.5 では、リストと配列の角かっこのインデント規則が緩和され、独自の行で 1 つのスコープを前方にインデントする必要がありました。 この以前の要件は、特に F# の初心者にとって、常に非常に混乱しています。 さらに、F# シーケンス式では必要ありません。 これにより、配列式とリスト式がシーケンス式と同じ一貫性のある状態になります。 詳細については、この機能の RFC を参照してください。

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

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

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

F# 4.5 では、前述の言語機能に加えて、F# コンパイラの機能強化が行われました。 これらには次のものが含まれます。

  • F# コンパイラのすべての割り当ての最大 2.2% を (さまざまなシナリオで) 削除することで、コンパイラのパフォーマンス作業を改善しました。
  • 構造体ベースの列挙体でAccessViolatioNExceptionを使用するとyield!になるバグを修正しました。
  • FSharpFuncから再度継承できるようになりました。
  • .NET Core 用 F# のデバッグ ビルドでは、末尾呼び出しは既定で無効になっています。 リリースが有効になっているため、デスクトップの F# コンパイラと一致します。
  • F# 参照正規化は、出力ファイルに書き込まれる推移的なアセンブリ参照を制御できるように修正されました。 これにより、.NET Core で同等のアセンブリ リダイレクトを実行できます。
  • インライン関数で動的呼び出しを使用しようとしたときに使用されるエラー メッセージが無視されるバグを修正しました。 エラー メッセージが伝達されるようになりました。
  • F# では、プロジェクト ファイルで設定できる WarningsNotAsErrors フラグが考慮されるようになりました。
  • パターン マッチの分岐が同じエラー メッセージの種類の条件を返さない場合、 Isaac Abraham によってよりわかりやすいものに更新されました。
  • オーバーロードされたメソッドの実装がないコンパイル インターフェイスの実装が Steffen Forkmann によって修正された場合の内部エラーバグ。
  • コンパイラの字句作成フェーズで不要な配列のコピーが 、Gauthier Segay によって削除されました。
  • F# 列挙体での不完全なパターンの一致により、 John Wostenberg によって提供された、カバーされていないケースの例を示す詳細な警告が生成されるようになりました。
  • #nowarn「2003」が尊重され、 マティアス・ディトリッチが貢献しました。
  • F# オーバーロードの解決で C# 拡張機能メソッドを使用できない可能性があるバグが 、Steffen Forkmann によって修正されました。
  • 内部 QueueList データ構造のバグが Steffen Forkmann によって修正されました。
  • Steffen ForkmannEugene Auduchinokncave によって、さまざまな小規模な最適化とコード クリーンアップの取り組みが行われました。

F# Core ライブラリ 4.5.x

F# Core ライブラリに次の追加機能が追加されました。

  • async { }計算式のスタック トレースを改善するために、重要な作業が行われました。 スタック トレースでユーザー コードとユーザー行番号を確認できるようになりました。 詳細については、この機能の RFC を参照してください。
  • FuncConvert.FromFuncC# との相互運用に役立つ、FuncConvert.FromActionオーバーロードとSystem.Funcオーバーロードを入力する API をSystem.Actionします。 詳細については、この機能の RFC を参照してください。
  • ValueOption は新しい種類であり、最終的にアクティブ パターンのパフォーマンス向上を目的とした一連の将来の機能の最初の機能です。 詳細については、この機能の RFC を参照してください。
  • TryGetValue が F# Map 型の新しいメンバーになりました。 詳細については、この機能の RFC を参照してください。
  • MailboxProcessor.TryReceiveの最初の呼び出し時に高い CPU 使用率を修正しました。
  • boolの比較では、ヴァシリー・キリチェンコが提供する高速な一般的な比較が使用されるようになりました。
  • Array.allPairsの概要テキストが正しく更新され、Patrick McDonald が投稿しました

F# ツールの改善

このリリースには、パフォーマンスの強化やエディターの新機能など、F# ツールの大幅な機能強化が含まれています。 これまでと同様に、F# オープン ソース コミュニティから多数の投稿を受けています。 ハイライトは次のとおりです。

  • マルチターゲットを使用するものも含め、すべてのフォームの .NET SDK スタイルプロジェクトの IntelliSense パフォーマンスが向上しました。
  • 非常に大きなファイルに対する IntelliSense のパフォーマンスを分析および改善するためのコミュニティ主導の取り組みは、 Vasily KirichenkoSteffen ForkmannGauthier Segay によって提供されました。 非常に大きなファイル (10,000 行以上のコード行) の IntelliSense は、現在約 2 倍の速度です。
  • (パッケージがインストールされているにもかかわらず) 古い FSharp.Core に対する警告は、.NET SDK スタイルのプロジェクトには存在しなくなりました。
  • IntelliSense で . した後にメンバーの XML ドキュメントを表示する説明ツールヒントは、10 秒後にタイムアウトしなくなりました。
  • オブジェクト コンストラクターの引数にブレークポイントを設定できないバグが修正されました。
  • 名前が変更されたシンボルがジェネリック パラメーターの場合に重複するバグが修正されました。
  • .NET Framework (従来の F# テンプレート) のテンプレートでは、.NET SDK F# テンプレートに合わせて、NuGet パッケージから FSharp.Core が使用されるようになりました。
  • ()[]{}[||]、および[<>]中かっこのペアで、トランザクション ブレースの自動補完を使用できるようになりました。 この作業は 、ジブラン・ローザと共同で行いました。
  • これで、Ctrl キーを押しながら F# 記号をクリックして定義に移動できるようになりました。 このジェスチャの設定は、[ ツール] > [オプション] ウィンドウにも適用されます。
  • IntelliSense パフォーマンス UI が変更され、さまざまな IDE 機能の古い型チェック情報を構成できるようになりました。 各オプションの説明が、設定のヒントに表示されるようになりました。
  • 中かっこの一致の強調表示で、 Vasily Kirichenko とのコラボレーションで完了した中かっこが正しく強調表示されるようになりました。
  • Vasily Kirichenko が提供する型が再帰的に定義されている場合、定義に移動すると正しく移動するようになりました。
  • ファイルの先頭が空のときに自動インポートされた名前空間が開かなかったバグが 、Vasily Kirichenko によって修正されました。
  • ドットを含む printf 指定子の色が間違っていたバグが 、Vasily Kirichenko によって修正されました。
  • すべてのオープンが再帰モジュール内で未使用と見なされていたバグは、 Vasily Kirichenko によって修正されました。
  • 未使用の Opens アナライザーのパフォーマンスは 、Vasily Kirichenko によって大幅に改善されました。
  • 属性のオートコンプリートは、 Vasily Kirichenko が提供する実際の属性であるオプションのみを提案するようになりました。
  • Vasily Kirichenko が提供するコンストラクター呼び出しサイトで、型プロバイダーの静的パラメーターに対してシグネチャ ヘルプヒントが生成されるようになりました。
  • 測定単位として使用される値型が参照型として色付けされていたバグは 、Vasily Kirichenko によって修正されました。
  • 一部のファイルでスクロール中にセマンティックカラー化が消える可能性があるバグが 、Vasily Kirichenko によって修正されました。
  • 現在、 ビクター・ピーター・ルーヴェン・ミュラーが提供する実験的な CodeLens 実装があります。 F# > Code Lens の [オプション] >テキスト エディター>でオンにすることができます。
  • F# コンパイラ サービスが XML ドキュメントのモジュール名を誤って引き出すバグが 、セバスチャン アーバンによって修正されました。
  • Dictionaryとそれに続くContainsKey呼び出しでItemを使用するコードは、TryGetValueを使用するように、Eugene Auduchinok によって変更されました。
  • Jakob Majoka は、ツールヒント用に別の API を使用するプロセスにも貢献しました。

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

インフラストラクチャ、パッケージ化、オープン ソースのコントリビューション エクスペリエンスに対して、次の機能強化を行いました。

  • Visual Studio で配布される F# コンパイラは、F# コンパイラ 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.fsi、および observable.fs/observable.fsiに分割されています。
  • プロジェクト パフォーマンス ストレス テスト成果物の .NET SDK スタイルのバージョンを追加しました。
  • コードベースから Newtonsoft.json が削除され、OSS 共同作成者用にダウンロードされるパッケージが 1 つ少なくなりました。
  • System.Collections.Immutable と System.Reflection.Metadata の最新バージョンを使用するようになりました。

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

このリリースには、次の C++ 準拠とツールセットの機能強化が含まれています。

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

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

このリリースでは、C++ クロスプラットフォーム開発に以下を追加、改善、および追加しました。

  • Tools>Options で ClangFormat に指定されたコーディング規則に従って、.clang-format ファイルを生成するための Add>New Item テンプレートを追加しました。 Visual Studio の規則が選択されている場合、生成されたファイルは、[ ツール] > オプションからユーザーの現在の Visual Studio 書式設定の構成と一致しようとします。
  • 出荷された clang-format.exe バージョンを 6.0.0 に更新しました。
  • CppProperties.jsonに構成を簡単に追加するためのテンプレート。
  • CMakeSettings.jsonへの構成の追加を簡略化するテンプレートを追加しました (図 7)。
CMake の構成テンプレート
(図 7)CMake の構成テンプレート

C++ の生産性

C++ の生産性に対して、次の機能強化と改善を行いました。

  • マクロの C++ クイック ヒントでは 、定義だけでなく、展開先が表示されるようになりました。 これは、マクロ識別子がプリプロセッサによって置き換えられる内容を明確にしているため、他のマクロを参照する複雑なマクロに特に役立ちます。
  • コードを最新化するための新しいツールとして、基本的な マクロを constexpr に 変換する新しいクイック修正電球を追加しました。
  • テンプレートの IntelliSense では、テンプレート本体内で IntelliSense を最大限に活用するためのテンプレート引数の詳細が提供されます (図 8)。
テンプレート IntelliSense
(図 8)テンプレート IntelliSense
  • コード分析エクスペリエンスの更新に取り組んでいます。 Tools>Options>Text Editor>C++>Experimental>Code Analysis で、進行中の新機能を有効にできるようになりました。 ファイルを開いたり保存したりすると、バックグラウンドでコード分析を実行でき、結果がエラー一覧に表示され、エディターに緑色の波線として表示されます (図 9)。
エディター内コード分析
(図 9)エディター内のコード分析

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

次のデバッグの機能強化が行われました。

  • マイ コードのみ により、呼び出し履歴ウィンドウでこれらの呼び出しを折りたたむだけでなく、システムまたはサード パーティの C++ ライブラリからコードをステップオーバーできるようになりました。 コードが /JMC でコンパイルされ、非ユーザー ライブラリ パスが .natjmc ファイルで指定されている場合は、任意の C++ ライブラリに対してこの動作を制御できます。 システム ライブラリがユーザー コードを呼び出す場合、ステップ インすると、デバッガーはすべてのシステム コードをスキップし、ユーザー コード コールバックの最初の行で停止します (図 10)。
マイ コードのみ
(図 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 ファイル ("単一ファイル コンポーネント" とも呼ばれます) のサポートが強化されました。 これにより、.vue ファイル内のスクリプト ブロックを編集するときの機能強化が提供されます。これには、スクリプト要素の lang="ts" 属性を使用して TypeScript で作成されたスクリプト ブロックのサポートが含まれます。 (注: 実行時に必要な HTML ファイルと JS ファイルに .vue ファイルを変換するには、WebPack などを使用したビルド プロセスを使用する必要があります。詳細については、「 単一ファイル コンポーネント」ページ を参照してください)。

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

vue ファイルの編集
(図 11)vue ファイルの編集

ESLint の機能強化

このリリースでは、ESLint のサポートが再実装されました。 ESLint には、次の機能強化と機能強化があります。

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

Visual Studio で ESLint をグローバルに無効にするには、[ツール] [オプション] > [テキスト エディター] > Javascript/Typescript > Linting** の [>] 設定をオフにします (図 12)。

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

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

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

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

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

以前のリリースでは、すべての JavaScript および TypeScript 言語サービス操作が 1 つの Node.js プロセスによって処理されていました。 これにより、長い可能性のある操作 (エラーのコードの分析など) が既に進行中である間に、ユーザー入力に影響を与えるコマンド (改行後の自動書式設定など) が送信された場合、エディターの遅延が発生する可能性があります。 これを軽減するために、編集に最も影響を与える操作に別のプロセスが使用されるようになりました。 このプロセスは、既存の言語サービス プロセスよりもシステム リソースの方が大幅に軽くなります。 ただし、新しいプロセスを無効にする場合は、[の [>] チェック ボックスをオンにします。

Visual Studio Web ツール

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

コンテナー ツール

ASP.NET Core Web プロジェクト用の新しい単一プロジェクト Docker コンテナー エクスペリエンスを追加しました。 これにより、既存の Docker Compose ベースのコンテナー ツールが補完され、Visual Studio から Docker コンテナーを簡単に作成、デバッグ、ビルドできます。

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

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

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

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

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

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

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

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

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

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

発行の機能強化

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

  • Docker コンテナーをコンテナー レジストリに発行するときに、イメージのタグをカスタマイズできるようになりました。 タグを手動で追加するか (既定値は "latest")、自動生成されたタグを使用して各タグが一意であることを確認できます。
  • 新しい Azure App Service を作成するときに、テレメトリを自動的に収集するように Application Insights を構成することもできます。 Application Insights も含むリージョンを選択すると、既定で有効になります。 Application Insights がまだ含まれていないリージョンを選択した場合は、ドロップダウンから Application Insights リソースに別のリージョンを手動で指定できます。
  • Azure Functions プロジェクトを発行するときは、新しい Run-From-Zip 機能を使用して発行することを選択できます。

Visual Studio Tools for Xamarin

このリリースには、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 April 2018 Update (図 17) で実行するときに Hyper-V と互換性のある Google Android エミュレーターのサポートが追加されました。 これにより、Google の Android エミュレーターを、Hyper-V 仮想マシン、Docker ツール、HoloLens エミュレーターなど、他の Hyper-V ベースのテクノロジと並べて使用できます。 Hyper-V を使用するモバイル アプリ開発者は、常に最新の Android API をサポートし、すぐに使用できる Google Play Services で動作し、カメラ、位置情報、クイック ブートなど、Android エミュレーターのすべての機能をサポートする高速 Android エミュレーターにアクセスできるようになりました。

Google Android エミュレーターと HoloLens エミュレーターの両方が同時に実行されているスクリーンショット。
(図 17)Google Android Emulator と HoloLens Emulator

Xamarin.Android デザイナー

Xamarin.Android の デザイナー エクスペリエンスが大幅に改善 されました。 ハイライトは次のとおりです。

  • 分割ビュー エディターが導入され、レイアウトを同時に作成、編集、プレビューできます (図 18)。
Xamarin.Android 分割ビュー エディターのスクリーンショット。
(図 18)Xamarin.Android 分割ビュー エディター
  • カスタム コントロールの IntelliSense エクスペリエンスと信頼性が向上しました。
  • システム指定値のサンプル データサポート。

Xamarin.Forms プレビュー ツール

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

Python

このリリースでは、Python 開発者向けに次の機能強化が追加されました。

  • Python IntelliSense では 、型指定された定義 を使用して、スタティック分析では自動補完を推論できないライブラリに対して、より豊富な結果が提供されるようになりました。
  • 15.7 プレビュー リリースで最初に発表された実験用デバッガーは、Python に使用される既定のデバッグ エンジンとなり、Python コードのデバッグをより高速かつ信頼性の高いものにしています。
  • デバッグアタッチ、プロファイリング、混合モード (クロス言語) デバッグ機能を有効にする修正プログラムなど、Python 3.7 のサポートが追加されました。
  • 上記の機能の詳細については、 Visual Studio 2017 バージョン 15.8 のブログ記事で Python を確認してください。

ローカル Azure 関数の設定を移行する

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

接続済みサービス

Azure 関数プロジェクトを使用するソリューション用に Visual Studio 2017 から直接 Azure 関数の継続的デリバリーを構成できるようになりました。

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

階層ビューのグループの 1 つが選択されている場合、テスト エクスプローラーに、より有益なテスト状態の概要ペイン (テスト エクスプローラーの下のウィンドウ) が表示されるようになりました。 ペインには、そのグループ化で失敗したテスト、成功したテスト、または実行されなかったテストの数が表示されるようになりました。

新しい機能拡張

言語サーバー プロトコル

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

AsyncPackage テンプレート

拡張機能の作成者は、アイテム テンプレートを使用して AsyncPackage を作成し、拡張機能のパフォーマンスを最適化できるようになりました。 AsyncPackage の詳細については、こちらをご覧ください。

拡張機能パック

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

コマンド ライン拡張機能の発行

コマンド ラインを使用して 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 参照を含める必要があります。 そうでない場合、ビルド後にテスト アダプター拡張機能による検出が開始された場合、またはユーザーが選択したテストを実行しようとした場合、このテスト出力がプロジェクトに表示されます。
    • テスト プロジェクト {<テスト プロジェクトの完全なパス>} は、.NET NuGet アダプターを参照しません。 このプロジェクトでは、テストの検出または実行が機能しない可能性があります。 ソリューション内の各テスト プロジェクトで NuGet テスト アダプターを参照することをお勧めします。
  • .NET テスト フレームワークでは、NuGet パッケージでアダプターがリリースされ、Visual Studio 拡張機能から離れています。 拡張機能を通じて提供される .NET テスト アダプターのサポートは非推奨ですが、引き続きサポートされています。 つまり、[ ツール] > [オプション] > テストで 2 つの新しいオプションを使用できます。
    • 最初のオプションを使用すると、Visual Studio では、テスト アセンブリ フォルダー (テスト アダプター NuGet 参照によって設定) または runsettings ファイルで指定されているテスト アダプターのみを使用できます。
    • 2 番目のオプションを使用すると、Visual Studio は以前の動作に "フォールバック" し、テスト アダプターの NuGet 参照がないプロジェクトのテスト アダプター拡張機能を検索できます。 どちらのオプションも既定でオンになっているため、このリリースでは既定の動作は変更されません。
  • 注: Non-.NET テスト アダプターは、この変更の影響を受けません。

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

ASP.NET、.NET Framework 4.7.1 以降を対象とする .NET Framework プロジェクトでは、プロジェクトを右クリックして [マネージド ユーザー シークレット] を選択することで、ソース コードで不要なシークレットを usersecrets.xml で開いて格納できるようになりました。

.NET Framework のパフォーマンス ASP.NET 向上

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

.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 IDE が完全に開始され、ソリューションが読み込まれるまで、自動読み込みするように構成された非同期パッケージの読み込みが Visual Studio によって遅延されるようになりました。 この変更は、同期的に自動読み込まれたパッケージには影響しません。 ユーザーは、ステータス バーの左下隅にあるタスク ステータス センターを見て、進行状況を監視できます。 非同期パッケージを作成する拡張機能の作成者は、拡張機能をテストする必要があります。 詳細については、「 拡張機能の自動読み込み動作を更新して重要なシナリオの応答性を向上させる」を参照してください。


---

リリース ノート アイコン 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 のサービス拒否の脆弱性

System.IO.Pipelines が要求を正しく処理しない場合、.NET Core 2.1 にサービス拒否の脆弱性が存在します。 攻撃者がこの脆弱性を悪用した場合、System.IO.Pipelines を利用しているアプリケーションに対してサービス拒否が発生する可能性があります。 この脆弱性は、認証なしでリモートで悪用される可能性があります。 認証されていないリモートの攻撃者は、特別に細工された要求をアプリケーションに提供することにより、この脆弱性を悪用する可能性があります。

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

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

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 セキュリティ アドバイザリ

  • 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 に更新することをお勧めします。

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

リリース日: 2018 年 8 月 17 日

15.8.1 で修正された上位の問題

15.8.1 で対処される問題は次のとおりです。

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

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

リリース日: 2018 年 8 月 28 日

15.8.2 で修正された上位の問題

15.8.2 で対処された、お客様から報告された問題を次に示します。


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

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

15.8.3 で修正された上位の問題

15.8.3 で対処された顧客から報告された問題を次に示します。


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

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

15.8.4 で修正された上位の問題

15.8.4 で対処された、お客様から報告された問題を次に示します。

セキュリティ アドバイザリに関する通知


リリース ノート アイコン 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 の新機能の詳細

Visual Studio Tools for Xamarin

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


リリース ノート アイコン 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 10 SDK (ビルド 17763) が、ユニバーサル Windows プラットフォーム開発ワークロードのオプション コンポーネントとして使用できるようになりました。 この SDK をワークロードに追加するには、 Windows 10 SDK (10.0.17763.0) チェック ボックスをオンにします。


リリース ノート アイコン 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 の情報漏えいの脆弱性


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

リリース日: 2018 年 10 月 24 日

15.8.8 で修正された上位の問題

15.8.8 で対処された、お客様から報告された問題を次に示します。


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

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

15.8.9 で修正された上位の問題

15.8.9 で対処された、お客様から報告された問題を次に示します。


既知の問題

Visual Studio 2017 バージョン 15.8 の既存の既知の問題と使用可能な回避策をすべて参照してください。

Visual Studio 2017 の既知の問題


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

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