次の方法で共有


Visual Studio カスタマー エクスペリエンス向上プログラム

Visual Studio カスタマー エクスペリエンス向上プログラム (VSCEIP) は、Microsoft が時間の経過と同時に Visual Studio を改善できるように設計されています。 このプログラムは、エラー、コンピューター ハードウェア、およびユーザーが Visual Studio を使用する方法 に関する情報を、コンピューターでのユーザーのタスクを中断することなく収集します。 収集される情報は、Microsoft が改善する機能を特定するのに役立ちます。 このドキュメントでは、VSCEIP をオプトインまたはオプトアウト する方法について説明し、収集するデータの種類と使用方法に関するいくつかの情報を提供します。 また、拡張機能の作成者が個人情報や機密情報の不注意による漏えいを回避する方法に関するヒントも提供します。

診断データ収集のオプトアウト

収集するデータの目的と、アクセスと保持に関する制約がある場合は、Visual Studio と Windows の既定のプライバシー設定を使用することをお勧めします。 ただし、Visual Studio エクスペリエンス向上プログラムは オプトアウト できます。 オプトアウトすると、 オプション の診断データ収集をオプトアウトします。 一部の診断データ収集は、Visual Studio がセキュリティで保護され、最新の状態で、期待どおりに実行されるようにするために 必要 です。 必要な診断データの収集は、VSCEIP をオプトアウトする選択の影響を受けなくなります。

個人データの表示または削除に関心がある場合は、 GDPR の Windows データ主体要求に関する Microsoft のガイダンスを確認してください。 GDPR に関する一般的な情報をお探しの場合は、 Service Trust Portal の GDPR セクションを参照してください。

VSCEIP テレメトリのオプトインまたはオプトアウト設定は、Visual Studio の [問題の報告] には適用されません。 問題のログを報告すると、[送信] をクリックしてアクセス許可を付与した場合にのみ、ログが収集され、Microsoft に送信されます。 「問題の報告」に送信する前にログの管理に関心がある場合は、「 フィードバック データのプライバシー 」を参照してください。

オプトインまたはオプトアウト

VSCEIP は既定でオンになっています。 次の手順に従って、オフにするか、もう一度オンに戻すことができます。

  1. Visual Studio で、[ ヘルプ>Privacy>Privacy の設定] を選択します。

    Visual Studio Experience Improvement Program ダイアログ ボックスが開きます。

  2. オプトアウトするには、[いいえ、 参加しない] を選択し、[ OK] を選択します。 オプトインするには、[ はい、参加する予定があります (推奨)] を選択し、[ OK] を選択します。

    Visual Studio Experience Improvement Program ダイアログ

レジストリの設定

Build Tools for Visual Studio をインストールする場合は、レジストリを更新して VSCEIP を構成する必要があります。 企業のお客様は、レジストリ ベースのポリシーを設定することで、VSCEIP をオプトインまたはオプトアウトするグループ ポリシーを構築できます。

関連するレジストリ キーと設定は次のとおりです。

  • 64 ビット OS では、キー = HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VSCommon\16.0\SQM
  • 32 ビット OS では、キー = HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VSCommon\16.0\SQM
  • グループ ポリシーが有効になっている場合、キー = HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\VisualStudio\SQM
  • 64 ビット OS では、キー = HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VSCommon\17.0\SQM
  • 32 ビット OS では、キー = HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VSCommon\17.0\SQM
  • グループ ポリシーが有効になっている場合、キー = HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\VisualStudio\SQM

Entry = OptIn

Value = (DWORD)

  • 0 がオプトアウトされている (VSCEIP をオフにする)
  • 1 がオプトインされている (VSCEIP をオンにする)

注意事項

レジストリを正しく編集しないと、システムが正常に動作しなくなる場合があります。 レジストリを変更する前に、コンピューター上の重要なデータのバックアップを作成する必要があります。 手動の変更が適用された後に問題が発生した場合は、[ 前回の既知の正常な構成] スタートアップ オプションを使用することもできます。

VSCEIP によって収集、処理、または送信される情報の詳細については、 Microsoft のプライバシーに関する声明を参照してください。

Visual Studio によって収集されたシステム生成ログ

Visual Studio では、システムによって生成されたログを収集して問題を修正し、製品の品質を向上させます。 収集するデータの種類と使用方法に関する情報を次に示します。 また、拡張機能の作成者が個人情報や機密情報の不注意による漏えいを回避する方法に関するヒントも提供します。

収集されたデータの種類

Visual Studio では、クラッシュ、UI の応答不能、CPU またはメモリの使用率の高さについて、システムによって生成されたログが収集されます。 また、製品のインストール中または使用中に発生したエラーに関する情報も収集します。 収集されるデータはエラーによって異なり、スタック トレース、メモリ ダンプ、例外情報が含まれる場合があります。

  • CPU 使用率が高く応答しない場合は、関連する Visual Studio スレッドのスタック トレースが収集されます。

  • 一部のスレッドのスタック トレースでは、問題の根本原因 (クラッシュ、応答不能、メモリ使用率の高さなど) を特定するのに十分でない場合は、メモリ ダンプを収集します。 ダンプは、エラーが発生したときのプロセスの状態を表します。

  • ディスク上のファイルに書き込もうとしている間の例外など、予期しないエラー状態の場合は、例外に関する情報を収集します。 この情報には、例外の名前、例外が発生したスレッドのスタック トレース、例外に関連付けられているメッセージ、および特定の例外に関連するその他の情報が含まれます。

    収集されたデータの次の例は、例外名、スタック トレース、および例外メッセージを示しています。

    "Reserved.DataModel.Fault.Exception.TypeString": "System.IO.IOException",
    "Reserved.DataModel.Fault.Exception.StackTrace": "System.IO.__Error.WinIOError(Int32,String)\r\n
    System.IO.FileStream.Init(String,FileMode,FileAccess,Int32,Boolean,FileShare,Int32,FileOptions,SECURITY_ATTRIBUTES,String,Boolean,Boolean,Boolean)\r\n
    System.IO.FileStream..ctor(String,FileMode,FileAccess,FileShare,Int32,FileOptions,String,Boolean,Boolean,Boolean)\r\nSystem.IO.StreamWriter.CreateFile(String,Boolean,Boolean)\r\n
    System.IO.StreamWriter..ctor(String,Boolean,Encoding,Int32,Boolean)\r\n
    System.IO.StreamWriter..ctor(String,Boolean)\r\n
    System.IO.File.CreateText(String)\r\n
    Microsoft.VisualStudio.Setup.Services.FileSystem.CreateText(String,Boolean)\r\n
    Microsoft.VisualStudio.Setup.Cache.ChannelManifestRepository.WriteChannelManifest(IChannelManifest,String,String)\r\n
    Microsoft.VisualStudio.Setup.Cache.ChannelManifestRepository.AddChannel(ChannelManifestPair,Boolean)\r\n
    Microsoft.VisualStudio.Setup.Cache.CacheManager.AddChannel(ChannelManifestPair,Boolean)\r\n
    Microsoft.VisualStudio.Setup.ChannelManager.\<UpdateAsync>d__37.MoveNext()\r\n”,
    "Reserved.DataModel.Fault.Exception.Message": " The process cannot access the file 'C:\\Users\\[UserName]\\AppData\\Local\\Microsoft\\VisualStudio\\Packages\\_Channels\\4CB340F5\\channelManifest.json' because it is being used by another process."
    

システム生成ログの使用方法

エラーの根本原因を特定するワークフローは、エラーの種類とその重大度によって異なります。

エラー分類

ログに基づいて、エラーは分類され、調査の優先順位を付けるためにカウントされます。 たとえば、"System.IO.FileStream.Init" の "System.IO.__Error.WinIOError" が製品のバージョン <x> で 500 回発生し、そのバージョンで最も発生率が高い場合があります。

追跡用の作業項目

個々の優先順位付けされたエラーの作業項目が作成され、調査のためにエンジニアに割り当てられます。 通常、これらの作業項目には、エラーの種類に関連する分類、優先度、診断情報が含まれます。 この情報は、エラーに対して収集されたシステム生成ログから派生します。 たとえば、クラッシュの作業項目には、クラッシュが発生しているスタック トレースが含まれている場合があります。

エラー調査

エンジニアは、作業項目で使用できる情報を使用して、エラーの根本原因を特定します。 場合によっては、作業項目に存在する情報よりも多くの情報が必要になります。その場合、収集された元のシステム生成ログを参照します。 たとえば、エンジニアはメモリ ダンプを検査して、製品のクラッシュを把握できます。

拡張機能の作成者向けのヒント

拡張機能の作成者は、モジュール、種類、および方法の名前に個人またはその他の機密情報を使用しないことで、個人情報の公開を制限する必要があります。 スタック上のそのコードでクラッシュまたは同様のエラー状態が発生した場合、その情報はシステムによって生成されたログの一部として収集されます。