Procedura dettagliata: creazione di DLL satellite gestite

Aggiornamento: novembre 2007

Le DLL satellite sono utili per archiviare i file di risorse, ad esempio icone, bitmap e stringhe di risorse, in una posizione centralizzata da utilizzare in componenti aggiuntivi e altri progetti di automazione. Le DLL satellite possono inoltre essere utilizzate da altri progetti o componenti aggiuntivi. È anche possibile separare le stringhe e le altre risorse dal proprio componente aggiuntivo per apportare più facilmente modifiche centralizzate o per localizzare le risorse in altre lingue.

In Visual Studio .NET 2002 e Visual Studio .NET 2003 vengono utilizzate le voci del Registro di sistema per SatelliteDllPath e SatelliteDllName. In Visual Studio 2005, invece, le voci del Registro di sistema sono state sostituite da quelle nel file di registrazione Addin. Quando è necessario utilizzare una risorsa in un progetto, è sufficiente caricare il componente aggiuntivo dal quale Visual Studio otterrà la DLL satellite proprio come gli altri componenti gestiti. Di conseguenza, non è necessario definire il percorso della risorsa a livello di codice. Inoltre, per specificare l'ID di una risorsa, anzichè il metodo #id è necessario utilizzare @<nome risorsa> (dove "<nome risorsa> rappresenta il nome della risorsa, ad esempio @Icon1 o @String1). Il simbolo @ indica a Visual Studio di cercare la risorsa nella DLL satellite.

Creare DLL satellite gestite

Nella procedura seguente viene illustrato come creare una DLL satellite contenente risorse di tipo stringa e icona e come modificare un componente aggiuntivo per accedere a tali risorse. A questo scopo, viene utilizzato un componente aggiuntivo che include una Finestra Informazioni su e che necessita di risorse di tipo icona e stringa. Quando si crea un componente aggiuntivo con una Finestra Informazioni su, vengono generalmente forniti un'icona e un testo predefiniti. Nella procedura seguente viene illustrato come sostituire l'icona e il testo predefiniti con quelli desiderati.

Per creare una DLL satellite gestita

  1. Scegliere Nuovo dal menu File, quindi selezionare Progetto.

    Verrà visualizzata la finestra di dialogo Nuovo progetto.

  2. Espandere Altri tipi di progetto, quindi scegliere Progetti Extensibility.

  3. Nel riquadro Modelli selezionare Componente aggiuntivo Visual Studio.

  4. Seguire le istruzioni riportate nella Creazione guidata componente aggiuntivo di Visual Studio. Nella pagina Scelta della finestra "Informazioni su" selezionare la casella di controllo Sì, rendi disponibile la finestra "Informazioni su" per il componente aggiuntivo. Non modificare i valori predefiniti.

  5. In Esplora soluzioni selezionare il progetto di componente aggiuntivo, quindi scegliere Mostra tutti i file dal menu Progetto.

  6. Scegliere Aggiungi riferimento dal menu Progetto.

  7. Nella scheda .NET fare clic su System.Drawing, quindi scegliere OK.

  8. Fare clic con il pulsante destro del mouse sul progetto del componente aggiuntivo in Esplora soluzioni.

  9. Scegliere Aggiungi e quindi Nuovo elemento.

  10. Selezionare File di risorse nell'elenco Modelli, quindi fare clic sul pulsante Aggiungi. Non modificare il nome predefinito (Resources1.resx).

    Verrà avviato l'Editor risorse di Visual Studio.

    Per impostazione predefinita viene creato un file di risorse con il nome Resource1.resx.

  11. In Resource1.resx scegliere Icone dal menu a discesa Stringhe disponibile sul pulsante in alto all'estrema sinistra.

  12. Scegliere Aggiungi nuova icona dal menu a discesa Aggiungi risorsa. Non modificare per il momento il nome predefinito (Icon1.bmp), quindi fare clic su Aggiungi.

    In alternativa, è possibile selezionare un'immagine bitmap esistente per l'icona, purché l'immagine sia pari a 16 x 16 pixel e a 16 colori o 16,8 milioni di colori. Le icone personalizzate dei componenti aggiuntivi, infatti, devono essere pari a 16 x 16 pixel e 16 colori o 16,8 milioni di colori.

  13. Dopo che l'icona viene aperta nell'Editor icone, utilizzare gli strumenti per modificarla. Al termine, chiudere l'Editor icone e salvare le modifiche apportate.

  14. Scegliere Aggiungi nuova stringa dal menu a discesa Aggiungi risorsa.

  15. Fare clic sulla prima casella nella colonna Nome.

    Verrà creata una nuova risorsa di tipo stringa predefinita con il nome String1.

  16. Digitare la Riga uno nella casella Valore.

    Questo è il valore della prima stringa di tipo risorsa.

  17. Creare altre due risorse di tipo stringa con i nomi "Riga due" e "Riga tre".

  18. Chiudere l'Editor risorse e salvare le modifiche apportate.

  19. In Esplora soluzioni fare clic con il pulsante destro del mouse su Resource1.resx e scegliere Proprietà.

  20. Nella finestra Proprietà modificare l'impostazione di Risorsa incorporata da Operazione di generazione in Nessuno.

    Ciò impedisce che la risorsa venga incorporata nell'assembly del componente aggiuntivo.

  21. Generare il progetto.

  22. Creare la DLL di risorse satellite. A questo scopo è innanzitutto necessario utilizzare ResGen e quindi l'Assembly Linker.

    1. Fare clic sul pulsante Start di Windows, scegliere Programmi, Microsoft Visual Studio 2005, Strumenti di Visual Studio, quindi Prompt dei comandi di Microsoft Visual Studio 2005.

      Ciò consente di impostare determinate variabili di ambiente in modo che sia più semplice fare riferimento agli strumenti di Visual Studio.

    2. Al prompt dei comandi individuare la cartella che contiene il file .resx e digitare Resgen Resource1.resx.

      Resgen è un'utilità che consente di compilare il file .resx specificato in un file .resources. Per ulteriori informazioni, vedere Generatore di file di risorse (Resgen.exe).

    3. Al prompt dei comandi digitare quanto segue: Al.exe /embed:Resource1.resources /culture:en-US /out:<Add-In Name>.resources.dll.

      Al posto di <nome componente aggiuntivo> immettere il nome del componente aggiuntivo corrente. Se ad esempio il progetto del componente aggiuntivo è denominato MyAddin, l'opzione /out: corrisponderà a /out:MyAddin.resources.dll. Se il nome /out: non corrisponde al nome del progetto, non sarà possibile individuare la DLL della risorsa.

      Assembly Linker (Al.exe) converte il file .resources specificato in una DLL a cui è possibile fare riferimento nel componente aggiuntivo. È possibile impostare l'opzione /culture su una lingua diversa dall'inglese. Per ulteriori informazioni, vedere Assembly Linker (Al.exe).

  23. In Esplora risorse individuare la directory della DLL del componente aggiuntivo, generalmente la cartella en-EN se nel valore culture di Assembly Linker è stata specificata la lingua inglese.

  24. Copiare il file <nome componente aggiuntivo>.resources.dll nella cartella en-EN.

  25. In Esplora risorse individuare la directory Addins. Generalmente <unità>:\Documents and Settings\<nomeutente>\My Documents\Visual Studio 2005\Addins.

  26. Modificare il file di definizione del componente aggiuntivo di Visual Studio nel modo seguente:

    1. Fare clic con il pulsante destro del mouse sul file di definizione del componente aggiuntivo, quindi scegliere Apri con dal menu di scelta rapida. Scegliere Blocco note dall'elenco dei programmi.

    2. Tra i tag <Addin></Addin> effettuare le modifiche seguenti:

      <Addin>
          <FriendlyName>@String1</FriendlyName>
          <Description>@String2</Description>
          <AboutBoxDetails>@String3</AboutBoxDetails>
          <AboutIconData>@Icon1</AboutIconData>
          <Assembly><installation root>\my documents\visual studio 2005\Projects\MyAddin1\MyAddin1\bin\MyAddin1.dll</Assembly>
          <FullClassName>MyAddin1.Connect</FullClassName>
          <LoadBehavior>0</LoadBehavior>
          <CommandPreload>0</CommandPreload>
          <CommandLineSafe>0</CommandLineSafe>
      </Addin>
      

      Al posto di <directory principale di installazione> all'interno dei tag <Assembly></Assembly> immettere il percorso dei file sul computer.

      Il componente aggiuntivo verrà rinominato da Friendlyname in Riga1, vale a dire il valore specificato in Stringa1 nel file Resource1.resx. La sezione Descrizione della Finestra Informazioni su contiene ora il valore "Riga2" e il valore di AboutIconData corrisponde al confronto tra l'icona nella Finestra Informazioni su e quella creata nel passaggio sette (7).

  27. Generare di nuovo il progetto e selezionare il componente aggiuntivo in Gestione componenti aggiuntivi.

  28. Scegliere Informazioni su Microsoft Visual Studio dal menu ?, quindi selezionare Riga1, vale a dire il nome del componente aggiuntivo, nell'elenco.

    Verranno visualizzati la nuova icona personalizzata e le tre stringhe create nella Finestra Informazioni su.

Vedere anche

Attività

Procedura: accedere alle risorse in DLL satellite

Concetti

Registrazione di un componente aggiuntivo