La situation:Pourquoi Windows Vista 64 bits utilise-t-il par défaut un cmd.exe 32 bits? (Machine spécifique)
Je dois convertir notre environnement de développement actuel à partir de Windows XP 32 bits vers Windows Vista 64 bits (*). Naturellement, j'ai couru dans beaucoup d'endroits dans notre système de construction où les chemins codés en dur étaient problématiques (par exemple "C:\Program Files
" devenant "C:\Program Files (x86)
"). Heureusement, il existe une variable d'environnement %ProgramFiles%
qui correspond au répertoire approprié en fonction du processus source (32 bits ou 64 bits). J'ai donc mis à jour les scripts de construction avec %ProgramFiles%
, et j'étais sûr que ce serait la fin de tout ça.
L'environnement de génération est appelé à partir de la ligne de commande (C:\Windows\System32\cmd.exe
).
Le problème: Sur une machine spécifique (à savoir ma machine de dev au travail), il se avère que C:\Windows\System32\cmd.exe
est en fait un processus 32 bits, de sorte que les scripts trouvent la version x86
du répertoire Program Files
et tout fonctionne très bien.
Sur toutes les autres machines 64bit que je peux trouver (y compris ma machine à la maison), C:\Windows\System32\cmd.exe
est la version 64 bits, et la version 32 bits est en C:\Windows\SysWow64\cmd.exe
. Les scripts de construction ne trouvent donc rien qu'ils recherchent et échouent.
Je comprends maintenant que le 32bit cmd.exe
devrait être appelé explicitement si c'est ce dont vous avez besoin, et par défaut vous obtenez un cmd.exe
64 bits. Cas typique de WORKSFORME
...
La question est, qu'est-il arrivé à la machine où ce n'est pas vrai? Pourquoi est-ce que j'obtiens un cmd.exe
32 bits par défaut sur une machine mais pas sur d'autres? Dans tous les cas, j'exécute explicitement C:\Windows\System32\cmd.exe
depuis le menu Start|Run
mais en obtenant des résultats différents sur une seule machine. Tous courent la même édition de Vista 64bit.
Des idées ou un aperçu?
(*) S'il vous plaît accepter que je doit le faire. Je ne suis pas libre de dire pourquoi Je le fais. Ré-installer le système d'exploitation et tout à partir de zéro fonctionnerait probablement, mais il est sûrement exagéré. En outre, il était assez difficile de convaincre notre département informatique de distribuer des machines Vista!
Après vérification, le processus explorer.exe est 64bit sur toutes les machines. Je ne comprends pas comment un processus 64 bits par défaut pour lancer la version 32 bits de cmd ... :( –