Déploiement et dépendances

Mise à jour : novembre 2007

Les outils de déploiement de Visual Studio détectent automatiquement les dépendances et les ajoutent au projet de déploiement dès qu'un groupe de sorties de projet, un assembly ou un module de fusion est ajouté au projet. Il existe cependant des cas où les dépendances ne peuvent pas être détectées.

Conseil :

Au lieu d'ajouter des assemblys directement au projet de déploiement, il vaut mieux ajouter un groupe de sorties de projet contenant l'assembly. Les outils de déploiement peuvent plus facilement détecter les dépendances d'un groupe de sorties de projet.

Pour les assemblys, toutes les dépendances des autres assemblys sont détectées. Cependant, si l'assembly fait référence à un composant non managé (par exemple, COM .dll), toutes les dépendances de ce composant ne seront pas détectées. De la même manière, les fichiers ajoutés directement au projet de déploiement peuvent posséder des dépendances non détectées. D'un autre côté, les fichiers dépendants sont généralement nécessaires à l'exécution de l'application, mais ils n'empêchent pas l'exécution du programme d'installation.

Pour éviter ce problème, vous devez tout d'abord déterminer le type de dépendances que vous avez et entreprendre l'action adéquate :

  • Vous pouvez faire référence à un composant qui peut uniquement être installé en tant que partie d'un autre produit, par exemple, le contrôle Navigateur Web (shdocvw.dll), installé comme partie intégrante d'Internet Explorer.

    Dans ce cas, vous devez exclure le composant du projet de déploiement et ajouter une condition de lancement qui contrôle le composant sur l'ordinateur cible et empêche l'installation si ce composant est introuvable. L'utilisateur final doit installer le produit fournissant le composant avant d'installer votre application.

  • Vous pouvez ajouter un composant non managé qui n'expose pas la totalité de ses dépendances, par exemple, les MFC (Microsoft Foundation Classes) qui n'incluent pas de fichier satellite localisé comme dépendance.

    Dans ce cas, vous devez déterminer toutes les dépendances possibles et les intégrer au projet de déploiement. Vous devez contrôler la documentation du composant ou contacter l'auteur du composant afin d'obtenir une liste des dépendances.

    Remarque :

    La plupart des outils de contrôle des dépendances, tels que Depends.exe, ne trouvent que des dépendances à liaison anticipée ; les dépendances à liaison tardive apparaissent uniquement au moment de l'exécution.

  • Vous pouvez faire référence à un assembly possédant une dépendance à un composant non managé, par exemple, System.Data.dll, qui a une dépendance aux composants MDAC (Microsoft Data Access Components), version 2,8. Pour plus d'informations, consultez Comment : ajouter une condition de lancement pour MDAC (Microsoft Data Access Components).

    Pour vérifier que tous les fichiers dépendants sont installés, vous pouvez ajouter un module de fusion contenant le composant et ses dépendances. Vous pouvez contacter l'auteur du composant pour voir si le module de fusion est disponible. Pour un grand nombre de composants Microsoft, les modules de fusion sont disponibles sur le site Web de Microsoft.

    Si un module de fusion n'est pas disponible, vous pouvez ajouter une condition de lancement pour contrôler le composant au cours de l'installation et empêcher l'installation si ce composant est introuvable.

Voir aussi

Tâches

Comment : exclure des fichiers d'un groupe de sorties de projet

Comment : ajouter une condition de lancement pour MDAC (Microsoft Data Access Components)

Autres ressources

Gestion des conditions de lancement lors d'un déploiement