Scénarios d’installation du package VSVSPackage Setup Scenarios

Il est important de votre programme d’installation de VSPackage 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é dans le futur, ou vous pouvez modifier une stratégie d’entreprise qui nécessite la prise en charge le contrôle de version côte à côte approfondie.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 prise en charge de 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 les installations de votre VSPackage partagées ou côte à côte.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 le 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 choix uniquement, mais ils sont présentés 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 de confidentialité et de partageComponents, Privacy, and Sharing

Créer des composants indépendantsMake your components independent

Une fois que vous identifiez et remplissez un composant, attribuer 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 résultant 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 accordée en apportant de 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 qui régissent les composants, consultez la modification du Code du composant et que se passe-t-il si les règles de composant sont interrompues ?.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 d’un composantDo not mix shared and private resources in a component

Décompte de références se produit au niveau du composant.Reference counting occurs on the component level. Par conséquent, des ressources partagées et privées dans un composant de mélange rend impossible à mettre à jour des ressources privés, tel qu’un fichier exécutable, sans également remplacer des 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 doit être conservée dans un composant distinct de celui utilisé pour inscrire votre VSPackage 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 encore un autre composant.Shared files or registry values go in yet another component.

Scénario 1 : VSPackage partagéScenario 1: Shared VSPackage

Dans ce scénario, un VSPackage partagé (un seul fichier binaire qui prend en charge plusieurs versions de Visual Studio est fourni 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 lorsque assignés à 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 du 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 visibles, les utilisateurs peuvent choisir au moment de l’installation dans les versions de Visual Studio qu’ils souhaitent le VSPackage pour 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 ajoute ou supprime les informations sur le package d’inscription à partir de différentes versions de Visual Studio qui dans ce cas.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

La 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 bas, comme 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 Table des fonctionnalités.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’installer dans le scénario 1 VSPackage est fournie.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 requièrent que les composants inchangées déjà présent 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 sera remplacer le composant de mise à 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.

Attention

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és.Where you cannot maintain backward compatibility, you must use side-by-side, private VSPackages. Pour plus d’informations, consultez prise en charge de 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, tirant parti de la prise en charge de Windows Installer 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 pour fournir des mises à niveau mineures de cette manière, 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 de Windows Installer.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 VSPackage : 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 package Visual Studio est dans son propre composant.Each VSPackage is in its own component. Par conséquent, chacun pouvant être traitée individuellement avec les correctifs ou de gestion des mises à jour.Consequently, each can be individually serviced with patches or maintenance releases. La DLL VSPackage est désormais spécifique à la version, il est donc plus sûr inclure les informations d’enregistrement dans le même composant en tant 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 VS 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 nombre 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 désinstallé ainsi, 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 package VS 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). Quand vous le régénérez pour inclure 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, à l’origine 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.

Programme d’installation de la mise à jour de Package de VS côte à côte VSVS 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 des DLL Hell 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