2009-04-08 6 views
0

Un autre développeur et moi expérimentons un comportement différent dans les exécutables C++ natifs construits avec Microsoft Visual Studio 2008, version 9.0.30729.1 SP sur des machines différentes.Comment supprimer, réinstaller et/ou trouver des informations sur les correctifs Visual Studio 2008?

Nous lions statiquement à la bibliothèque standard afin que nous ne pensons pas qu'il s'agit d'un problème de version DLL. Nous avons écarté les différences dans notre code source et les paramètres de construction. Nous avons théorisé que nous avions peut-être différents "correctifs" installés sur nos machines séparées qui affectent la génération de code ou ont peut-être des différences dans leurs implémentations de bibliothèque standard C++.

Nous avons chacun utilisé [Aide | À propos de Microsoft Visual Studio | Copier les infos] pour obtenir les informations sur la version, puis les différencier. Effectivement, nous avons trouvé quelques divergences. J'ai quelques correctifs que mon collègue n'a pas. Et il a un couple qui manque à mon installation.

est ici une entrée de correctif exemple à partir de la version info:

correctif pour Microsoft Visual Studio 2008 Professional Edition - ENU (KB953256) KB953256 Ce correctif est pour Microsoft Visual Studio 2008 Professional Edition - ENU. Si vous installez ultérieurement un service pack plus récent, ce correctif sera désinstallé automatiquement. Pour plus d'informations, visitez http://support.microsoft.com/kb/953256.

Comme vous le remarquerez, le lien fourni est mort. En fait, des quatre différences que nous avons trouvé, tous sauf un ont des liens morts:

Est-ce que quelqu'un sait comment trouver plus d'informations sur ces types de correctifs mystères? Des conseils sur ceux-ci en particulier? En deçà de chaque réinstallation complète de Visual Studio, est-ce que quelqu'un a des conseils sur la façon dont nous pourrions synchroniser nos installations séparées, peut-être en supprimant et/ou en réinstallant les correctifs?

Répondre

2

Le principal coupable de causer un comportement différent en C++ natif des applications serait probablement: KB958357

Cela semble être une version antérieure de ce qui est maintenant KB962219. Les détails sont disponibles dans cette publication sur l'équipe Visual C++ Blog: http://blogs.msdn.com/vcblog/archive/2008/12/17/vc9-sp1-hotfix-for-the-vector-function-ft-crash.aspx

Ce correctif résout effectivement 5 bugs:

  1. fonction :: échange() a été rompu par l'optimisation des petites Functor dans VC9 TR1 (le Feature Pack). Cela a cassé vecteur> dans VC9 SP1. "Broken" signifiait "compiler mais s'écrase". Vecteur non requis X pour avoir un constructeur par défaut .(Ceci est un exemple spécifique d'un bug général: vecteur>, vecteur >>, etc. ont également été touchés.)

  2. vecteur> nonconformantly requis X et Y ont des constructeurs par défaut. (Ceci est un exemple spécifique d'un bug général, voir ci-dessus.)

  3. vecteur> nonconformantly nécessaire X pour avoir un constructeur par défaut .

  4. Les distributions aléatoires ont été brisées, déclenchant des boucles infinies et émettant des résultats erronés.

Ceux qui ressemblent à des changements suffisants pour provoquer un comportement différent, mais tout dépend de votre code. Voyez si l'installation de la dernière version de ce correctif sur chaque machine résout les divergences que vous voyez.

+0

Merci! Cela l'a réparé! – jwfearn

1

Je ne suis pas sûr combien d'une aide cela est, mais voici les informations pour les différents correctifs

  • 948484 - Visual C++ 2008 SP1 conception des composants à temps pour x64
  • 953256 - visuel studio Team Explorateur SP1
  • 958357 - Semble être un patch chaud pour TR1 après Visual studio 2008 SP1 est installé

Basé sur les détails du service pack, il ressemble à une des options suivantes pourraient être les différences entre les machines

+0

Merci! C'était très utile. – jwfearn