Choisir le répertoire d’installation d’un VSPackage

Un VSPackage et ses fichiers de prise en charge doivent se trouver sur le système de fichiers d’un utilisateur. L’emplacement dépend de la gestion ou non managée de VSPackage, de votre schéma de contrôle de version côte à côte et du choix de l’utilisateur.

VSPackages non managés

Un VSPackage non managé est un serveur COM qui peut être installé à n’importe quel emplacement. Ses informations d’inscription doivent refléter avec précision son emplacement. Votre interface utilisateur du programme d’installation doit fournir un emplacement par défaut en tant que sous-répertoire de la valeur de la ProgramFilesFolder propriété Windows Installer. Par exemple :

<ProgramFilesFolder>\<MyCompany>\<MyVSPackageProduct>\V1.0\

L’utilisateur doit être autorisé à modifier le répertoire par défaut pour prendre en charge les utilisateurs qui conservent une petite partition de démarrage et préfèrent installer des applications et des outils sur un autre volume.

Si votre schéma côte à côte utilise un VSPackage avec version, vous pouvez utiliser des sous-répertoires pour stocker différentes versions. Par exemple :

<ProgramFilesFolder>\<MyCompany>\<MyVSPackageProduct>\V1.0\2002\

<ProgramFilesFolder>\<MyCompany>\<MyVSPackageProduct>\V1.0\2003\

<ProgramFilesFolder>\<MyCompany>\<MyVSPackageProduct>\V1.0\2005\

VSPackages gérés

Les VSPackages managés peuvent également être installés à n’importe quel emplacement. Toutefois, vous devez envisager de toujours les installer dans le Global Assembly Cache (GAC) pour réduire les temps de chargement des assemblys. Étant donné que les VSPackages managés sont toujours des assemblys nommés fort, leur installation dans le GAC signifie que leur vérification de signature de nom fort prend uniquement au moment de l’installation. Les assemblys avec nom fort installés ailleurs dans le système de fichiers doivent avoir leurs signatures vérifiées chaque fois qu’ils sont chargés. Lorsque vous installez des VSPackages managés dans le GAC, utilisez le commutateur /assembly de l’outil regpkg pour écrire des entrées de Registre pointant vers le nom fort de l’assembly.

Si vous installez des VSPackages managés dans un emplacement autre que le GAC, suivez les conseils précédents donnés pour les VSPackages non managés pour choisir des hiérarchies d’annuaires. Utilisez le commutateur /codebase de l’outil regpkg pour écrire des entrées de Registre pointant vers le chemin d’accès de l’assembly VSPackage.

Pour plus d’informations, consultez Inscrire et annuler l’inscription de VSPackages.

DLL satellites

Par convention, les DLL satellites VSPackage, qui contiennent des ressources pour des paramètres régionaux particuliers, se trouvent dans les sous-répertoires du répertoire VSPackage . Les sous-répertoires correspondent aux valeurs d’ID de paramètres régionaux (LCID).

L’article Gérer les VSPackages indique que les entrées de Registre contrôlent l’emplacement où Visual Studio recherche réellement la DLL satellite d’un VSPackage. Toutefois, Visual Studio tente de charger une DLL satellite dans un sous-répertoire nommé pour une valeur LCID, dans l’ordre suivant :

  1. LCID par défaut (Visual Studio LCID ; par exemple, \1033 pour l’anglais)

  2. LCID par défaut avec la sous-langue par défaut.

  3. LCID par défaut du système.

  4. LCID par défaut du système avec la sous-langue par défaut.

  5. Anglais américain (.\1033 ou .\0x409).

Si votre DLL VSPackage inclut des ressources et que l’entrée de Registre SatelliteDll\DllName y pointe, Visual Studio tente de les charger dans l’ordre ci-dessus.