Поделиться через


Программа улучшения взаимодействия с клиентами Visual Studio

Программа улучшения взаимодействия с клиентами Visual Studio (VSCEIP) предназначена для улучшения Visual Studio с течением времени. Эта программа собирает сведения об ошибках, оборудовании компьютера и о том, как пользователи используют Visual Studio, не прерывая работу пользователей в своих задачах на компьютере. Собранные сведения помогают Корпорации Майкрософт определить, какие функции необходимо улучшить. В этом документе описывается, как присоединиться к программе или отказаться от участия в VSCEIP, а также предоставляются некоторые сведения о типах собираемых данных и их использовании. Он также содержит советы по тому, как авторы расширений могут избежать непреднамеренного раскрытия личной или конфиденциальной информации.

Отказ от сбора диагностических данных

Учитывая цель собираемых данных и ограничения доступа и хранения, рекомендуется использовать параметры конфиденциальности по умолчанию для Visual Studio и Windows. Однако вы можете отказаться от программы улучшения возможностей Visual Studio. При отказе вы откажетесь от необязательного сбора диагностических данных. Некоторые диагностические данные требуются, чтобы убедиться, что Visual Studio безопасна, актуальна и выполняет свои функции должным образом. Предусмотренный сбор диагностических данных не будет зависеть от вашего решения отказаться от участия в программе VSCEIP.

Замечание

Если вы заинтересованы в просмотре или удалении персональных данных, ознакомьтесь с руководством Корпорации Майкрософт по запросам субъектов данных Windows для GDPR. Если вы ищете общие сведения о GDPR, ознакомьтесь с разделом GDPR портала управления безопасностью служб.

Замечание

Параметры телеметрии VSCEIP не применяются к функции "Сообщить о проблеме" в Visual Studio. Когда вы сообщаете о проблеме, журналы собираются и отправляются в Корпорацию Майкрософт только после того, как вы предоставите разрешение, нажав кнопку «Отправить». Если вы заинтересованы в управлении журналами перед отправкой в раздел "Сообщить о проблеме", дополнительные сведения см. в разделе " Конфиденциальность данных отзывов ".

Согласие или отказ

VSCEIP включен по умолчанию. Вы можете отключить его или снова включить, выполнив следующие инструкции:

  1. В Visual Studio выберите Справка>Конфиденциальность>Параметры конфиденциальности.

    Откроется диалоговое окно "Программа улучшения возможностей Visual Studio ".

  2. Чтобы отказаться, нажмите кнопку "Нет", я не хочу участвовать, а затем нажмите кнопку "ОК". Чтобы принять участие, выберите "Да", я готов принять участие (рекомендуется) и нажмите кнопку "ОК".

    Диалоговое окно

Параметры реестра

Если установить средства сборки для Visual Studio, необходимо обновить реестр, чтобы настроить VSCEIP. Корпоративные клиенты могут сформировать групповую политику, чтобы отказаться или принять участие в VSCEIP, задав политику на основе реестра.

Соответствующий ключ реестра и параметры следующие:

  • В 64-разрядной ОС Ключ = HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VSCommon\17.0\SQM
  • В 32-разрядной ОС Key = HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VSCommon\17.0\SQM
  • Если групповая политика включена, ключ = HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\VisualStudio\SQM

Entry = OptIn

Значение = (DWORD)

  • 0 отключено (VSCEIP выключен)
  • 1 будет включен (включен VSCEIP)

Caution

Неверное редактирование реестра может привести к серьезным повреждениям системы. Перед внесением изменений в реестр рекомендуется создать резервную копию всех важных данных. Вы также можете использовать параметр запуска Последней Известной Хорошей Конфигурации, если после внесения изменений вручную возникли проблемы.

Дополнительные сведения о собранных, обработанных или передаваемых VSCEIP данных см. в заявлении о конфиденциальности Майкрософт.

Системные журналы, собранные Visual Studio

Visual Studio собирает системные журналы для устранения проблем и улучшения качества продукта. Ниже приведены некоторые сведения о типах собираемых данных и их использовании. Он также содержит советы по тому, как авторы расширений могут избежать непреднамеренного раскрытия личной или конфиденциальной информации.

Типы собранных данных

Visual Studio собирает журналы, созданные системой, для сбоев, неотзывчивости пользовательского интерфейса и высокого использования ЦП или памяти. Мы также собираем сведения об ошибках, возникших во время установки или использования продукта. Собранные данные зависят от ошибки и могут включать трассировки стека, дампы памяти и сведения об исключении:

  • Для высокой загрузки ЦП и отсутствия реакции собираются трассировки стека соответствующих потоков 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.__Error.WinIOError" в "System.IO.FileStream.Init" произошло 500 раз в версии <x> продукта и имеет самый высокий уровень частоты возникновения в этой версии.

Элементы рабочего процесса для отслеживания

Рабочие элементы для отдельных, приоритетных ошибок создаются и назначаются инженерам для исследования. Обычно эти рабочие элементы содержат сведения о классификации, приоритете и диагностике, относящиеся к типу ошибки. Эта информация извлекается из собранных системных журналов ошибки. Например, рабочий элемент для сбоя может содержать трассировку стека, в котором происходит сбой.

Исследование ошибок

Инженеры используют сведения, доступные в рабочем элементе, чтобы определить первопричину ошибки. В некоторых случаях им требуется больше информации, чем то, что присутствует в рабочем элементе, в этом случае они ссылаются на исходный системный журнал, собранный. Например, инженер может проверить дамп памяти, чтобы понять сбой продукта.

Советы для авторов расширений

Авторы расширений должны ограничить воздействие персональных данных, не используя личную или другую конфиденциальную информацию в именах своих модулей, типов и методов. Если авария или аналогичное условие ошибки возникает с этим кодом в стеке, эта информация собирается как часть системно генерируемых журналов.