Je suis un problème avec la construction d'une application dans Visual Studio 2008. Je l'ai déclaré ce qui suit dans mes propriétés du projet:Obtenir la mauvaise version d'exécution C dans mes fichiers manifest (Visual Studio 2008)
_BIND_TO_CURRENT_MFC_VERSION = 1 _BIND_TO_CURRENT_CRT_VERSION = 1 = 1 _BIND_TO_CURRENT_ATL_VERSION
Lorsque je construis ma demande en VS2008 il génère un fichier intermediate.manifest qui contient:
<dependentAssembly>
<assemblyIdentity type='win32' name='Microsoft.VC90.CRT' version='9.0.30729.1' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
</dependentAssembly>
Maintenant, cette machine a des DLL d'exécution C plus récentes installées (la version 9.0.30729.4148 peut être trouvée dans le dossier WinSxS). Les définitions de pré-processeur ci-dessus sont censées dire à VS d'utiliser les dernières DLL d'exécution, mais cela ne semble pas le faire. Est-ce que quelqu'un est capable d'expliquer pourquoi dev studio ne montrera pas la version plus récente de ces DLL dans le manifeste? Je peux construire la même application sur d'autres machines et obtenir le bon numéro dans le fichier manifeste, donc cela doit être quelque chose de particulier à la configuration de cette machine, mais je ne sais pas quoi.
La machine sur laquelle se trouve le problème est un serveur Windows 2003 SP2. Quelqu'un peut-il faire la lumière sur la façon dont dev studio fonctionne sur la dernière version d'exécution?
Merci, Al.
Hans - merci pour ce lien, j'ai installé la mise à jour redist sur mon serveur Windows 2003 mais le fichier crtassem.h reste le même, avec 30729.1 comme version d'assemblage. J'ai VS2008 installé sur le lecteur D sur ce serveur plutôt que le C plus normal, sûrement que ne pouvait pas être le problème, pourrait-il? –
Je ne sais pas. Cela semble aussi bien qu'une explication. –
J'ai manuellement édité le fichier crtassem.h dans mon dossier VC \ include pour mettre à jour la définition _CRT_ASEMBLY_VERSION à 9.0.30729.4148 et cela entraîne la mise à jour de la version d'exécution correcte dans le fichier manifeste. Pas tout à fait heureux de modifier manuellement les fichiers d'inclusion du système, mais je ne semble pas avoir beaucoup de choix. Pensez que je vais copier le fichier crtassem.h (et mfcassem.h aussi, pour obtenir cette référence) depuis une machine qui l'a correctement appliquée. Merci de votre aide! Al. –