Comment VS compile-t-il les applications de la console pour afficher "Appuyez sur une touche pour continuer"?
Quand je développe une application console C# (qui va s'exécuter sur un serveur) et je l'exécute à l'aide de Visual Studio, j'obtiens un "Appuyez sur une touche pour continuer" message avant que le programme se termine.
Cependant, quand j'ai compiler le même code C# de fichier manuellement à l'aide de CSC, mon programme n'affiche pas ce message qui se termine immédiatement après la fin de sa logique.
Personne ne sait comment je peux faire la même fonction lors de la compilation du code, sans l'aide de VS et SANS changer le code C# de toute l'ajout d'un ReadLine()?
Mise à JOUR : Le même message apparaissait lorsque j'ai appris le C#, j'ai l'habitude d'utiliser TextPad avec le SCC, et ce message apparaissait sans ajouter de tout Écrire(en Ligne)/Lire(Ligne) appels
source d'informationauteur Moayad Mardini
Vous devez vous connecter pour publier un commentaire.
Vous pouvez écrire un script batch qui exécute le fichier exe pour vous et invite l'utilisateur à appuyer sur une touche.
Le lot script devrait ressembler à quelque chose comme ceci:
Ce n'est pas possible. À l'invite à appuyer sur une touche quelconque est généré par Visual Studio lors de l'exécution d'une application console. Il ne fait pas partie de votre programme.
Le seul moyen est d'utiliser la Console.Read() dans votre code
Mise à JOUR: concernant votre remarque sur l'utilisation de TextPad: je ne suis pas familier avec TextPad, mais je ne serais pas surpris si TextPad fait la même chose que Visual Studio lors de l'exécution d'une application console.
Vous pouvez faire cela...
De cette façon, le programme ne va pas attendre l'entrée de la console lorsque vous générez votre application comme une "Libération".
Ce comportement n'a rien à voir avec le compilateur que vous utilisez. Lors de la compilation avec Visual Studio, l'exécution de l'exécutable en dehors de Visual Studio seront effectivement effectuer exactement le même que lorsque vous compilez avec le SCC sur la ligne de commande. Visual Studio (et TextPad) est l'ajout de la logique d'ajouter le "Appuyez sur une touche pour continuer" message sur la console.
Si vous voulez que votre demande de rester ouvert, vous aurez besoin de faire quelque chose comme de la Console.ReadLine() pour bloquer l'exécution de sorte que votre application n'a pas terminé son exécution.
Vous pourriez faire, si vous voulez la même fonctionnalité lors du débogage.
La question est de savoir pourquoi vous voulez avoir ce comportement? Le Appuyez sur une touche pour continuer de fonctionnalité est là pour que vous puissiez voir le résultat de votre demande. En revanche, si vous construisez votre code et l'exécuter à partir d'une invite de commande (console), ce ne sera pas fermer lorsque l'application de finitions, de sorte que vous pouvez voir la sortie.
Comme indiqué ci-dessus, Appuyez sur n'importe quelle touche pour continuer est une fonctionnalité de l'IDE et non liées au code que vous écrivez. Le but de cette fonctionnalité est de vous permettre de voir la sortie de la console de l'application.