Scénarios d’installation de VSPackageVSPackage Setup Scenarios

Il est important de votre programme d’installation de package Visual Studio pour une flexibilité de conception.It is important to design your VSPackage installer for flexibility. Par exemple, vous devrez peut-être libérer un correctif de sécurité à l’avenir, ou vous pouvez modifier une stratégie qui nécessite la prise en charge approfondie versioning côte à côte.For example, you might need to release a security patch in the future, or you might change a business strategy that requires thorough side-by-side versioning support.

Dans prenant en charge plusieurs Versions de Visual Studio, vous pouvez découvrir les avantages et les problèmes de prise en charge des installations côte à côte de Visual StudioVisual Studio avec des installations partagées ou côte à côte de votre VSPackage.In Supporting Multiple Versions of Visual Studio, you can read about the advantages and issues of supporting side-by-side installations of Visual StudioVisual Studio with either shared or side-by-side installations of your VSPackage. En bref, les packages VS côte à côte vous donnent plus de flexibilité pour prendre en charge les nouvelles fonctionnalités de Visual StudioVisual Studio.In short, side-by-side VSPackages give you the most flexibility to support new features of Visual StudioVisual Studio.

Les scénarios présentés dans cette rubrique ne sont pas vos seuls choix, mais elles sont présentées comme des pratiques recommandées.The scenarios discussed in this topic are not your only choices, but they are presented as suggested best practices.

Composants, la confidentialité et le partageComponents, Privacy, and Sharing

Créer des composants indépendantsMake your components independent

Une fois que vous identifiez et remplissez un composant, affecter un GUIDet le déploiement du composant, vous ne pouvez pas modifier sa composition.Once you identify and populate a component, assign a GUID, and deploy the component, you cannot change its composition. Si vous ne modifiez pas les composition d’un composant, le composant qui en résulte doit être un nouveau composant avec un nouveau GUID.If you do change a component's composition, the resulting component must be a new component with a new GUID. Étant donné ces faits, la plus grande flexibilité de contrôle de version est offerte en rendant chaque unité indépendante, indépendant de composant.Given these facts, the greatest versioning flexibility is afforded by making each component independent, self-reliant unit. Pour plus d’informations sur les règles régissant les composants, consultez la modification du Code de composant et que se passe-t-il si les règles de composant sont répartis ?.For more information about rules governing components, see Changing the Component Code and What Happens if the Component Rules Are Broken?.

Ne mélangez pas les ressources partagées et privées dans un composantDo not mix shared and private resources in a component

Comptage de références se produit au niveau du composant.Reference counting occurs on the component level. Par conséquent, la combinaison de ressources partagées et privées dans un composant rend impossible à mettre à jour des ressources privées, tel qu’un fichier exécutable, sans remplacer également les ressources partagées.Consequently, mixing shared and private resources in one component makes it impossible to update private resources, such as an executable file, without also overwriting shared resources. Ce scénario crée des problèmes de compatibilité descendante et vous empêche de créer la fonctionnalité de côte à côte.This scenario creates backward-compatibility issues and restricts you from creating side-by-side capability.

Par exemple, les valeurs de Registre utilisé pour inscrire votre VSPackage avec le Kit de développement logiciel Visual StudioVisual Studio SDK doivent être conservés dans un composant distinct de celui qui est utilisé pour inscrire votre package Visual Studio avec Visual Studio.For example, registry values used to register your VSPackage with the Kit de développement logiciel Visual StudioVisual Studio SDK should be kept in a component separate from one used to register your VSPackage with Visual Studio. Valeurs de Registre ou des fichiers partagés vont dans un autre composant.Shared files or registry values go in yet another component.

Scénario 1 : Partagé VSPackageScenario 1: Shared VSPackage

Dans ce scénario, un VSPackage partagé (un seul binaire qui prend en charge plusieurs versions de Visual Studio est livré dans un package Windows Installer.In this scenario, a shared VSPackage (a single binary that supports multiple versions of Visual Studio is shipped in a Windows Installer package. L’inscription auprès de chaque version de Visual Studio est contrôlé par les fonctionnalités sélectionnables par l’utilisateur.Registering with each version of Visual Studio is controlled by user-selectable features. Cela signifie également que quand attribué pour séparer les fonctionnalités, chaque composant peut être sélectionné individuellement pour l’installation ou la désinstallation, donne le contrôle de l’intégration de VSPackage dans différentes versions de l’utilisateur Visual StudioVisual Studio.It also means that when assigned to separate features, each component can be selected individually for installation or uninstallation, putting the user in control of integrating the VSPackage into different versions of Visual StudioVisual Studio. (Consultez fonctionnalités du programme d’installation Windows pour plus d’informations sur l’utilisation des fonctionnalités dans les packages de programme d’installation de Windows.)(See Windows Installer Features for more information on using features in Windows Installer packages.)

Programme d’installation de VSPackage partagé VSVS Shared VSPackage installer

Comme indiqué dans l’illustration, les composants partagés sont apportées à la partie de la fonctionnalité Feat_Common, qui est toujours installée.As shown in the illustration, shared components are made part of the Feat_Common feature, which is always installed. En rendant les fonctionnalités Feat_VS2002 et Feat_VS2003 visible, les utilisateurs peuvent choisir au moment de l’installation dans les versions de Visual Studio, ils veulent le VSPackage à intégrer.By making the Feat_VS2002 and Feat_VS2003 features visible, users can choose at install-time into which versions of Visual Studio they want the VSPackage to integrate. Utilisateurs peuvent également utiliser le mode de maintenance de Windows Installer pour ajouter ou supprimer des fonctionnalités, qui dans ce cas d’ajoute ou supprime les informations d’inscription de VSPackage de différentes versions de Visual Studio.Users can also use Windows Installer maintenance mode to add or remove features, which in this case adds or removes the VSPackage registration information from different versions of Visual Studio.

Note

Définition de colonne d’affichage d’une fonctionnalité à 0 le masque.Setting a feature's Display column to 0 hides it. Une valeur de colonne de niveau faible, par exemple, 1, permet de s’assurer qu’il sera toujours installé.A low Level column value, such as 1, ensures it will always be installed. Pour plus d’informations, consultez INSTALLLEVEL propriété et fonctionnalité Table.For more information, see INSTALLLEVEL Property and Feature Table.

Scénario 2 : Mise à jour VSPackage partagéScenario 2: Shared VSPackage Update

Dans ce scénario, une version mise à jour de l’installeur de package Visual Studio dans le scénario 1 est expédiée.In this scenario, an updated version of the VSPackage installer in scenario 1 is shipped. Dans la discussion, la mise à jour ajoute la prise en charge de Visual Studio, mais il peut également être un correctif de sécurité plus simple ou pack du service de résolution de bogue.For the sake of discussion, the update adds support for Visual Studio, but it could also be a simpler security patch or bug-fix service pack. Les règles du programme d’installation Windows pour l’installation des composants les plus récents nécessitent que les composants inchangés déjà sur le système ne sont pas recopiés.Windows Installer's rules for installing newer components require that unchanged components already on the system are not recopied. Dans ce cas, un système avec la version 1.0 déjà présent remplace le composant mis à jour Comp_MyVSPackage.dll et permettre aux utilisateurs de choisir d’ajouter la nouvelle fonctionnalité Feat_VS2005 avec son composant Comp_VS2005_Reg.In this case, a system with version 1.0 already present will overwrite the updated component Comp_MyVSPackage.dll and let users choose to add the new feature Feat_VS2005 with its component Comp_VS2005_Reg.

Caution

Chaque fois qu’un VSPackage est partagé entre plusieurs versions de Visual StudioVisual Studio, il est essentiel que les versions ultérieures du VSPackage assurer la compatibilité descendante avec les versions antérieures de Visual Studio.Whenever a VSPackage is shared among multiple versions of Visual StudioVisual Studio, it is essential that subsequent releases of the VSPackage maintain backward compatibility with prior versions of Visual Studio. Où vous ne pouvez pas assurer la compatibilité descendante, vous devez utiliser les VSPackages côte à côte, privées.Where you cannot maintain backward compatibility, you must use side-by-side, private VSPackages. Pour plus d’informations, consultez prenant en charge plusieurs Versions de Visual Studio.For more information, see Supporting Multiple Versions of Visual Studio.

Programme d’installation de la mise à jour de Package VS partagé VSVS Shared VS Package Update installer

Ce scénario présente un nouveau programme d’installation VSPackage, en tirant parti de la prise en charge du programme d’installation Windows pour les mises à niveau mineures.This scenario presents a new VSPackage installer, taking advantage of Windows Installer's support for minor upgrades. Les utilisateurs installent simplement la version 1.1, et il met à niveau la version 1.0.Users simply install version 1.1 and it upgrades version 1.0. Toutefois, il n’est pas nécessaire de disposer de la version 1.0 sur le système.However, it is not necessary to have version 1.0 on the system. Le même programme d’installation installera la version 1.1 sur un système sans version 1.0.The same installer will install version 1.1 on a system without version 1.0. L’avantage de fournir des mises à niveau mineures de cette manière est qu’il n’est pas nécessaire de passer par le travail de développement d’un programme d’installation de mise à niveau et un programme d’installation complète.The advantage to provide minor upgrades in this manner is that it is not necessary to go through the work of developing an upgrade installer and a full-product installer. Un programme d’installation effectue les deux tâches.One installer does both jobs. Un correctif de sécurité ou un service pack peut à la place tirer parti des correctifs du programme d’installation de Windows.A security fix or service pack might instead take advantage of Windows Installer patches. Pour plus d’informations, consultez mises à niveau et mise à jour corrective.For more information, see Patching and Upgrades.

Scénario 3 : Côte à côte VSPackageScenario 3: Side-by-Side VSPackage

Ce scénario présente deux programmes d’installation de package Visual Studio : une pour chaque version de Visual Studio .NET 2003 et Visual Studio.This scenario presents two VSPackage installers — one for each version of Visual Studio .NET 2003 and Visual Studio. Chaque programme d’installation installe un côte à côte, ou privé, le VSPackage (celui qui est spécifiquement construit et installé une version particulière de Visual Studio).Each installer installs a side-by-side, or private, VSPackage (one that is specifically built and installed for a particular version of Visual Studio). Chaque VSPackage est dans son propre composant.Each VSPackage is in its own component. Par conséquent, chacune pouvant être traitée individuellement avec les correctifs logiciels ou de maintenance libère.Consequently, each can be individually serviced with patches or maintenance releases. La DLL VSPackage étant désormais spécifique à la version, il est en toute sécurité à ses informations d’inscription dans le même composant que la DLL.Because the VSPackage DLL is now version-specific, it is safe to include its registration information in the same component as the DLL.

Le programme d’installation de Visual Studio côte à côte VS PackageVS Side-by-Side VS Package installer

Chaque programme d’installation inclut également le code qui est partagé entre les deux programmes d’installation.Each installer also includes code that is shared between the two installers. Si le code partagé est installé dans un emplacement commun, installez les deux fichiers .msi installe le code partagé qu’une seule fois.If the shared code is installed to a common location, installing both .msi files will install the shared code only once. Le programme d’installation deuxième incrémente un décompte de références sur le composant.The second installer just increments a reference count on the component. Le décompte de références garantit que si un des VSPackages est désinstallé, le code partagé restent pour le package Visual Studio.The reference count ensures that if one of the VSPackages is uninstalled, the shared code will remain for the other VSPackage. Si le deuxième VSPackage est également désinstallé, le code partagé sera supprimé.If the second VSPackage is uninstalled as well, the shared code will be removed.

Scénario 4 : Mise à jour du VSPackage côte à côteScenario 4: Side-by-Side VSPackage Update

Dans ce scénario, votre VSPackage pour Visual Studio a subi une faille de sécurité, et vous devez émettre une mise à jour.In this scenario, your VSPackage for Visual Studio suffered from a security vulnerability and you need to issue an update. Comme dans le scénario 2, vous pouvez créer un nouveau fichier .msi qui met à jour une installation existante afin d’inclure le correctif de sécurité, ainsi que de déployer de nouvelles installations avec le correctif de sécurité déjà en place.As in scenario 2, you can create a new .msi file that updates an existing installation to include the security fix, as well as deploy new installations with the security fix already in place.

Dans ce cas, le VSPackage est un VSPackage managé installé dans le global assembly cache (GAC).In this case, the VSPackage is a managed VSPackage installed in the global assembly cache (GAC). Lorsque vous reconstruisez ce qu’il inclue le correctif de sécurité, vous devez modifier la partie de numéro de révision du numéro de version d’assembly.When you rebuild it to include the security fix, you must change the revision number portion of the assembly version number. Les informations d’inscription pour le nouveau numéro de version d’assembly remplace la version précédente, ce qui provoque Visual StudioVisual Studio pour charger l’assembly fixe.The registration information for the new assembly version number overwrites the previous version, causing Visual StudioVisual Studio to load the fixed assembly.

Le programme d’installation de Visual Studio côte à côte VS Update PackageVS Side-by-Side VS Package Update installer

Pour plus d’informations sur le déploiement d’assemblys côte à côte, consultez ce qui simplifie le déploiement et la résolution de l’enfer des DLL avec le .NET Framework.For more information on deployment of side-by-side assemblies, see Simplifying Deployment and Solving DLL Hell with the .NET Framework.

Voir aussiSee Also

Programme d’installation de WindowsWindows Installer
Prise en charge de plusieurs versions de Visual StudioSupporting Multiple Versions of Visual Studio