Solucionar problemas com VSPackages

              Aplica-se a: Visual Studio 2022

Este artigo apresenta problemas comuns e dicas de solução de problemas com seus VSPackages.

Um VSPackage impede o Visual Studio de iniciar

Nesse cenário, inicie o Visual Studio no modo de segurança inserindo devenv.exe /safemode em um prompt de comando. Durante esse processo, nenhum VSPackages é carregado, exceto os VSPackages incluídos no Visual Studio.

Um VSPackage não é carregado

Para solucionar esse problema, tente uma ou mais das seguintes etapas:

  • Verifique se você está usando a raiz do registro na qual o VSPackage está registrado para ser executado, geralmente a raiz do registro experimental. Para obter mais informações, consulte A Instância Experimental.

  • Se o VSPackage for direcionado para ser executado na raiz do registro experimental, verifique se você está executando a versão experimental do Visual Studio.

    Para executar a versão experimental, abra um Prompt de Comando do Visual Studio e insira exp devenv /rootsuffix.

  • Verifique suas entradas do registro VSPackage. Para obter mais informações, confira Registrar VSPackages e Gerenciar VSPackages.

  • Abra a janela Saída da instância do Visual Studio que não está conseguindo carregar o VSPackage. Informações sobre por que o VSPackage não está sendo carregado podem ser exibidas nessa janela.

    Observação

    Se você estiver iniciando a versão experimental do Visual Studio do ambiente de desenvolvimento integrado do Visual Studio (IDE), inspecione a janela Saída de ambas as versões.

  • Examine o log de atividades. Para obter mais informações, consulte Como usar o Log de Atividades.

  • Para obter mais informações sobre exceções geradas pelo IDE, selecione Exceções no menu Depurar para habilitar as exceções. Na caixa de diálogo Exceções, selecione os tipos de exceções sobre os quais você deseja mais informações.

Um VSPackage não está registrado

Verifique se o assembly VSPackage reside em um local confiável. O RegPkg não pode registrar assemblies em um local não confiável ou não confiável, como um compartilhamento de rede na configuração padrão de segurança do .NET. Embora um aviso apareça sempre que um usuário cria um projeto em um local não confiável, a caixa de seleção Não mostrar essa mensagem novamente pode impedir que esse aviso volte a ocorrer.

Um comando não está visível ou gera um erro quando é selecionado

Para resolver esse problema, experimente as seguintes etapas:

  • Mesclar os comandos de menu novo ou alterado e esses comandos já no IDE inserindo devenv /rootsuffix Exp /setup no Prompt de Comando do Visual Studio.

  • Verifique se o Visual Studio pode encontrar UI.dll para seu VSPackage.

    1. Localize o CLSID do VSPackage na seção Pacotes do registro:

      HKLM\Software\Microsoft\Visual Studio\<version>\Packages

    2. Verifique se o caminho fornecido pela subchave SatelliteDll está correto.

Um VSPackage se comporta inesperadamente

Para solucionar esse problema, tente uma ou mais das seguintes etapas:

  • Defina pontos de interrupção em seu código.

    Bons pontos de partida para depuração são o construtor e o método de inicialização. Você também pode definir pontos de interrupção na área que deseja avaliar, como um comando de menu. Para habilitar pontos de interrupção, você deve executar sob o depurador.

    1. No menu Projeto , selecione Propriedades.

    2. Na caixa de diálogo Páginas da Propriedade , selecione a guia Depuração .

    3. Na caixa Argumentos de linha de comando, insira o sufixo raiz do ambiente de desenvolvimento que seu VSPackage visa. Por exemplo, para selecionar o build experimental, insira: /RootSuffix Exp.

    4. No menu Depuração , selecione Iniciar Depuração ou pressione F5.

      Observação

      Se você estiver depurando um projeto, crie ou carregue uma instância existente do seu projeto agora.

  • Use o log de atividades.

    Rastrear o comportamento do VSPackage escrevendo informações no log de atividades em pontos-chave. Essa técnica é especialmente útil quando você executa um VSPackage em um ambiente de varejo. Para obter mais informações, consulte Como usar o Log de Atividades.

  • Use símbolos públicos.

    Para melhorar a legibilidade durante a depuração, você pode anexar símbolos ao depurador:

    1. No menu Ferramentas/Opções , navegue até a caixa de diálogo Depuração/Símbolos .
    2. Local do arquivo De adicionar símbolo (.pdb):https://msdl.microsoft.com/download/symbols .
    3. Para melhorar o desempenho, especifique uma pasta de cache de símbolo, por exemplo: símbolos C:\.

Um VSPackage ou uma de suas dependências está ausente

  • Para código gerenciado, verifique se os caminhos de referência estão corretos.

    1. No menu Projeto , selecione Propriedades.

    2. Selecione a guia Referências na caixa de diálogo Páginas da Propriedade e verifique se todos os caminhos estão corretos. Como alternativa, você pode usar o Navegador de Objetos para procurar os objetos referenciados.

      Para código gerenciado, você pode usar o Fuslogvw.exe (Visualizador de Log de Associação do Assembly) para exibir os detalhes das cargas de assembly com falha.

  • Para código não gerenciado, localize o CLSID do VSPackage no nó de registro CLSID do Visual Studio:

    HKLM\Software\Microsoft\Visual Studio\<version>\CLSID

    Verifique se a entrada InprocServer32 tem o caminho correto da DLL do VSPackage.

Referências