Comment : déployer un projet d'installation et de déploiement
Mise à jour : novembre 2007
Cette rubrique met l'accent sur un type de projet d'installation et de déploiement. Pour plus d'informations sur ce scénario de déploiement, consultez Exemples de scénarios de déploiement.
Procédures pour déployer les DLL de bibliothèques de Visual C++ en tant qu'assemblys partagés
Création d'un projet d'installation et de déploiement
Dans le menu Fichier, cliquez sur Nouveau projet, ouvrez le nœud Autres types de projet et sélectionnez Installation et déploiement, puis cliquez sur Projet d'installation. Nommez-le et cliquez sur OK.
Remarque : Visual C++ Express ne prend pas en charge les projets d'installation. Pour redistribuer les bibliothèques Visual C++ avec les applications développées en Visual C++ Express, utilisez Visual C++ Redistributable Packages. Pour plus d'informations, consultez Comment : déployer à l'aide de XCopy.
Ajout de l'EXE et de la DLL au projet et spécification de l'emplacement d'installation sur l'ordinateur cible
Dans le menu Projet, sélectionnez Ajouter, puis cliquez sur Fichier.
Recherchez le dossier qui contient MyApplication.exe et MyLibrary.DLL et sélectionnez-les tous les deux.
Dans la fenêtre Système de fichiers, cliquez avec le bouton droit sur Dossier d'application, pointez sur Ajouter et cliquez sur Créer pour créer un nouveau dossier. Nommez-le MyLibrary.
Cliquez encore sur Dossier d'application, sélectionnez MyLibrary.DLL et faites-la glisser sur le dossier MyLibrary. Dans l'Explorateur de solutions, sous votre projet dans Détecter les dépendances, vous devez pouvoir constater que Visual Studio détecte des dépendances vis-à-vis de MFC90.dll et de MSVCR90.dll. Vous devez ajouter les modules de fusion correspondant à ces DLL.
Dans le menu Projet, pointez sur Ajouter et cliquez sur Module de fusion. Sélectionnez Microsoft_VC90_CRT_x86.msm et Microsoft_VC90_MFC_x86.msm, puis cliquez sur OK. Pour les versions debug de ces modules de fusion, sélectionnez Microsoft_VC90_DebugCRT_x86.msm et Microsoft_VC90_DebugMFC_x86.msm.
Remarque : Vérifiez que les modules policy*.msm correspondants sont incorporés dans votre projet. Par exemple, policy_9_0_microsoft_vc90_crt_x86.msm et policy_9_0_microsoft_vc90_mfc_x86.msm correspondent respectivement à Microsoft_VC90_CRT_x86.msm et Microsoft_VC90_MFC_x86.msm. Visual Studio détectera que les modules principaux dépendent de ces modules de stratégie et les répertorient sous Dépendances détectées. Si les dépendances ne sont pas détectées automatiquement, vous devrez fusionner manuellement les modules de stratégie.
Pour déployer des applications 64 bits sur un système d'exploitation 64 bits, sélectionnez le module de fusion pour la plateforme correspondante. Pour x64, sélectionnez Microsoft_VC90_CRT_x86_x64.msm et Microsoft_VC90_MFC_x86_x64.msm; pour Itanium, Microsoft_VC90_CRT_x86_ia64.msm et Microsoft_VC90_MFC_x86_ia64.msm.
Génération d'un setup.exe
- Cliquez sur Générer la solution dans le menu Générer.
Exécution de setup.exe
- Maintenant, si vous prenez le setup.exe que vous venez juste de créer et que vous l'exécutez sur un système d'exploitation qui prend en charge la liaison basée sur un manifeste des applications à leurs dépendances (Windows XP Édition familiale, Windows XP Professionnel, Windows Server 2003), il se produit les événements suivants :
Procédures pour déployer les DLL de bibliothèques de Visual C++ en tant qu'assemblys privés
Création d'un projet d'installation et de déploiement
- Dans le menu Fichier, cliquez sur Nouveau projet, ouvrez le nœud Autres types de projet et sélectionnez Installation et déploiement, puis cliquez sur Projet d'installation. Spécifiez un nom et cliquez sur OK.
Ajoutez EXE et DLL au projet et spécifiez l'endroit où ils doivent être installés sur l'ordinateur cible
Dans le menu Projet, sélectionnez Ajouter, puis cliquez sur Fichier.
Recherchez le dossier qui contient MyApplication.exe et MyLibrary.DLL et sélectionnez-les tous les deux.
Dans la fenêtre Système de fichiers, cliquez avec le bouton droit sur Dossier d'application, pointez sur Ajouter et cliquez sur Créer pour créer un nouveau dossier. Nommez-le MyLibrary.
Cliquez encore sur Dossier d'application, sélectionnez MyLibrary.DLL et faites-la glisser sur le dossier MyLibrary. Dans l'Explorateur de solutions, sous votre projet dans Détecter les dépendances, vous devez pouvoir constater que Visual Studio détecte des dépendances vis-à-vis de MFC90.dll et de MSVCR90.dll. Vous devez ajouter un dossier correspondant pour ces assemblys dans le dossier \vc\redist.
Remarque : Pour les versions debug, utilisez \vc\redist\debug_nonredist.
Ouvrez %PROGDIR%\Microsoft Visual Studio 8\VC\Redist\x86 dans l'Explorateur Windows.
En maintenant enfoncée la touche Ctrl, cliquez sur les dossiers Microsoft.VC90.CRT et Microsoft.VC90.MFC. Faites glisser ces dossiers sur Visual Studio et déposez-les dans le dossier Application.
Répétez l'étape 6, mais cette fois faites glisser les dossiers sur le dossier MyLibrary.
Vous allez peut-être voir s'afficher un message de Visual Studio indiquant que vous êtes en train d'inclure une DLL qui fait partie d'un module de fusion. C'est exactement ce que vous souhaitez faire. Par conséquent, cliquez Non pour indiquer que vous ne souhaitez pas utiliser de MSM pour cette DLL.
Vous n'avez besoin de mfcm90.dll et de sa version Unicode mfcm90u.dll que si vous effectuez une intégration MFC/Winforms. Sinon, vous pouvez supprimer ces DLL de votre installation.
Vous n'avez besoin de msvcm90.dll que si vous utilisez le code managé dans vos applications, par exemple, si vos projets sont générés avec /clr ou /clr:pure.
Si mfcm90.dll, mfcm90u.dll, ou msvcm90.dll est inclus dans le projet d'installation, une installation du .NET Framework est requise. Votre installation ne fonctionnera pas sans que .NET Framework 2.0 soit installé sur l'ordinateur cible.
Pour l'installation du débogage, remplacez CRT par DebugCRT et MFC par DebugMFC dans l'étape précédente.
Pour déployer des applications 64 bits sur des systèmes d'exploitation 64 bits, utilisez \vc\redist\amd64 ou \vc\redist\ia64.
Génération d'un setup.exe
- Cliquez sur Générer la solution dans le menu Générer.
Exécution de setup.exe
Maintenant, si vous prenez le setup.exe que vous venez juste de créer et que vous l'exécutez sur un système d'exploitation qui prend en charge la liaison basée sur un manifeste (Windows XP Édition familiale, Windows XP Professionnel, Windows Server 2003), il se produit les événements suivants :
Votre application est installée dans le dossier cible spécifié.
L'application et la DLL utilisent pendant l'exécution les assemblys CRT et MFC des dossiers Microsoft.VC90.CRT et Microsoft.VC90.MFC.
Sur un système d'exploitation qui ne prend pas en charge la liaison basée sur un manifeste (Windows 2000), cette méthode de déploiement n'est pas recommandée. Si vous essayez de déployer des assemblys Visual Studio en tant qu'assemblys privés sur ces systèmes d'exploitation en suivant les procédures décrites précédemment, le chargeur du système d'exploitation ne pourra pas localiser les DLL CRT et MFC. Les dossiers qui contiennent Microsoft.VC90.CRT et Microsoft.VC90.MFC doivent être ajoutés à la variable d'environnement PATH pour que le chargeur puisse les localiser. Sous ce mode, il se produit les événements suivants :
Votre application est installée dans le dossier cible spécifié.
Le chargeur du système trouvera au moment de l'exécution, l'emplacement des assemblys privés CRT et MFC à partir des dossiers Microsoft.VC90.CRT et Microsoft.VC90.MFC par l'intermédiaire de la variable d'environnement PATH.
Voir aussi
Tâches
Comment : déployer à l'aide de XCopy