Lorsque vous effectuez une application console en Java avec Eclipse, je vois que la sortie est placée dans une zone de texte dans l'EDI lui-même, au lieu d'avoir une console qui apparaît comme dans Visual Studio. Cela est pratique, car même après la fermeture du programme, je peux toujours faire bon usage du texte qui y était écrit, car il ne sera pas effacé tant que je ne le relancerai pas. Est-il possible de réaliser quelque chose comme ça avec Visual Studio? Je sais qu'au lieu de faire
System.Console.WriteLine(str);
Je peux faire
System.Diagnostics.Debug.WriteLine(str);
mais ce n'est pas tout à fait la même chose, car vous obtenez beaucoup de "junk" dans la fenêtre de sortie, comme tous les symboles chargés et autres.
Mieux encore, est-il possible de tout faire dans l'EDI lui-même, lorsque vous exécutez votre application, au lieu de faire fonctionner la console?
la source
Réponses:
Dans la boîte de dialogue Outils -> Options de Visual Studio -> Débogage -> Cochez la case «Rediriger tout le texte de la fenêtre de sortie vers la fenêtre d'exécution».
la source
Dans la boîte de dialogue Options de Visual Studio -> Débogage -> Cochez la case «Rediriger tout le texte de la fenêtre de sortie vers la fenêtre d'exécution». Ensuite, allez dans les paramètres de votre projet et changez le type de "Application console" à "Application Windows". À ce stade, Visual Studio n'ouvre plus de fenêtre de console et la sortie est redirigée vers la fenêtre de sortie dans Visual Studio. Cependant, vous ne pouvez rien faire de «créatif», comme demander une saisie de clé ou de texte, ou effacer la console - vous obtiendrez des exceptions d'exécution.
la source
Console.ReadKey()
est tout simplement ridicule!Output type
application Windows à la console, la fenêtre de la console n'est pas visible lorsque j'exécute mon application. Je suis capable de déboguer l'application et leMain
point d'entrée est également touché. J'ai également annulé le paramètre d'option mentionné dans cet article, mais en vain. J'utilise l'édition communautaire VS 2017. J'ai perdu la fenêtre de ma console (sanglotant).Utilisation
System.Diagnostics.Trace
En fonction des écouteurs que vous attachez, la sortie de la trace peut accéder à la fenêtre de débogage, à la console, à un fichier, à une base de données ou tout à la fois. Les possibilités sont littéralement infinies, car la mise en œuvre de votre propre TraceListener est extrêmement simple.
la source
Il est temps de vérifier les dernières versions de Visual Studio, mes amis. La solution la plus suggérée qui n'a pas fonctionné pour certains d'entre vous auparavant pourrait fonctionner maintenant.
Dans Visual Studio 2017 ( version 15.4.2 et supérieure), aller à
Tools > Options > Debugging > General > (Check Box) Redirect all Output Window text to Immediate Window
a fonctionné pour moi.Quelques notes: 1. Pour voir la fenêtre Exécution, assurez-vous que vous êtes en mode Débogage . 2. Il devrait maintenant y avoir 3 autres outils de débogage disponibles à votre disposition, à savoir, Call Stack, Breakpoints et Command Window, comme indiqué ci-dessous:
Meilleurs vœux!
la source
Vous pouvez créer une application wrapper que vous exécutez au lieu d'exécuter directement votre application réelle. L'application wrapper peut écouter stdout et tout rediriger vers Trace. Modifiez ensuite les paramètres d'exécution pour lancer votre wrapper et transmettez le chemin d'accès à l'application réelle à exécuter.
Vous pouvez également demander au wrapper d'attacher automatiquement le débogueur au nouveau processus si un débogueur est attaché au wrapper.
la source
Je sais que ce n'est qu'une autre réponse, mais j'ai pensé écrire quelque chose pour les nouveaux développeurs Web, qui pourraient être confus à propos de la partie "Changer vers une application Windows", car je pense par défaut à une application MVC dans Visual Studio 2013 par défaut, un type de sortie de bibliothèque de classes.
Mon application Web est définie par défaut comme un type de sortie de «Bibliothèque de classes». Vous n'êtes pas obligé de changer cela. Tout ce que j'avais à faire était de suivre les suggestions d'aller dans Outils> Options> Débogage> Rediriger tout le texte de la fenêtre de sortie vers la fenêtre immédiate. J'ai ensuite utilisé la
System.Diagnostics.Trace
suggestion de Joel Coehoorn ci-dessus.la source
Une solution simple qui fonctionne pour moi, pour travailler avec la capacité de la console (ReadKey, String avec format et arg etc) et pour voir et enregistrer la sortie:
Je vous écris TextWriter qui écrivent
Console
etTrace
et remplacer leConsole.Out
avec elle.si vous utilisez Dialogue -> Débogage -> Cochez la case "Rediriger tout le texte de la fenêtre de sortie vers la fenêtre d'exécution", vous l'obtenez dans la fenêtre d'exécution et assez propre.
mon code: au début de mon code:
et la classe:
Remarque: je remplace juste ce dont j'avais besoin, donc si vous écrivez d'autres types, vous devriez remplacer plus
la source
concernant la
System.Diagnostics.Debug
production de beaucoup de "junk" dans la fenêtre de sortie: Vous pouvez désactiver cela en cliquant avec le bouton droit dans la fenêtre de sortie. Par exemple, il y a un élément "Module Load Messages" que vous souhaitez désactiver et un élément "Program Output" que vous souhaitez conserver.la source
Vous avez trois possibilités pour le faire, mais ce n'est pas anodin. L'idée principale de tous les IDE est qu'ils sont tous les parents des processus enfants (débogage). Dans ce cas, il est possible de manipuler avec l'entrée, la sortie et le gestionnaire d'erreurs standard. Ainsi, les IDE démarrent les applications enfants et les redirigent vers la fenêtre de sortie interne. Je connais une autre possibilité, mais cela viendra dans le futur
la source
Si vous avez besoin de la sortie de Console.WriteLine et que le texte de la fenêtre Rediriger tout la sortie vers la fenêtre immédiate ne fonctionne pas et que vous devez connaître la sortie des tests de l'Explorateur de tests intégré, en utilisant NUnit.Framework, notre problème est déjà résolu à VS 2017 :
Exemple tiré de C # en profondeur par Jon Skeet: Cela produit cette sortie dans Text Explorer:
Lorsque nous cliquons sur Blue Output, sous Elapsed Time, à droite, et cela produit ceci:
La sortie standard est la sortie souhaitée, produite par Console.WriteLine.
Il fonctionne pour la console et pour les applications Windows Form à VS 2017, mais uniquement pour la sortie générée pour l'Explorateur de tests au débogage ou à l'exécution; de toute façon, c'est mon principal besoin de sortie Console.WriteLine.
la source
Au lieu de cela, vous pouvez collecter la sortie dans un résultat de test.
Vous ne pouvez pas fournir d'entrée, mais vous pouvez facilement fournir plusieurs tests avec différents arguments de ligne de commande, chaque test collectant la sortie.
Si votre objectif est le débogage, il s'agit d'un moyen sans effort d'offrir un scénario de débogage reproductible.
la source
Étape 1: Cliquez avec le bouton droit sur le nom du projet dans l'Explorateur de solutions, puis définissez le type de sortie comme application de fenêtre
Étape 2: Débogage -> Options .. -> Débogage (développer) -> Général -> Rediriger tout le texte de la fenêtre de sortie vers la fenêtre d'exécution
la source