Condividi tramite


Installare un plug-in del controllo del codice sorgente

La creazione di un plug-in di controllo del codice sorgente prevede tre passaggi:

  1. Creare una DLL con le funzioni definite nella sezione di riferimento dell'API Plug-in del controllo del codice sorgente di questa documentazione.

  2. Implementare le funzioni definite dall'API plug-in del controllo del codice sorgente. Quando Visual Studio lo chiama, rendere disponibili interfacce e finestre di dialogo dal plug-in.

  3. Registrare la DLL rendendo appropriate le voci del Registro di sistema.

Integrazione con Visual Studio

Visual Studio supporta plug-in di controllo del codice sorgente conformi all'API plug-in del controllo del codice sorgente.

Registrare il plug-in del controllo del codice sorgente

Prima che un ambiente di sviluppo integrato (IDE) in esecuzione possa chiamare nel sistema di controllo del codice sorgente, deve prima trovare la DLL del plug-in del controllo del codice sorgente che esporta l'API.

Per registrare la DLL del plug-in del controllo del codice sorgente

  1. Aggiungere due voci sotto la chiave HKEY_LOCAL_MACHINE nella sottochiave SOFTWARE che specifica la sottochiave del nome della società seguita dalla sottochiave nome prodotto. Il modello è HKEY_LOCAL_MACHINE\SOFTWARE\<nome> società\<nome> prodotto\<valore voce> = . Le due voci sono sempre denominate SCCServerName e SCCServerPath. Ogni stringa è una stringa regolare.

    Ad esempio, se il nome della società è Microsoft e il prodotto del controllo del codice sorgente è denominato Source Cassaforte, questo percorso del Registro di sistema sarà HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Source Cassaforte. In questa sottochiave, la prima voce, SCCServerName, è una stringa leggibile dall'utente che denomina il prodotto. La seconda voce, SCCServerPath, è il percorso completo della DLL del plug-in del controllo del codice sorgente a cui deve connettersi l'IDE. Di seguito sono riportate le voci del Registro di sistema di esempio:

    Voce del Registro di sistema di esempio Valore di esempio
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Source Cassaforte\SCCServerName Microsoft Visual SourceSafe
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Source Cassaforte\SCCServerPath c:\vss\win32\ssscc.dll

    Nota

    SCCServerPath è il percorso completo del plug-in Source Cassaforte. Il plug-in del controllo del codice sorgente userà nomi di società e prodotti diversi, ma gli stessi percorsi di immissione del Registro di sistema.

  2. Le voci facoltative del Registro di sistema seguenti possono essere usate per modificare il comportamento del plug-in del controllo del codice sorgente. Queste voci si trovano nella stessa sottochiave di SccServerName e SccServerPath.

    • La voce HideInVisualStudioregistry può essere usata se non si vuole che il plug-in del controllo del codice sorgente venga visualizzato nell'elenco Selezione plug-in di Visual Studio. Questa voce influirà anche sul passaggio automatico al plug-in del controllo del codice sorgente. Un possibile uso per questa voce è se si fornisce un pacchetto di controllo del codice sorgente che sostituisce il plug-in del controllo del codice sorgente, ma si vuole rendere più semplice per l'utente eseguire la migrazione dall'uso del plug-in di controllo del codice sorgente al pacchetto del controllo del codice sorgente. Quando il pacchetto del controllo del codice sorgente è installato, imposta questa voce del Registro di sistema, che nasconde il plug-in.

      HideInVisualStudio è un valore DWORD ed è impostato su 1 per nascondere il plug-in o 0 per visualizzare il plug-in. Se la voce del Registro di sistema non viene visualizzata, il comportamento predefinito consiste nel mostrare il plug-in.

    • La voce del Registro di sistema DisableSccManager può essere usata per disabilitare o nascondere l'opzione di menu Avvia <server di controllo> del codice sorgente visualizzata normalmente sotto il sottomenu Controllo codice sorgente file>. Selezionando questa opzione di menu viene chiamata la funzione SccRunScc . Il plug-in del controllo del codice sorgente potrebbe non supportare un programma esterno e pertanto potrebbe essere necessario disabilitare o anche nascondere l'opzione di menu Avvia .

      DisableSccManager è un valore DWORD ed è impostato su 0 per abilitare l'opzione di menu Avvia <server controllo> del codice sorgente, impostare su 1 per disabilitare l'opzione di menu e impostare su 2 per nascondere l'opzione di menu. Se questa voce del Registro di sistema non viene visualizzata, il comportamento predefinito consiste nel visualizzare l'opzione di menu.

    Voce del Registro di sistema di esempio Valore di esempio
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Source Cassaforte\HideInVisualStudio 1
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Source Cassaforte\DisableSccManager 1
  3. Aggiungere la sottochiave SourceCodeControlProvider sotto la chiave HKEY_LOCAL_MACHINE nella sottochiave SOFTWARE .

    In questa sottochiave la voce del Registro di sistema ProviderRegKey è impostata su una stringa che rappresenta la sottochiave inserita nel Registro di sistema nel passaggio 1. Il modello è HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider\ProviderRegKey = SOFTWARE\nome società\<<nome>> prodotto.

    Di seguito è riportato il contenuto di esempio per questa sottochiave.

    Voce del Registro di sistema Valore di esempio
    HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider\ProviderRegKey SOFTWARE\Microsoft\Source Cassaforte

    Nota

    Il plug-in del controllo del codice sorgente userà la stessa sottochiave e i nomi delle voci, ma il valore sarà diverso.

  4. Creare una sottochiave denominata InstalledSCCProviders nella sottochiave SourceCodeControlProvider e quindi inserire una voce sotto tale sottochiave.

    Il nome di questa voce è il nome leggibile dell'utente del provider (uguale al valore specificato per la voce SCCServerName) e il valore è, ancora una volta, la sottochiave creata nel passaggio 1. Il modello è HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider\InstalledSCCProviders\<nome> = visualizzato SOFTWARE\<nome> società\<nome> prodotto.

    Ad esempio:

    Voce del Registro di sistema di esempio Valore di esempio
    HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider\InstalledSCCProviders\Microsoft Visual Source Cassaforte SOFTWARE\Microsoft\Source Cassaforte

    Nota

    In questo modo possono essere registrati più plug-in di controllo del codice sorgente. Questo è il modo in cui Visual Studio trova tutti i plug-in basati su API per il controllo del codice sorgente installati.

Come un IDE individua la DLL

L'IDE di Visual Studio offre due modi per trovare la DLL del plug-in del controllo del codice sorgente:

  • Trovare il plug-in del controllo del codice sorgente predefinito e connetterlo automaticamente.

  • Trova tutti i plug-in di controllo del codice sorgente registrati, da cui l'utente sceglie uno.

    Per individuare la DLL nel primo modo, l'IDE cerca sotto la sottochiave HKEY_LOCAL_MACHINE\Software\SourceCodeControlProvider per la voce ProviderRegKey. Il valore di questa voce punta a un'altra sottochiave. L'IDE cerca quindi una voce denominata SccServerPath nella seconda sottochiave in HKEY_LOCAL_MACHINE. Il valore di questa voce punta l'IDE alla DLL.

Nota

L'IDE non carica le DLL dai percorsi relativi, ad esempio .\NewProvider.DLL. È necessario specificare un percorso completo della DLL, ad esempio c:\Providers\NewProvider.DLL. Ciò rafforza la sicurezza dell'IDE impedendo il caricamento di DLL plug-in non autorizzate o rappresentate.

Per individuare la DLL nel secondo modo, l'IDE cerca nella sottochiave HKEY_LOCAL_MACHINE\Software\SourceCodeControlProvider\InstalledSCCProviders per tutte le voci. Ogni voce ha un nome e un valore. L'IDE visualizza un elenco di questi nomi per l'utente. Quando l'utente sceglie un nome, l'IDE trova il valore per il nome selezionato che punta a una sottochiave. L'IDE cerca una voce denominata SccServerPath in tale sottochiave in HKEY_LOCAL_MACHINE. Il valore di tale voce punta l'IDE alla DLL corretta.

Un plug-in del controllo del codice sorgente deve supportare entrambi i modi per trovare la DLL e, di conseguenza, imposta ProviderRegKey sovrascrivendo qualsiasi impostazione precedente. Più importante, deve aggiungersi all'elenco di InstalledSccProviders in modo che l'utente possa scegliere quale plug-in di controllo del codice sorgente usare.

Nota

Poiché viene usata la chiave HKEY_LOCAL_MACHINE , è possibile registrare un solo plug-in del controllo del codice sorgente come plug-in di controllo del codice sorgente predefinito in un determinato computer(Tuttavia, Visual Studio consente agli utenti di determinare quale plug-in di controllo del codice sorgente vuole effettivamente usare per una determinata soluzione). Durante il processo di installazione, verificare se è già impostato un plug-in di controllo del codice sorgente; in tal caso, chiedere all'utente se impostare o meno il nuovo plug-in del controllo del codice sorgente da installare come predefinito. Durante la disinstallazione, non rimuovere altre sottochiavi del Registro di sistema comuni a tutti i plug-in del controllo del codice sorgente in HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider. Rimuovere solo la sottochiave SCC specifica.

Come l'IDE rileva il supporto della versione 1.2/1.3

In che modo Visual Studio rileva se un plug-in supporta l'API plug-in del controllo del codice sorgente versione 1.2 e 1.3? Per dichiarare funzionalità avanzate, il plug-in del controllo del codice sorgente deve implementare la funzione corrispondente:

In primo luogo, Visual Studio controlla il valore restituito chiamando SccGetVersion. Deve essere maggiore o uguale a 1,2.

Visual Studio determina quindi se la nuova funzionalità specifica è supportata esaminando l'argomento lpSccCaps in SccInitialize.

Se vengono soddisfatte entrambe queste condizioni, è possibile chiamare le nuove funzioni supportate nelle versioni 1.2 e 1.3.