Condividi tramite


Risolvere i problemi relativi a VSPackage

Si applica a: Visual Studio

Questo articolo presenta problemi comuni e suggerimenti per la risoluzione dei problemi relativi ai vspackage.

Un VSPackage impedisce l'avvio di Visual Studio

In questo scenario avviare Visual Studio in modalità provvisoria immettendo devenv.exe /safemode al prompt dei comandi. Durante questo processo, non vengono caricati pacchetti VSPackage, ad eccezione dei VSPackage inclusi in Visual Studio.

Un VSPackage non viene caricato

Per risolvere questo problema, provare una o più delle procedure seguenti:

  • Assicurarsi di usare la radice del Registro di sistema in cui viene registrato VSPackage per l'esecuzione, in genere la radice sperimentale del Registro di sistema. Per altre informazioni, vedere Istanza sperimentale.

  • Se il pacchetto VSPackage è destinato all'esecuzione nella radice sperimentale del Registro di sistema, assicurarsi di eseguire la versione sperimentale di Visual Studio.

    Per eseguire la versione sperimentale, aprire un prompt dei comandi di Visual Studio e quindi immettere devenv /rootsuffix exp.

  • Controllare le voci del Registro di sistema VSPackage. Per altre informazioni, vedere Registrazione di VSPackage e Gestione di VSPackage.

  • Aprire la finestra Output dell'istanza di Visual Studio che non riesce a caricare vspackage. In tale finestra potrebbero essere visualizzate informazioni sul motivo per cui il vspackage non viene caricato.

    Nota

    Se si avvia la versione sperimentale di Visual Studio dall'ambiente di sviluppo integrato (IDE) di Visual Studio, esaminare la finestra Output di entrambe le versioni.

  • Esaminare il log attività. Per altre informazioni, vedere Procedura: Usare il log attività.

  • Per altre informazioni sulle eccezioni generate dall'IDE, selezionare Eccezioni dal menu Debug per abilitare le eccezioni. Nella finestra di dialogo Eccezioni selezionare i tipi di eccezioni per cui si desidera ottenere altre informazioni.

Un VSPackage non è registrato

Assicurarsi che l'assembly VSPackage si trovino in un percorso attendibile. RegPkg non può registrare assembly in un percorso non attendibile o parzialmente attendibile, ad esempio una condivisione di rete nella configurazione di sicurezza .NET predefinita. Anche se viene visualizzato un avviso ogni volta che un utente crea un progetto in una posizione non attendibile, la casella di controllo Non visualizzare di nuovo questo messaggio può impedire il ripetersi di questo avviso.

Un comando non è visibile o genera un errore quando è selezionato

Per risolvere questo problema, provare a seguire questa procedura:

  • Unire i comandi di menu nuovi o modificati e i comandi già presenti nell'IDE immettendo devenv /rootsuffix Exp /setup al prompt dei comandi di Visual Studio.

  • Assicurarsi che Visual Studio possa trovare UI.dll per vspackage.

    1. Trovare il CLSID di VSPackage nella sezione Pacchetti del Registro di sistema:

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

    2. Verificare che il percorso specificato dalla sottochiave SatelliteDll sia corretto.

Un VSPackage si comporta in modo imprevisto

Per risolvere questo problema, provare una o più delle procedure seguenti:

  • Impostare i punti di interruzione nel codice.

    I punti di partenza validi per il debug sono il costruttore e il metodo di inizializzazione. È anche possibile impostare i punti di interruzione nell'area da valutare, ad esempio un comando di menu. Per abilitare i punti di interruzione, è necessario eseguire nel debugger.

    1. Scegliere Proprietà dal menu Progetto.

    2. Nella finestra di dialogo Pagine delle proprietà selezionare la scheda Debug .

    3. Nella casella Argomenti della riga di comando immettere il suffisso radice dell'ambiente di sviluppo a cui è destinato il pacchetto VSPackage. Ad esempio, per selezionare la build sperimentale, immettere: /RootSuffix Exp.

    4. Nel menu Debug selezionare Avvia debug o premere F5.

      Nota

      Se si esegue il debug di un progetto, creare o caricare ora un'istanza esistente del progetto.

  • Usare il log attività.

    Tracciare il comportamento di VSPackage scrivendo informazioni nel log attività in corrispondenza dei punti chiave. Questa tecnica è particolarmente utile quando si esegue un VSPackage in un ambiente di vendita al dettaglio. Per altre informazioni, vedere Procedura: Usare il log attività.

  • Usare i simboli pubblici.

    Per migliorare la leggibilità durante il debug, è possibile collegare i simboli al debugger:

    1. Dal menu Strumenti/Opzioni passare alla finestra di dialogo Debug/Simboli .
    2. Add Symbol file (.pdb) location: https://msdl.microsoft.com/download/symbols.
    3. Per migliorare le prestazioni, specificare una cartella della cache dei simboli, ad esempio C:\symbols.

Manca un VSPackage o una delle relative dipendenze

  • Per il codice gestito, assicurarsi che i percorsi di riferimento siano corretti.

    1. Scegliere Proprietà dal menu Progetto.

    2. Selezionare la scheda Riferimenti nella finestra di dialogo Pagine delle proprietà e verificare che tutti i percorsi siano corretti. In alternativa, è possibile usare il Visualizzatore oggetti per cercare gli oggetti a cui si fa riferimento.

      Per il codice gestito, è possibile usare il Fuslogvw.exe (Visualizzatore log di associazione assembly) per visualizzare i dettagli dei caricamenti di assembly non riusciti.

  • Per il codice non gestito, trovare il CLSID del VSPackage nel nodo del Registro di sistema CLSID di Visual Studio:

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

    Assicurarsi che la voce InprocServer32 abbia il percorso corretto della DLL VSPackage.

Riferimenti