Scegliere la directory di installazione per un pacchetto VSPackage
Un VSPackage e i relativi file di supporto devono trovarsi nel file system di un utente. La posizione dipende dal fatto che il VSPackage sia gestito o non gestito, lo schema di controllo delle versioni side-by-side e la scelta dell'utente.
PACCHETTI VSPackage non gestiti
Un VSPackage non gestito è un server COM che può essere installato in qualsiasi percorso. Le informazioni di registrazione devono riflettere in modo accurato la posizione. L'interfaccia utente del programma di installazione deve fornire un percorso predefinito come sottodirectory del valore della ProgramFilesFolder
proprietà di Windows Installer. Ad esempio:
<ProgramFilesFolder>\<MyCompany>\<MyVSPackageProduct>\V1.0\
L'utente deve essere autorizzato a modificare la directory predefinita per consentire agli utenti che mantengono una piccola partizione di avvio e preferiscono installare applicazioni e strumenti in un altro volume.
Se lo schema side-by-side usa un VSPackage con versione, è possibile usare le sottodirectory per archiviare versioni diverse. Ad esempio:
<ProgramFilesFolder>\<MyCompany>\<MyVSPackageProduct>\V1.0\2002\
<ProgramFilesFolder>\<MyCompany>\<MyVSPackageProduct>\V1.0\2003\
<ProgramFilesFolder>\<MyCompany>\<MyVSPackageProduct>\V1.0\2005\
VSPackage gestiti
I pacchetti VSPackage gestiti possono essere installati anche in qualsiasi percorso. È tuttavia consigliabile installarli sempre nella Global Assembly Cache (GAC) per ridurre i tempi di caricamento degli assembly. Poiché i VSPackage gestiti sono sempre assembly con nome sicuro, installarli nella GAC significa che la verifica della firma con nome sicuro richiede solo in fase di installazione. Gli assembly con nome sicuro installati altrove nel file system devono avere le firme verificate ogni volta che vengono caricati. Quando si installano pacchetti VSPackage gestiti nella GAC, usare l'opzione /assembly dello strumento regpkg per scrivere voci del Registro di sistema che puntano al nome sicuro dell'assembly.
Se si installano pacchetti VSPackage gestiti in un percorso diverso dalla GAC, seguire i consigli indicati in precedenza per i PACCHETTI VSPackage non gestiti per la scelta delle gerarchie di directory. Usare l'opzione /codebase dello strumento regpkg per scrivere voci del Registro di sistema che puntano al percorso dell'assembly VSPackage.
Per altre informazioni, vedere Registrare e annullare la registrazione di PACCHETTI VSPackage.
DLL satellite
Per convenzione, le DLL satellite VSPackage, che contengono risorse per una determinata impostazione locale, si trovano nelle sottodirectory della directory VSPackage . Le sottodirectory corrispondono ai valori LCID (Locale ID).
L'articolo Manage VSPackages indica che le voci del Registro di sistema controllano dove Visual Studio cerca effettivamente la DLL satellite di un VSPackage. Tuttavia, Visual Studio tenta di caricare una DLL satellite in una sottodirectory denominata per un valore LCID, nell'ordine seguente:
LCID predefinito (Visual Studio LCID, ad esempio \1033 per inglese)
LCID predefinito con la sottolanguage predefinita.
LCID predefinito del sistema.
LCID predefinito del sistema con la sottolanguage predefinita.
Inglese (.\1033 o .\0x409).
Se la DLL VSPackage include risorse e la voce del Registro di sistema SatelliteDll\DllName vi punta, Visual Studio tenta di caricarli nell'ordine precedente.