Programa de Aperfeiçoamento da Experiência do Usuário do Visual Studio

O VSCEIP (Programa de Aperfeiçoamento da Experiência do Usuário do Visual Studio) foi projetado para ajudar a Microsoft a aperfeiçoar o Visual Studio ao longo do tempo. Esse programa coleta informações sobre erros, hardware do computador e como as pessoas usam o Visual Studio, sem interromper os usuários em suas tarefas no computador. As informações coletadas ajudam a Microsoft a identificar quais funcionalidades devem ser aprimoradas. Este documento aborda como aceitar ou recusar o VSCEIP e fornece algumas informações sobre os tipos de dados que coletamos e como os usamos. Também fornece dicas sobre como os autores de extensão podem evitar a divulgação acidental de informações pessoais ou confidenciais.

Recusar a coleta de dados de diagnóstico

Considerando a finalidade dos dados que coletamos e as restrições de acesso e retenção, recomendamos que você use as configurações de privacidade padrão para o Visual Studio e o Windows. No entanto, você pode recusar o Programa de Aperfeiçoamento da Experiência do Visual Studio. Ao recusar, você está recusando a coleta de dados de diagnóstico opcional. A coleta de alguns dados de diagnóstico é necessária para garantir que o Visual Studio esteja seguro, atualizado e funcionando conforme o esperado. A coleta necessária de dados de diagnóstico não será afetada por sua escolha de recusar a participação no VSCEIP.

Observação

Caso esteja interessado em exibir ou excluir dados pessoais, examine as diretrizes da Microsoft em Solicitações de entidades de dados do Windows para o RGPD. Caso esteja procurando informações gerais sobre o RGPD, confira a seção RGPD do Portal de Confiança do Serviço.

Observação

As configurações de aceitação ou saída da telemetria do VSCEIP não se aplicam a "Relatar um problema" no Visual Studio. Ao relatar um problema, os logs só são coletados e enviados à Microsoft quando você concede a permissão clicando em “Enviar”. Se estiver interessado em gerenciar logs antes de enviar para “Relatar um problema”, confira Privacidade de dados de comentários para obter mais detalhes.

Aceitar ou recusar

O VSCEIP está ativado por padrão. Você pode desligá-lo ou ativá-lo novamente seguindo estas instruções:

  1. No Visual Studio, escolha Ajudar>Privacidade>Configurações de Privacidade.

    A caixa de diálogo Programa de Aperfeiçoamento da Experiência do Visual Studio será aberta.

  2. Para recusar, selecione Não, prefiro não participar e, em seguida, selecione OK. Para aceitar, selecione Sim, desejo participar (Recomendado) e, depois, OK.

    Visual Studio Experience Improvement Program dialog

Configurações do registro

Se você instalar as Ferramentas de Build do Visual Studio, precisará atualizar o Registro para configurar o VSCEIP. Os clientes corporativos podem construir uma política de grupo para aceitar ou recusar sua participação no VSCEIP por meio da definição de uma política baseada em Registro.

Chave do Registro e configurações relevantes:

  • Em um sistema operacional de 64 bits, Chave = HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VSCommon\16.0\SQM
  • Em um sistema operacional de 32 bits, Chave = HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VSCommon\16.0\SQM
  • Quando a Política de Grupo está habilitada, Chave = HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\VisualStudio\SQM
  • Em um sistema operacional de 64 bits, Chave HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VSCommon\17.0\SQM
  • Em um sistema operacional de 32 bits, Chave = HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VSCommon\17.0\SQM
  • Quando a Política de Grupo está habilitada, Chave = HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\VisualStudio\SQM

Entrada = OptIn

Valor = (DWORD)

  • 0 é recusado (desligar o VSCEIP)
  • 1 é aceito (ativar o VSCEIP)

Cuidado

A edição incorreta do Registro pode causar danos graves ao sistema. Antes de alterar o Registro, faça backup de todos os dados importantes do computador. Use também a opção de inicialização Última Configuração Válida caso encontre problemas depois de aplicar as alterações manuais.

Para obter mais informações sobre as informações coletadas, processadas ou transmitidas pelo VSCEIP, confira a Política de privacidade da Microsoft.

Logs gerados pelo sistema coletados pelo Visual Studio

O Visual Studio coleta logs gerados pelo sistema para corrigir problemas e melhorar a qualidade do produto. Aqui, há algumas informações sobre os tipos de dados que coletamos e como eles são usados. Também fornece dicas sobre como os autores de extensão podem evitar a divulgação acidental de informações pessoais ou confidenciais.

Tipos de dados coletados

O Visual Studio coleta logs gerados pelo sistema sobre falhas, falta de resposta da interface do usuário e alto uso da CPU ou de memória. Também coletamos informações sobre os erros encontrados durante a instalação ou o uso do produto. Os dados coletados variam de acordo com o erro e podem incluir rastreamentos de pilha, despejos de memória e informações de exceção:

  • Para alto uso da CPU e falta de resposta, são coletados rastreamentos de pilha de threads relevantes do Visual Studio.

  • Para casos em que os rastreamentos de pilha de alguns threads não são suficientes para determinar a causa raiz do problema, por exemplo, falhas, ausência de resposta ou alto uso de memória, coletamos um despejo de memória. O despejo representa o estado do processo durante o erro.

  • Para condições de erro inesperadas, por exemplo, uma exceção ao tentar fazer uma gravação em um arquivo em disco, coletamos informações sobre a exceção. As informações incluem o nome da exceção, o rastreamento de pilha do thread no qual ocorreu a exceção, a mensagem associada à exceção e outras informações relevantes à exceção específica.

    O seguinte exemplo de dados coletados mostra um nome de exceção, um rastreamento de pilha e uma mensagem de exceção:

    "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."
    

Como usamos os logs gerados pelo sistema

O fluxo de trabalho para determinar a causa raiz do erro varia conforme o tipo de erro e sua severidade.

Classificação de erros

Com base nos logs, os erros são classificados e contados a fim de priorizar sua investigação. Por exemplo, podemos descobrir que “System.IO.__Error.WinIOError” em “System.IO.FileStream.Init” ocorreu 500 vezes na versão <x> do produto e tem a maior taxa de ocorrência nessa versão.

Itens de trabalho para acompanhamento

Itens de trabalho para erros individuais priorizados são criados e atribuídos aos engenheiros para investigação. Esses itens de trabalho normalmente contêm informações de classificação, prioridade e diagnóstico relevantes ao tipo de erro. Essas informações são obtidas dos logs gerados pelo sistema coletados sobre o erro. Por exemplo, um item de trabalho sobre uma falha pode conter o rastreamento de pilha no qual a falha está ocorrendo.

Investigação de erros

Os engenheiros usam as informações disponíveis em um item de trabalho para determinar a causa de um erro. Em alguns casos, eles precisam de mais informações do que está presente no item de trabalho; nesse caso, eles se referem ao log original gerado pelo sistema que foi coletado. Por exemplo, um engenheiro pode inspecionar um despejo de memória para entender uma falha de produto.

Dicas para autores de extensão

Os autores de extensão devem limitar a exposição de informações pessoais não usando informações pessoais ou outras informações confidenciais nos nomes de módulos, tipos e métodos. Em caso de falha ou condição de erro semelhante com esse código na pilha, essas informações são coletadas como parte dos logs gerados pelo sistema.