Share via


Registrazione di pacchetti VSPackage

I pacchetti VSPackage devono consigliare a Visual Studio che sono installati e devono essere caricati. Questo processo viene eseguito scrivendo informazioni nel Registro di sistema. Si tratta di un processo tipico di un programma di installazione.

Nota

È una pratica accettata durante lo sviluppo di VSPackage per usare la registrazione automatica. Tuttavia, i partner del programma Visual Studio Industry Partner (VSIP) non possono spedire i propri prodotti usando la registrazione automatica come parte della configurazione.

Le voci del Registro di sistema in un pacchetto di Windows Installer vengono in genere eseguite nella tabella del Registro di sistema. È anche possibile registrare le estensioni di file nella tabella Del Registro di sistema. Windows Installer offre tuttavia il supporto predefinito tramite l'identificatore programmatico (ProgId), la classe, l'estensione e le tabelle verbo. Per altre informazioni, vedere Tabelle di database.

Assicurarsi che le voci del Registro di sistema siano associate al componente appropriato per la strategia affiancata scelta. Ad esempio, le voci del Registro di sistema per un file condiviso devono essere associate al componente Windows Installer del file. Analogamente, le voci del Registro di sistema per un file specifico della versione devono essere associate al componente del file. In caso contrario, l'installazione o la disinstallazione di VSPackage per una versione di Visual Studio potrebbe interrompere il pacchetto VSPackage in altre versioni. Per altre informazioni, vedere Supporto di più versioni di Visual Studio.

Nota

Il modo più semplice per gestire la registrazione consiste nell'usare gli stessi dati negli stessi file sia per la registrazione per gli sviluppatori che per la registrazione in fase di installazione. Ad esempio, alcuni strumenti di sviluppo del programma di installazione possono utilizzare il file in formato reg in fase di compilazione. Se gli sviluppatori mantengono i file reg per lo sviluppo e il debug quotidiani, questi stessi file possono essere inclusi automaticamente nel programma di installazione. Se non è possibile condividere automaticamente i dati di registrazione, è necessario assicurarsi che la copia del programma di installazione dei dati di registrazione sia aggiornata.

Registrazione di pacchetti VSPackage non gestiti

I pacchetti VSPackage non gestiti (inclusi quelli generati dal modello di pacchetto di Visual Studio) usano i file con estensione rgs in stile ATL per archiviare le informazioni di registrazione. Il formato di file con estensione rgs è specifico di ATL e in genere non può essere utilizzato così come è da uno strumento di creazione dell'installazione. Le informazioni di registrazione per il programma di installazione di VSPackage devono essere mantenute separatamente. Ad esempio, gli sviluppatori possono mantenere i file in formato reg sincronizzati con le modifiche apportate ai file con estensione rgs. I file reg possono essere uniti con RegEdit per il lavoro di sviluppo o utilizzati da un programma di installazione.

Registrazione di pacchetti VSPackage gestiti

Lo strumento RegPkg legge gli attributi di registrazione da un VSPackage gestito e può scrivere le informazioni direttamente nel Registro di sistema o scrivere file in formato reg che possono essere utilizzati da un programma di installazione.

Nota

Lo strumento RegPkg non è ridistribuibile e non può essere usato per registrare un VSPackage nel sistema di un utente.

Perché i pacchetti VSPackage non devono eseguire la registrazione automatica in fase di installazione

I programmi di installazione vsPackage non devono basarsi sulla registrazione automatica. A prima vista, mantenere i valori del Registro di sistema di un VSPackage solo nel VSPackage stesso sembra una buona idea. Dato che gli sviluppatori necessitano dei valori del Registro di sistema disponibili per il lavoro e il test di routine, è opportuno evitare di mantenere una copia separata dei dati del Registro di sistema nel programma di installazione. Il programma di installazione può basarsi sul VSPackage stesso per scrivere valori del Registro di sistema.

Anche se buona in teoria, la registrazione automatica presenta diversi difetti che lo rendono non adatto per l'installazione di VSPackage:

  • Per supportare correttamente l'installazione, la disinstallazione, il rollback dell'installazione e il rollback della disinstallazione, è necessario creare quattro azioni personalizzate per ogni VSPackage gestito che esegue la registrazione automatica chiamando RegPkg.

  • L'approccio al supporto side-by-side potrebbe richiedere la creazione di quattro azioni personalizzate che richiamano RegSvr32 o RegPkg per ogni versione supportata di Visual Studio.

  • Non è possibile eseguire il rollback di un'installazione con moduli autoregistrati perché non è possibile indicare se le chiavi autoregistrati vengono usate da un'altra funzionalità o applicazione.

  • Le DLL autoregistrati talvolta si collegano a DLL ausiliarie che non sono presenti o sono la versione errata. Windows Installer può invece registrare DLL usando le tabelle del Registro di sistema senza dipendenze dallo stato corrente del sistema.

  • Il codice di registrazione automatica può essere negato l'accesso alle risorse di rete, ad esempio librerie dei tipi, se un componente è specificato sia come run-from-source che viene elencato nella tabella SelfReg. Ciò può causare l'esito negativo dell'installazione del componente durante un'installazione amministrativa.