Registrazione e selezione (VSPackage di controllo del codice sorgente)
È necessario registrare un VSPackage del controllo del codice sorgente per esporlo a Visual Studio. Se è registrato più di un pacchetto VSPackage per il controllo del codice sorgente, l'utente può selezionare il pacchetto VSPackage da caricare in momenti appropriati. Per altre informazioni sui pacchetti VSPackage e su come registrarli, vedere VSPackages (Pacchetti VSPackage).
Registrazione di un pacchetto di controllo del codice sorgente
Il pacchetto del controllo del codice sorgente viene registrato in modo che l'ambiente di Visual Studio possa trovarlo ed eseguire query sulle funzionalità supportate. Questo comportamento è conforme a uno schema di caricamento ritardato in cui viene creata un'istanza di un pacchetto solo quando sono necessarie funzionalità o comandi o vengono richiesti in modo esplicito.
I pacchetti VSPackage inserisce informazioni in una chiave del Registro di sistema specifica della versione, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\X.Y, dove X è il numero di versione principale e Y è il numero di versione secondaria. Questa procedura consente di supportare l'installazione side-by-side di più versioni di Visual Studio.
L'interfaccia utente di Visual Studio supporta la selezione tra più plug-in di controllo del codice sorgente installati (tramite il pacchetto dell'adapter di controllo del codice sorgente) e vsPackage di controllo del codice sorgente. Può essere presente un solo plug-in del controllo del codice sorgente attivo o VSPackage alla volta. Tuttavia, come descritto di seguito, l'IDE consente il passaggio tra plug-in di controllo del codice sorgente e VSPackage tramite un meccanismo di scambio automatico dei pacchetti basato su soluzioni. Per abilitare questo meccanismo di selezione, esistono alcuni requisiti da parte del pacchetto VSPackage del controllo del codice sorgente.
Voci del Registro di sistema
Un pacchetto di controllo del codice sorgente richiede tre GUID privati:
GUID pacchetto: si tratta del GUID principale per il pacchetto che contiene l'implementazione del controllo del codice sorgente (denominata ID_Package in questa sezione).
GUID del controllo del codice sorgente: si tratta di un GUID per il VSPackage del controllo del codice sorgente usato per eseguire la registrazione con lo Stub del controllo del codice sorgente di Visual Studio e viene usato anche come GUID del contesto dell'interfaccia utente del comando. Il GUID del servizio di controllo del codice sorgente viene registrato nel GUID del controllo del codice sorgente. Nell'esempio il GUID del controllo del codice sorgente viene chiamato ID_SccProvider.
GUID del servizio di controllo del codice sorgente: si tratta del GUID del servizio privato usato da Visual Studio (denominato SID_SccPkgService in questa sezione). Oltre a questo, il pacchetto di controllo del codice sorgente deve definire altri GUID per VSPackage, finestre degli strumenti e così via.
Le voci del Registro di sistema seguenti devono essere eseguite da un pacchetto VSPackage del controllo del codice sorgente:
Nome chiave | whse. |
---|---|
HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ VisualStudio\ X.Y\ SourceControlProviders\ |
(impostazione predefinita) = rg_sz:{ID_SccProvider} |
HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ VisualStudio\ X.Y\ SourceControlProviders\ {ID_SccProvider}\ |
(impostazione predefinita) = rg_sz:<Nome descrittivo del pacchetto> Service = rg_sz:{SID_SccPkgService} |
HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ VisualStudio\ X.Y\ SourceControlProviders\ {ID_SccProvider}\ Name\ |
(impostazione predefinita) = rg_sz:#<ID risorsa per il nome localizzato> Pacchetto = rg_sz:{ID_Package} |
HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ VisualStudio\ X.Y\ SolutionPersistence\ <PackageName>\ Si noti che il nome della chiave, SourceCodeControl , è già usato da Visual Studio e non è disponibile come scelta per <PackageName>. |
(impostazione predefinita) = rg_sz:{ID_Package} |
Selezione di un pacchetto di controllo del codice sorgente
È possibile registrare simultaneamente diversi plug-in basati su API e pacchetti VSPackage per il controllo del codice sorgente. Il processo di selezione di un plug-in di controllo del codice sorgente o VSPackage deve garantire che Visual Studio carichi il plug-in o VSPackage al momento appropriato e possa rinviare il caricamento di componenti non necessari fino a quando non sono necessari. Visual Studio deve inoltre rimuovere tutta l'interfaccia utente da altri PACCHETTI VSPackage inattivi, incluse voci di menu, finestre di dialogo e barre degli strumenti e visualizzare l'interfaccia utente per il VSPackage attivo.
Visual Studio carica un VSPackage del controllo del codice sorgente quando viene eseguita una delle operazioni seguenti:
La soluzione viene aperta (quando la soluzione è sotto il controllo del codice sorgente).
Quando viene aperta una soluzione o un progetto nel controllo del codice sorgente, l'IDE determina il caricamento del pacchetto VSPackage del controllo del codice sorgente designato per tale soluzione.
Vengono eseguiti uno dei comandi di menu del pacchetto VSPackage del controllo del codice sorgente.
Un pacchetto VSPackage per il controllo del codice sorgente deve caricare tutti i componenti necessari solo quando verranno effettivamente usati (altrimenti noto come caricamento ritardato).
Scambio automatico di pacchetti VSPackage basato su soluzioni
È possibile scambiare manualmente i pacchetti VSPackage del controllo del codice sorgente tramite la finestra di dialogo Opzioni di Visual Studio nella categoria Controllo del codice sorgente. Lo scambio automatico dei pacchetti basato su soluzioni indica che un pacchetto di controllo del codice sorgente designato per una determinata soluzione viene impostato automaticamente su attivo quando tale soluzione viene aperta. Ogni pacchetto di controllo del codice sorgente deve implementare SetActive e SetInactive. Visual Studio gestisce il passaggio tra plug-in di controllo del codice sorgente (implementazione dell'API plug-in del controllo del codice sorgente) e VSPackage per il controllo del codice sorgente.
Il pacchetto dell'adattatore del controllo del codice sorgente viene usato per passare a qualsiasi plug-in basato su API di controllo del codice sorgente. Il processo di passaggio al pacchetto adattatore del controllo del codice sorgente intermedio e la determinazione del plug-in del controllo del codice sorgente da impostare su attivo o inattivo è trasparente per l'utente. Il pacchetto adapter è sempre attivo quando è attivo qualsiasi plug-in del controllo del codice sorgente. Il passaggio tra due plug-in di controllo del codice sorgente equivale a caricare e scaricare semplicemente la DLL del plug-in. Il passaggio a un pacchetto VSPackage del controllo del codice sorgente comporta tuttavia l'interazione con l'IDE per caricare il pacchetto VSPackage appropriato.
Viene chiamato un VSPackage del controllo del codice sorgente quando viene aperta una soluzione e la chiave del Registro di sistema per il pacchetto VSPackage si trova nel file della soluzione. Quando la soluzione viene aperta, Visual Studio trova il valore del Registro di sistema e carica il vsPackage del controllo del codice sorgente appropriato. Tutti i pacchetti VSPackage di controllo del codice sorgente devono avere le voci del Registro di sistema descritte in precedenza. Una soluzione sotto il controllo del codice sorgente è contrassegnata come associata a un particolare pacchetto VSPackage per il controllo del codice sorgente. I pacchetti VSPackage di controllo del codice sorgente devono implementare per abilitare lo IVsSolutionPersistence scambio automatico di pacchetti VSPackage basati su soluzioni.
Interfaccia utente di Visual Studio per la selezione e il cambio di pacchetti
Visual Studio fornisce un'interfaccia utente per il controllo del codice sorgente VSPackage e la selezione del plug-in nella finestra di dialogo Opzioni nella categoria Controllo del codice sorgente. Consente all'utente di selezionare il plug-in del controllo del codice sorgente attivo o VSPackage. Un elenco a discesa include:
Tutti i pacchetti di controllo del codice sorgente installati
Tutti i plug-in del controllo del codice sorgente installati
Opzione "none", che disabilita il controllo del codice sorgente
È visibile solo l'interfaccia utente per la scelta del controllo del codice sorgente attivo. La selezione di VSPackage nasconde l'interfaccia utente per il VSPackage precedente e mostra l'interfaccia utente per la nuova. Il VSPackage attivo viene selezionato per ogni utente. Se un utente ha più copie di Visual Studio aperte contemporaneamente, ognuna può usare un VSPackage attivo diverso. Se più utenti sono connessi allo stesso computer, ogni utente può avere istanze separate di Visual Studio aperte, ognuna con un VSPackage attivo diverso. Quando più istanze di Visual Studio vengono chiuse da un utente, il pacchetto VSPackage del controllo del codice sorgente attivo per l'ultima soluzione aperta diventa il VSPackage del controllo del codice sorgente predefinito, da impostare attivo al riavvio.
A differenza delle versioni precedenti di Visual Studio, un riavvio dell'IDE non è più l'unico modo per cambiare il controllo del codice sorgente VSPackage. La selezione di VSPackage è automatica. Il cambio di pacchetti richiede privilegi utente di Windows (non Amministrazione istrator o Power User).