Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Visual Studio deve avere accesso alle definizioni di classi e tipi in fase di progettazione per visualizzare una finestra di progettazione visiva. Le classi vengono caricate da un set predefinito di assembly che includono il set di dipendenze completo del progetto corrente (riferimenti e relative dipendenze). Può anche essere necessario per i designer visivi accedere a classi e tipi definiti nei file generati da strumenti personalizzati.
I sistemi di progetto Visual Basic e Visual C# forniscono supporto per l'accesso a classi e tipi generati tramite file eseguibili portabili temporanei (PES temporanei). Qualsiasi file generato da uno strumento personalizzato può essere compilato in un assembly temporaneo in modo che i tipi possano essere caricati da tali assembly ed esposti alle finestre di progettazione. L'output di ogni strumento personalizzato viene compilato in un PE temporaneo separato e l'esito positivo o negativo di questa compilazione temporanea dipende solo dal fatto che il file generato possa essere compilato o meno. Anche se un progetto potrebbe non essere completato nel suo complesso, i singoli PEs temporanei potrebbero essere ancora disponibili per i progettisti.
Il sistema di progetto fornisce supporto completo per tenere traccia delle modifiche apportate al file di output di uno strumento personalizzato, purché queste modifiche siano il risultato dell'esecuzione dello strumento personalizzato. Ogniqualvolta viene eseguito lo strumento personalizzato, viene generato un nuovo PE temporaneo e le notifiche appropriate vengono inviate ai designer.
Annotazioni
Poiché il file di generazione dell'eseguibile del programma temporaneo si verifica in background, non vengono segnalati errori all'utente se la compilazione non riesce.
Gli strumenti personalizzati che sfruttano il supporto PE temporaneo devono seguire le regole seguenti:
GenerateDesignTimeSource deve essere impostato su 1 nel Registro di sistema.
Senza questa impostazione non viene eseguita alcuna compilazione di file eseguibili del programma.
Il codice generato deve trovarsi nella stessa lingua dell'impostazione del progetto globale.
Il PE temporaneo viene compilato indipendentemente dal fatto che lo strumento personalizzato riporti un'estensione richiesta in DefaultExtension, a condizione che GeneratesDesignTimeSource sia impostato su 1 nel Registro di sistema. L'estensione non deve essere .vb, .cs o jsl; può essere qualsiasi estensione.
Il codice generato dallo strumento personalizzato deve essere valido e deve essere compilato autonomamente usando solo il set di riferimenti presenti nel progetto al termine Generate dell'esecuzione.
Quando viene compilato un pe temporaneo, l'unico file di origine fornito al compilatore è l'output dello strumento personalizzato. Pertanto, uno strumento personalizzato che usa un pe temporaneo deve generare file di output che possono essere compilati indipendentemente da altri file nel progetto.