0 votes

Process.Start("telnet.exe") lance une exception

J'ai deux applications fonctionnant sur W2k8 R2 x64, l'une est compilée en 64 bits et l'autre en 32 bits car elle a des dépendances COM. Dans les deux, j'essaie d'appeler :

Process p = Process.Start("telnet.exe", string.Format("{0} {1}", address, port));

Dans le x64, il fonctionne parfaitement bien, mais dans le 32bit, j'obtiens une System.ComponentModel.Win32Exception ("Le système ne peut pas trouver le fichier spécifié") ?

Une idée de ce qui se passe ici ? Même si j'appelle

Process.Start(@"C:\Windows\System32\telnet.exe")

Je reçois la même exception ?

Merci,

Tom

5voto

tyranid Points 7996

Pour lancer une application 64 bits située dans le système 32 à partir d'une application 32 bits (au moins sur Vista, 2k8, 7, ne fonctionne pas sur x64 XP ou 2k3), exécutez-la depuis le répertoire sysnative, c'est-à-dire " C:\windows\sysnative\telnet.exe "(vous pouvez aussi désactiver Wow64, mais c'est généralement une mauvaise idée).

1voto

newuser Points 2714

Cela m'a rendu fou... j'avais un projet qui trouvait "telnet.exe" sans le chemin complet et un autre qui refusait de le trouver (même avec le chemin, ou qui ne l'a jamais trouvé). Ma machine de développement est 64 bits.

Le problème était la plateforme cible dans la construction.

S'il est réglé sur x86, il ne trouvera pas telnet.

le régler sur n'importe quel CPU sera trouver telnet.

parfois, vous devez le définir sur x86, ce qui permet à vos applications de voir les pilotes 32 bits (tels que les pilotes odbc) sur les plateformes 64 bits.

1voto

silveroil Points 11

Copier telnet.exe dans le dossier SysWow64

0voto

nithins Points 1983

Windows Server 2008 ne dispose pas d'un client telnet.exe 32 bits. Il installe uniquement une version 64 bits dans le répertoire Windows \system32 dossier.

0voto

Ruben Bartelink Points 23945

\live.sysinternals.com\tools\procmon.exe et/ou procexp a toujours la réponse.

Avez-vous examiné la variable d'environnement path dans le contexte de votre processus ? Pouvez-vous la préfixer avec la variable System \SysWow64 le chemin pour le faire fonctionner ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X