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:
Nome del tipo errato
Nome dell'assembly errato
Numero di versione errato
Token di chiave pubblica errato
Per informazioni sulla creazione di un file extensions.xml, vedere Procedura: registrare e gestire estensioni di funzionalità.
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
Aprire la soluzione contenente il progetto di estensione.
Scegliere Proprietà MyExtensionProject dal menu Progetto, dove MyExtensionProject è il nome del progetto che contiene l'estensione di funzionalità che si desidera firmare.
Fare clic sulla scheda Firma.
Fare clic su Firma assembly.
In Scegli un file chiave con nome sicuro fare clic su <Nuovo>.
Nella finestra di dialogo Crea chiave con nome sicuro digitare MyRefKey nel campo Nome file di chiave.
(Facoltativo) È possibile specificare una password per il file di chiave con nome sicuro.
Scegliere OK.
Scegliere Salva tutto dal menu File.
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