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

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

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

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

Примечание.

Сведения о просмотре или удалении личных данных см. в руководстве Майкрософт на сайте Запросы субъектов данных Windows, определенные в GDPR. Если вам нужны дополнительные сведения об общем регламенте по защите данных (GDPR), см. раздел, посвященный GDPR, на портале Service Trust Portal.

Примечание.

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

Управления участием в программе

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

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

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

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

    Visual Studio Experience Improvement Program dialog

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

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

Ниже приведены соответствующие разделы и параметры реестра:

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

Запись = OptIn

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

  • 0 — отказаться (отключить VSCEIP)
  • 1 — согласиться (включить VSCEIP)

Внимание

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

Для получения информации о собранных, обработанных или переданных 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> продукта и имеет самый высокий уровень вхождения в этой версии.

Рабочие элементы для отслеживания

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

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

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

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

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