Condividi tramite


Estensioni di funzionalità per la risoluzione dei problemi

È possibile creare estensioni di funzionalità, ad esempio regole di analisi del codice personalizzate, condizioni di unit test del database, generatori di dati, tipi di refactoring, collaboratori alla compilazione e collaboratori alla distribuzione. Quando si installano queste estensioni di funzionalità, è possibile che si verifichino problemi che impediscono il corretto caricamento dell'estensione. In questo argomento vengono illustrati i problemi più comuni e le procedure che è possibile utilizzare per risolverli. Per ulteriori informazioni sulle modalità di installazione e registrazione delle estensioni di funzionalità, vedere Procedura: registrare e gestire estensioni di funzionalità.

Primi passaggi da eseguire quando un'estensione di funzionalità non viene caricata

Dopo l'installazione e la registrazione dell'estensione di funzionalità è necessario riavviare Visual Studio. Il primo passaggio da eseguire dopo il riavvio di Visual Studio consiste nel visualizzare la finestra Elenco errori. Se non è stato possibile caricare una o più estensioni, è possibile che gli errori vengano visualizzati in Elenco errori. Scegliere Elenco errori dal menu Visualizza. Se viene visualizzato un errore simile al seguente, l'estensione non è stata caricata correttamente:

Failed to load extension MyBuildContributor.ModelStatisticsReport. Exception message: Could not load type 'MyBuildContributor.ModelStatisticsReport' from assembly 'MyBuildContributor, Version 1.0.0.0, Culture=neutral, PublicKeyToken=34fdfd7e8ae7c7a8'.

In alcune situazioni, ad esempio se non è stato trovato alcun file con estensione extensions.xml, l'estensione non viene caricata ma non saranno visualizzati errori.

Diagnosi dei motivi che hanno impedito il caricamento dell'estensione

I motivi che potrebbero impedire il caricamento dell'estensione includono i seguenti:

  • Il file dell'estensione contiene uno o più errori

  • L'assembly di estensioni non è firmato

  • Il file extensions.xml non è stato trovato

  • L'assembly di estensioni non è stato trovato

  • Il codice nell'estensione non estende la classe corretta

  • Classi o membri nell'estensione non dispongono degli attributi corretti

Il file dell'estensione contiene uno o più errori

Il motivo più comune che impedisce il caricamento di un'estensione è la presenza di uno o più degli errori seguenti nel file Extensions.XML:

L'assembly di estensioni non è firmato

Se l'assembly di estensioni non è firmato, non può essere caricato da Visual Studio. Per firmare un assembly di estensioni, attenersi alla seguente procedura:

Per firmare e compilare l'assembly

  1. Aprire la soluzione contenente il progetto di estensione.

  2. Scegliere Proprietà MyExtensionProject dal menu Progetto, dove MyExtensionProject è il nome del progetto che contiene l'estensione di funzionalità che si desidera firmare.

  3. Fare clic sulla scheda Firma.

  4. Fare clic su Firma assembly.

  5. In Scegli un file chiave con nome sicuro fare clic su <Nuovo>.

  6. Nella finestra di dialogo Crea chiave con nome sicuro digitare MyRefKey nel campo Nome file di chiave.

  7. (Facoltativo) È possibile specificare una password per il file di chiave con nome sicuro.

  8. Scegliere OK.

  9. Scegliere Salva tutto dal menu File.

  10. Scegliere Compila soluzione dal menu Compila.

    Sarà quindi necessario installare e registrare l'assembly in modo che venga caricato quando si distribuiscono progetti di database.

Il file extensions.xml non è stato trovato

Se non si fornisce un file XML per registrare l'estensione con Visual Studio, l'estensione non verrà caricata. In genere il file MyAssembly.Extensions.XML viene copiato nella cartella %Programmi%\Microsoft Visual Studio 10.0\VSTSDB\Extensions\MyExtensions, dove MyAssembly è il nome dell'estensione.

Nota

Si consiglia di non copiare i file XML direttamente nella cartella [Programmi]\Microsoft Visual Studio 10.0\VSTSDB\Extensions. Se si utilizza una sottocartella, si eviterà che vengano apportate modifiche accidentali agli altri file forniti con Visual Studio.

Per ulteriori informazioni sulla creazione di un file Extensions.XML, vedere Procedura: registrare e gestire estensioni di funzionalità.

L'assembly di estensioni non è stato trovato

Se l'assembly di estensioni non è stato copiato nella cartella Extensions, l'estensione non verrà caricata. In genere i file MyAssembly.dll e MyAssembly.pdb vengono copiati nella cartella %Programmi%\Microsoft Visual Studio 10.0\VSTSDB\Extensions\MyExtensions, dove MyAssembly è il nome dell'estensione.

Nota

Si consiglia di non copiare i file XML direttamente nella cartella [Programmi]\Microsoft Visual Studio 10.0\VSTSDB\Extensions. Se si utilizza una sottocartella, si eviterà che vengano apportate modifiche accidentali agli altri file forniti con Visual Studio Premium.

Il codice nell'estensione non estende la classe corretta

Per ogni tipo di estensione di funzionalità la classe primaria estende una classe base specifica. Se non si eredita dalla classe base corretta, l'estensione non funzionerà correttamente. Per ulteriori informazioni, vedere la procedura dettagliata corrispondente.

Classi o membri nell'estensione non dispongono degli attributi corretti

Per ogni tipo di estensione di funzionalità la classe deve disporre di un attributo che dichiara il tipo di provider dello schema di database con il quale l'estensione è compatibile. Alcune estensioni richiedono inoltre attributi aggiuntivi in uno o più metodi della classe. Per ulteriori informazioni, vedere la procedura dettagliata corrispondente.

Vedere anche

Concetti

Creare tipi o destinazioni di refactoring del database personalizzati

Creare e registrare regole aggiuntive per l'analisi del codice del database

Generare dati di test specializzati con un generatore di dati personalizzato

Definire condizioni personalizzate per gli unit test del database

Altre risorse

Personalizzare compilazione e distribuzione del database tramite collaboratori alla compilazione e distribuzione