Les redistribuables Microsoft Visual Studio C++

ram-0000

Un redistribuable Microsoft Visual Studio C++ (ou redistributable dans la littérature anglaise) est un ensemble de bibliothèques à installer sur les machines qui vont exécuter des programmes générés par un environnement Microsoft Visual Studio. Le but de cet article est de faire le tour de ce qu'il y a à connaitre sur ces redistribuables.

Votre point de vue sur cet article m'intéresse, alors après votre lecture, n'hésitez pas à commenter et à partager votre avis dans la discussion prévue à cet effet : Commentez ♪

- Titre : Les redistribuables Microsoft Visual Studio C++

- Auteur : ram-0000

- Parution : 2 septembre 2011

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2008-2011 ram-0000. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Droits de diffusion permanents accordés à Developpez LLC.

Sommaire

- 1. Qu'est-ce qu'un redistribuable ?

- 2. Quelle est la liste des redistribuables ?

- 3. De quel redistribuable ai-je besoin ?

- 4. Quand est-ce que les redistribuables ne sont pas nécessaires ?

- 5. Puis-je désinstaller les redistribuables ?

- 6. Où puis-je trouver les redistribuables ?

- 7. Puis-je utiliser librement ces redistribuables ?

- 8. Puis-je redistribuer ces redistribuables ?

- 9. Comment savoir si un redistribuable est installé ?

- 10. Conclusion

1 - Qu'est-ce qu'un redistribuable ?

Dès les débuts de la programmation, il était souvent nécessaire d'installer une ou plusieurs bibliothèques supplémentaires afin de permettre au programme compilé dans un environnement particulier de s'exécuter sur une autre machine ne possédant pas cet environnement de développement.

Les plus anciens se rappellent certainement des "runtime visual basic" qui permettaient d'exécuter ces programmes réalisés en basic compilé.

Un redistribuable Microsoft Visual C++ installe les composants nécessaires du runtime des bibliothèques Visual C++ pour exécuter des applications développées en Visual C++ sur un ordinateur sur lequel Visual Studio C++ n'est pas installé.

Il installe les composants du runtime des bibliothèques C Runtime (CRT), Standard C++, ATL, MFC, OpenMP et MSDIA.

2 - Quelle est la liste des redistribuables ?

Les redistribuables Visual Studio C++ concernent uniquement les programmes développés et générés avec l'environnement Visual Studio et écrits en C++.

Il existe un redistribuable pour chacune des versions de Visual Studio et aussi un redistribuable par type de plateforme supportée.

Les différentes versions de redistribuables concernent :

- Visual Studio 2005 ;

- Visual Studio 2005 SP1 ;

- Visual Studio 2005 SP1 avec le correctif de sécurité ATL ;

- Visual Studio 2005 SP1 avec le correctif de sécurité MFC ;

- Visual Studio 2008 ;

- Visual Studio 2008 SP1 ;

- Visual Studio 2008 SP1 avec le correctif de sécurité ATL ;

- Visual Studio 2008 SP1 avec le correctif de sécurité MFC ;

- Visual Studio 2010 ;

- Visual Studio 2010 avec le correctif de sécurité MFC ;

- Visual Studio 2010 SP1 ;

- Visual Studio 2010 SP1 avec le correctif de sécurité MFC.

Les plateformes supportées sont :

- les architectures 32 bits (suffixe x86) ;

- les architectures 64 bits (suffixe x64) ;

- les architectures Itanium (suffixe IA64).

On voit donc qu'au total, il existe pas moins de 36 versions différentes de redistribuables (cet article fait volontairement abstraction des versions précédentes de Visual Studio).

3 - De quel redistribuable ai-je besoin ?

Le redistribuable à installer est imposé par le développeur et par l'environnement de développement utilisé pour générer le programme. Si un programme est généré en utilisant un environnement Visual Studio 2005 SP1, alors il faut impérativement installer un redistribuable Visual Studio 2005 SP1. Il est totalement inutile d'installer les redistribuables Visual Studio 2008 et 2010 pour ce programme.

Une fois que la version de Visual Studio est identifiée, il faut installer le redistribuable qui correspond à la plateforme hardware cible spécifiée lors de la génération du programme. C'est-à-dire que si vous êtes sur une machine 64 bits (x64) et que le programme n'a été compilé qu'en version 32 bits (x32), il faut installer le redistribuable 32 bits. Encore une fois, le choix du développeur lors de la génération est prépondérant.

4 - Quand est-ce que les redistribuables ne sont pas nécessaires ?

Les redistribuables ne sont pas nécessaires quand le projet Visual Studio est compilé en mode statique. Cette option est positionnée dans les options du projet, dans l'onglet C++, l'option génération de code. Les redistribuables sont nécessaires avec l'option /MD. Il ne sont pas nécessaires avec l'option /MT.

Options de compilations du projet

5 - Puis-je désinstaller les redistribuables ?

Oui, vous pouvez tout à fait désinstaller les redistribuables installés sur votre machine mais attention, la désinstallation du redistribuable empêchera l'exécution correcte du programme.

De plus, si ce redistribuable est utilisé par d'autres applications, la désinstallation de ce redistribuable empêchera l'exécution de ces applications.

C'est pour cette raison que les programmes d'installation (setup) ajoutent les redistribuables sur la machine s'ils ne sont pas présents lors de la phase d'installation mais ne les suppriment pas lors de la phase de désinstallation. C'est à l'administrateur de la machine de faire cette action manuellement.

6 - Où puis-je trouver les redistribuables ?

Les redistribuables peuvent être téléchargés librement sur le site de Microsoft. Leur nom générique est "vcredist".

Pour votre confort, je les ai aussi téléchargés et triés, vous pouvez les trouver dans le tableau suivant :

Redistribuable

Architecture

Fichier

URL Microsoft

Date

Visual Studio 2005

x86

2005 vcredist_x86.exe

http://www.microsoft.com/download/en/details.aspx?id=3387

10/04/2006

x64

2005 vcredist_x64.exe

http://www.microsoft.com/download/en/details.aspx?id=21254

10/04/2006

IA64

2005 vcredist_IA64.exe

http://www.microsoft.com/download/en/details.aspx?id=16326

10/04/2006

Visual Studio 2005 SP1

x86

2005 SP1 vcredist_x86.exe

http://www.microsoft.com/download/en/details.aspx?id=5638

27/08/2007

x64

2005 SP1 vcredist_x64.exe

http://www.microsoft.com/download/en/details.aspx?id=18471

28/08/2007

IA64

2005 SP1 vcredist_IA64.exe

http://www.microsoft.com/download/en/details.aspx?id=13360

28/08/2007

Visual Studio 2005 SP1 ATL

x86

2005 SP1 ATL vcredist_x86.exe

http://www.microsoft.com/download/en/details.aspx?id=14431

20/09/2010

x64

2005 SP1 ATL vcredist_x64.exe

http://www.microsoft.com/download/en/details.aspx?id=14431

20/09/2010

IA64

2005 SP1 ATL vcredist_IA64.exe

http://www.microsoft.com/download/en/details.aspx?id=14431

20/09/2010

Visual Studio 2005 SP1 MFC

x86

2005 SP1 MFC vcredist_x86.exe

http://www.microsoft.com/download/en/details.aspx?id=26347

07/06/2011

x64

2005 SP1 MFC vcredist_x64.exe

http://www.microsoft.com/download/en/details.aspx?id=26347

07/06/2011

IA64

2005 SP1 MFC vcredist_IA64.exe

http://www.microsoft.com/download/en/details.aspx?id=26347

07/06/2011

Visual Studio 2008

x86

2008 vcredist_x86.exe

http://www.microsoft.com/download/en/details.aspx?id=29

29/11/2007

x64

2008 vcredist_x64.exe

http://www.microsoft.com/download/en/details.aspx?id=15336

29/11/2007

IA64

2008 vcredist_IA64.exe

http://www.microsoft.com/download/en/details.aspx?id=4887

29/11/2007

Visual Studio 2008 SP1

x86

2008 SP1 vcredist_x86.exe

http://www.microsoft.com/download/en/details.aspx?id=5582

16/09/2008

x64

2008 SP1 vcredist_x64.exe

http://www.microsoft.com/download/en/details.aspx?id=2092

09/08/2008

IA64

2008 SP1 vcredist_IA64.exe

http://www.microsoft.com/download/en/details.aspx?id=19823

09/08/2008

Visual Studio 2008 SP1 ATL

x86

2008 SP1 ATL vcredist_x86.exe

http://www.microsoft.com/download/en/details.aspx?id=11895

29/09/2010

x64

2008 SP1 ATL vcredist_x64.exe

http://www.microsoft.com/download/en/details.aspx?id=11895

29/09/2010

IA64

2008 SP1 ATL vcredist_IA64.exe

http://www.microsoft.com/download/en/details.aspx?id=11895

29/09/2010

Visual Studio 2008 SP1 MFC

x86

2008 SP1 MFC vcredist_x86.exe

http://www.microsoft.com/download/en/details.aspx?id=26368

07/06/2011

x64

2008 SP1 MFC vcredist_x64.exe

http://www.microsoft.com/download/en/details.aspx?id=26368

07/06/2011

IA64

2008 SP1 MFC vcredist_IA64.exe

http://www.microsoft.com/download/en/details.aspx?id=26368

07/06/2011

Visual Studio 2010

x86

2010 vcredist_x86.exe

http://www.microsoft.com/download/en/details.aspx?id=5555

12/04/2010

x64

2010 vcredist_x64.exe

http://www.microsoft.com/download/en/details.aspx?id=14632

12/04/2010

IA64

2010 vcredist_IA64.exe

http://www.microsoft.com/download/en/details.aspx?id=2054

12/04/2010

Visual Studio 2010 MFC

x86

2010 MFC vcredist_x86.exe

http://www.microsoft.com/download/en/details.aspx?id=21576

13/04/2011

x64

2010 MFC vcredist_x64.exe

http://www.microsoft.com/download/en/details.aspx?id=21576

13/04/2011

IA64

2010 MFC vcredist_IA64.exe

http://www.microsoft.com/download/en/details.aspx?id=21576

13/04/2011

Visual Studio 2010 SP1

x86

2010 SP1 vcredist_x86.exe

http://www.microsoft.com/download/en/details.aspx?id=8328

03/03/2011

x64

2010 SP1 vcredist_x64.exe

http://www.microsoft.com/download/en/details.aspx?id=13523

03/03/2011

IA64

2010 SP1 vcredist_IA64.exe

http://www.microsoft.com/download/en/details.aspx?id=21051

03/03/2011

Visual Studio 2010 SP1 MFC

x86

2010 SP1 MFC vcredist_x86.exe

http://www.microsoft.com/download/en/details.aspx?id=26999

09/08/2011

x64

2010 SP1 MFC vcredist_x64.exe

http://www.microsoft.com/download/en/details.aspx?id=26999

09/08/2011

IA64

2010 SP1 MFC vcredist_IA64.exe

http://www.microsoft.com/download/en/details.aspx?id=26999

09/08/2011

7 - Puis-je utiliser librement ces redistribuables ?

Oui.

8 - Puis-je redistribuer ces redistribuables ?

Oui, il est tout à fait légal d'inclure un ou plusieurs redistribuables dans un programme d'installation.

9 - Comment savoir si un redistribuable est installé ?

Pour cela, il y a plusieurs possibilités.

Tout d'abord, il est possible d'utiliser le gestionnaire des programmes et applications installés (dans le panneau de configuration), les redistribuables sont affichés dans la liste.

Redistribuables installés

Il est aussi possible de le faire par programmation, chaque version de redistribuable et chaque plateforme possédant un GUID spécifique. Il suffit de connaitre le GUID pour savoir si le redistribuable est installé.

La clé de registre à interroger est HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\[GUID] ou, pour les redistribuables 32 bits sur une machine 64 bits, la clé de registre HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\[GUID].

Si cette clé existe, le redistribuable concerné est installé.

La méthode d'identification des redistribuables par leurs GUID est déconseillée par Microsoft et n'est pas documentée mais elle fonctionne.

Le tableau suivant synthétise les GUID de tous les redistribuables pour toutes les plateformes. Encore une fois, les versions antérieures à Visual Studio 2005 sont ignorées.

La colonne Version du tableau contient la valeur de la clé de registre HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\[GUID]\DisplayVersion qui est censée être la version du redistribuable.

Redistribuable

Architecture

GUID

Version

Visual Studio 2005

x86

{a49f249f-0c91-497f-86df-b2585e8e76b7}

8.0.50727.42

x64

{6e8e85e8-ce4b-4ff5-91f7-04999c9fae6a}

8.0.50727.42

IA64

{03ed71ea-f531-4927-aabd-1c31bce8e187} (non vérifié)

Inconnu

Visual Studio 2005 SP1

x86

{7299052b-02a4-4627-81f2-1818da5d550d}

8.0.56336

x64

{071c9b48-7c32-4621-a0ac-3f809523288f}

8.0.56336

IA64

{0f8fb34e-675e-42ed-850b-29d98c2ece08} (non vérifié)

Inconnu

Visual Studio 2005 SP1 ATL

x86

{837b34e3-7c30-493c-8f6a-2b0f04e2912c}

8.0.59193

x64

{6ce5bae9-d3ca-4b99-891a-1dc6c118a5fc}

8.0.59192

IA64

{85025851-a784-46d8-950d-05cb3ca43a13} (non vérifié)

Inconnu

Visual Studio 2005 SP1 MFC

x86

{710f4c1c-cc18-4c49-8cbf-51240c89a1a2}

8.0.61001

x64

{ad8a2fa1-06e7-4b0d-927d-6e54b3d31028}

8.0.61000

IA64

Inconnu

Inconnu

Visual Studio 2008

x86

{ff66e9f6-83e7-3a3e-af14-8de9a809a6a4}

9.0.21022

x64

{350aa351-21fa-3270-8b7a-835434e766ad}

9.0.21022

IA64

{2b547b43-db50-3139-9ebe-37d419e0f5fa} (non vérifié)

Inconnu

Visual Studio 2008 SP1

x86

{9a25302d-30c0-39d9-bd6f-21e6ec160475}

9.0.30729

x64

{8220eefe-38cd-377e-8595-13398d740ace}

9.0.30729

IA64

{5827ece1-aeb0-328e-b813-6fc68622c1f9} (non vérifié)

Inconnu

Visual Studio 2008 SP1 ATL

x86

{1f1c2dfc-2d24-3e06-bcb8-725134adf989}

9.0.30729.4148

x64

{4b6c7001-c7d6-3710-913e-5bc23fce91e6}

9.0.30729.4148

IA64

{977ad349-c2a8-39dd-9273-285c08987c7b} (non vérifié)

Inconnu

Visual Studio 2008 SP1 MFC

x86

{9be518e6-ecc6-35a9-88e4-87755c07200f}

9.0.30729.6161

x64

{5fce6d76-f5dc-37ab-b2b8-22ab8cedb1d4}

9.0.30729.6161

IA64

Inconnu

Inconnu

Visual Studio 2010

x86

{196bb40d-1578-3d01-b289-befc77a11a1e}

10.0.30319

x64

{da5e371c-6333-3d8a-93a4-6fd5b20bcc6e}

10.0.30319

IA64

{c1a35166-4301-38e9-ba67-02823ad72a1b} (non vérifié)

Inconnu

Visual Studio 2010 MFC

x86

{196bb40d-1578-3d01-b289-befc77a11a1e}

10.0.30319

x64

{da5e371c-6333-3d8a-93a4-6fd5b20bcc6e}

10.0.30319

IA64

Inconnu

Inconnu

Visual Studio 2010 SP1

x86

{f0c3e5d1-1ade-321e-8167-68ef0de699a5}

10.0.40219

x64

{1d8e6291-b0d5-35ec-8441-6616f567a0f7}

10.0.40219

IA64

{88c73c1c-2de5-3b01-afb8-b46ef4ab41cd} (non vérifié)

Inconnu

Visual Studio 2010 SP1 MFC

x86

{f0c3e5d1-1ade-321e-8167-68ef0de699a5}

10.0.40219

x64

{1d8e6291-b0d5-35ec-8441-6616f567a0f7}

10.0.40219

IA64

Inconnu

Inconnu

Comme ce tableau le montre, toutes les informations des redistribuables concernant les plateformes Itanium sont soit non vérifiées, soit inconnues. Si quelqu'un possède une machine avec ce type d'architecture, il peut me contacter afin de m'aider à compléter ce tableau.

Contrairement à ce qui est dit un peu plus haut dans ce paragraphe, il est impossible de distinguer le redistribuable Visual Studio 2010 du redistribuable Visual Studio 2010 avec mise à jour de sécurité MFC. Tous les deux s'enregistrent avec le même GUID et affichent la même version. Cette remarque est aussi valable pour les redistribuables Visual Studio 2010 SP1 et Visual Studio 2010 SP1 avec mise à jour de sécurité MFC. Dommage !

10 - Conclusion

Cet article est maintenant terminé, n'hésitez pas à le commenter dans la discussion prévue à cet effet : Commentez

Je tiens à remercier dourouc05 et Maxime Gault pour l'aide qu'ils m'ont apportée lors de la rédaction de cet article.