2010-08-25 3 views
0

Je suis confronté à un problème d'installation .NET 4.0 très intéressant. J'ai un petit programme qui cible .NET 2.0. Je cours Win7 x64, qui a .NET 3.5 pré-installé. Après avoir installé .NET 4.0, le programme cesse de fonctionner. Il essaie d'utiliser une fonction qui était obsolète dans .NET 4.0, mais selon variousarticles que j'ai lu, la technologie côte à côte in-process de .NET 4.0 devrait permettre à mon programme de continuer à fonctionner sur le .NET 2.0 CLR.Le programme d'installation .NET 4.0 laisse mon ordinateur dans un état à moitié brisé

Il semble que le .NET 4 installer laisse ma machine dans un état quelque peu brisé, même si le programme d'installation se termine avec succès. La version de mscoree.dll (la principale .NET runtime dll) installée dans c: \ windows \ system32 et c: \ windows \ syswow64 était une version 2.x après l'installation de .NET 4.0. J'ai essayé de copier le 4.0 mscoree.dlls correctement installé à partir d'une autre machine qui exécutait exactement le même programme d'installation, et après que mon programme a fonctionné comme il se doit.

Je n'arrive pas à comprendre pourquoi cela se produit et pourquoi je ne peux le reproduire que sur une machine. Heureusement, je peux reproduire le problème de manière très fiable. La désinstallation de .NET 4 résout également le problème, mais j'aimerais pouvoir exécuter mon code avec succès sans suggérer que les utilisateurs n'installent pas .NET 4.0.

Avez-vous des idées sur la raison pour laquelle cela pourrait se produire? Merci!

+0

Quand vous dites "arrête de travailler", que voulez-vous dire précisément? Ne compile pas? Crashes au démarrage? Plantages lorsque la fonction est appelée? – PeterAllenWebb

+0

Avez-vous essayé de répliquer ceci dans une machine virtuelle? –

+0

Mscoree aurait bien pu être utilisé lors de l'installation. Avez-vous redémarré? –

Répondre

0

J'ai été en contact avec quelques personnes chez Microsoft, et j'ai des informations très intéressantes.

Mon OS est: v6.1.7600.16384 Le RTM pour construire Win7 est: 6.1.7600.16385

Je suis en cours d'exécution d'une version pré-RTM de Win7. Sous Windows 7, mscoree.dll est mis à jour par une mise à jour de système d'exploitation installée en chaîne par le programme d'installation .NET 4. Selon les personnes à qui j'ai parlé: "La mise à jour du système d'exploitation cible explicitement la version RTM de Windows 7 et sera intégrée dans tous les futurs SP. Elle renvoie une valeur de retour" non applicable "à notre installateur qui est destiné à signifie que la mise à jour est déjà appliquée ou intégrée au système d'exploitation, c'est pourquoi l'installateur .NET a réussi. " Donc, il semble que la mise à niveau vers la version RTM résoudra ce problème.

Questions connexes