En évitant d'appuyer sur une touche pour continuer” lors de l'exécution de l'application de la console de Visual Studio
Lors de l'exécution d'une application console dans Visual Studio via "exécuter sans Débogage" (Ctrl+F5), la console reste ouverte à la fin de la course de demander à
Appuyez sur n'importe quelle touche pour continuer . . .
nécessitant donc pour activer la fenêtre et appuyez sur une touche. Parfois, ce n'est pas appropriée.
Pourquoi c'est important:
Au moment même où j'écris de la sérialisation json code, mon travail, qui va comme ceci:
- adapter le code c#
- exécuter une application console qui écrit de fichier.json
- vue.json dans le navigateur avec un json viewer
le faire encore et encore, pas besoin de déboguer n'importe quoi, juste le parage de la sérialisation et de vérifier la production est bonne.
Il est des flux de travail, où le "appuyez sur n'importe quelle ..." comportement est gênant car il nécessite les étapes
- activer la fenêtre de la console
- appuyez sur la touche
.
Pas de réponses:
- Démarrage de l'application en dehors de la VS dans une autre console n'est pas une réponse.
- Dire, vous n'avez pas besoin de cela.
Serait automatiquement l'exécution de l'application après chaque version acceptable? I. e. ensemble
"$(TargetPath)$"
que le post-construction de la ligne de commande.thx reima, "$(TargetPath)" est en fait une bonne idée 😉
Il a été un moment depuis que j'ai écrit une application console, mais ne changer de mode de Libération ont aucun effet?
ne change pas
OriginalL'auteur citykid | 2013-07-27
Vous devez vous connecter pour publier un commentaire.
Je suis assez sûr que vous ne pouvez pas affecter ou de modifier ce comportement.
Comme vous le mentionnez, il n'a rien à voir avec l'application elle-même, parce qu'il ne le fait pas lorsque vous double-cliquez sur le fichier EXE. Vous ne voyez cet effet lorsque vous exécutez l'application à partir de Visual Studio, sans le débogueur.
Sans doute, lorsque vous appelez Ctrl+F5, Visual Studio est l'exécution de votre application, de façon particulière, qui provoque la fenêtre de la console restent ouverts. Je pense à deux égards, il peut être le faire:
ou
Avec l'un de ces, la mise en pause de comportement que vous voyez est cuit droit dans la ligne de commande utilisée pour lancer votre application et est donc externe à votre demande. Donc, sauf si vous avez accès à Visual Studio sources, vous n'allez pas changer. L'appel d'une
exit
fonction de votre application n'aura aucun effet, parce que votre application a déjà cessé de fumer par le temps que le message s'affiche.Bien sûr, je ne vois pas pourquoi il importe vraiment, mis à part une question de curiosité. Cela ne se produit pas lorsque vous démarrez l'application avec le débogueur, qui est ce que vous allez faire 99% du temps lorsque vous lancez l'application à partir de l'IDE. Et puisque vous n'avez pas de navire de Visual Studio avec votre application, vos utilisateurs sont va être de démarrer l'application à l'extérieur de VS.
En réponse aux mises à jour apportées à votre question, la meilleure solution serait de changer votre application de sorte qu'il n'est pas une application console. Ce problème n'affecte pas les applications Windows standard; quand ils se ferment, ils ferment pour de bon.
Si vous n'avez pas besoin de toute sortie sur la fenêtre de la console, alors c'est très simple à faire: il suffit de changer le "type de Demande" dans les propriétés de votre projet. Une application Windows Forms fonctionnent très bien. Si vous n'avez pas l'affichage d'une fenêtre (aka forme), on va pas être créé automatiquement. C'est la différence entre les applications Windows et les applications de console, qui toujours créer une fenêtre de console, si vous en avez besoin ou pas.
Si vous ne besoin de la sortie d'affichage sur la fenêtre de la console, vous avez deux options:
AllocConsole
fonction pour créer une console que votre application Windows peut utiliser. Vous n'avez pas besoin d'un formulaire à cet effet.ne vois pas pourquoi il est vraiment important", Parce que parfois vous voulez un rapide compiler/exécuter le cycle sans attacher le débogueur (qui ralentit le démarrage de l'application). Par exemple, je me suis mise à l'essai d'une application qui génère un fichier de document. Les documents contenus sont répercutées en temps réel dans une application externe. Je fais des réglages visuels, via le code, et j'ai vraiment juste à ajuster, modifier, exécuter, modifier, exécuter. Je ne veux pas lancer le débogueur, et je ne veux pas fermer la fenêtre de console à chaque fois.
Lorsque j'ai mis le mode de débogage pour la libération et appuyez sur la touche F5 il n'y a pas de pause.
OriginalL'auteur Cody Gray
J'ai trouvé une solution qui fonctionne si vous êtes à l'aide de python (je ne pourrais pas tester autre chose).
Vous avez besoin d'aller à
Décochez
Wait for input when process exits normally
.J'espère que vous pourrez appliquer ce en quelque sorte à votre problème.
OriginalL'auteur siggi3
Bien, au moins dans Visual Studio 2010, en tapant
Supprime le message "Appuyez sur n'importe quelle touche pour continuer....."
OriginalL'auteur A J
Avez-vous essayé (c#)?
S'il vous plaît ne pas envoyer des réponses vous ne l'avez pas essayé de vous-même.
Cette solution a fonctionné pour moi, ne signifie pas qu'il va travailler pour tout le monde. Merci de ne pas assumer les choses.
OK, peut-être que vous avez même un exemple de travail?
OriginalL'auteur fenix
Il y a une grande réponse ici dans un très liés à la question:
https://stackoverflow.com/a/15135181/122687
Je pense que c'est mieux que la accepté de répondre parce qu'il n'exige pas de vous appeler
AllocConsole
et de ne mettre en place toute IO redirection. Je ne sais pas comment facilement et solidement IO redirection peut être mis en place.Ah, donc vous n'avez pas besoin d'une fenêtre de la console? Alors c'est bien, ouais.
OriginalL'auteur Stefan Monov