Question

Lorsque vous effectuez une application console en Java avec Eclipse, je vois la sortie étant placé dans une zone de texte dans l'IDE lui-même, au lieu d'avoir une console apparaître comme dans Visual Studio. Cela est très pratique, car même après que le programme ait terminé, je peux encore faire bon usage du texte qui a été écrit en elle, car elle ne soit pas effacé jusqu'à ce que je le lance à nouveau. Est-il possible d'obtenir 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 il est pas tout à fait la même chose, que vous obtenez beaucoup de « junk » dans la fenêtre de sortie, comme tous les symboles chargés et tels.

Mieux encore, est-il possible d'avoir tout fait dans l'IDE lui-même, lorsque vous exécutez votre application, au lieu d'avoir la console en cours d'exécution?

Était-ce utile?

La solution

Dans le menu Outils -> Options Visual Studio Dialog -> Debugging -.> Cochez la case "Rediriger toutes les fenêtres de sortie texte à la fenêtre immédiate"

Autres conseils

Dans le Visual Studio de dialogue Options -> Debugging -> Cochez la case "Rediriger toutes les fenêtres de sortie texte à la fenêtre immédiate". Ensuite, allez à vos paramètres du projet et changer le type de « Application console » à « Application Windows ». À ce moment-là Visual Studio ne s'ouvre pas une fenêtre de console plus, et la sortie est redirigé vers la fenêtre de sortie dans Visual Studio. Cependant, vous ne pouvez rien faire « créatif », comme la demande d'entrée clé ou d'un texte, ou en décochant la console -. Vous obtenez des exceptions d'exécution

System.Diagnostics.Trace

En fonction de ce que les auditeurs vous joindre, la sortie de trace peut aller à la fenêtre de débogage, la console, un fichier, base de données, ou tout à la fois. Les possibilités sont littéralement illimitées, comme la mise en œuvre de votre propre TraceListener est extrêmement simple.

Assurez-vous que la case à cocher la case " Tous Rediriger sortie ... " dans la fenêtre Paramètres de débogage:

Vous pouvez créer une application wrapper que vous exécutez au lieu de courir 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 emballage et passer dans le chemin de la vraie application pour exécuter.

Vous pouvez également l'emballage Autoconnecter le débogueur au nouveau processus si un débogueur est attaché à l'emballage.

Je sais que cela est juste une autre réponse, mais je pensais que j'écrire quelque chose pour les nouveaux développeurs Web, qui pourraient se confondre sur la partie « Modification d'une application Windows », parce que je pense que par défaut, une des applications MVC Visual studio 2013 par défaut à un type de sortie de la classe bibliothèque.

Mon application Web par défaut est défini comme un type de sortie de « bibliothèque de classes. » Vous ne devez pas changer cela. Tout ce que je devais faire était de suivre les suggestions d'aller dans Outils> Options> Debugging> Rediriger tout le texte de la fenêtre de sortie à la fenêtre immédiate. J'ai ensuite utilisé la suggestion de System.Diagnostics.Trace par Joel Coehoorn ci-dessus.

Une solution simple qui fonctionne pour moi, de travailler avec la capacité de la console (ReadKey, String avec le format et arg etc) et pour voir et enregistrer la sortie:

J'écris TextWriter que écrire à Console et Trace et remplacer le Console.Out avec elle.

si vous utilisez Dialog -> Debugging -.> Cochez la case « Rediriger toutes les fenêtres de sortie texte à la fenêtre immédiate » vous obtenez dans la fenêtre immédiate et assez propre

mon code: en début de mon code:

   Console.SetOut(new TextHelper());

et la classe:

public class TextHelper : TextWriter
    {
        TextWriter console;

        public TextHelper() {
            console = Console.Out;
        }

        public override Encoding Encoding { get { return this.console.Encoding; } }
        public override void WriteLine(string format, params object[] arg)
        {
            string s = string.Format(format, arg);
            WriteLine(s);
        }
        public override void Write(object value)
        {
            console.Write(value);
            System.Diagnostics.Trace.Write(value);
        }

        public override void WriteLine(object value)
        {
            Write(value);
            Write("\n");
        }
        public override void WriteLine(string value)
        {
            console.WriteLine(value);
            System.Diagnostics.Trace.WriteLine(value);

        }

    }

Note: J'Override tout ce que je devais donc si vous écrivez d'autres types, vous devriez passer outre plus

Au lieu de cela, vous pouvez gagner 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 collecte la sortie.

Si votre objectif est le débogage, c'est un moyen à faible effort d'offrir un scénario de débogage reproductible.

namespace Commandline.Test
{
    using Microsoft.VisualStudio.TestTools.UnitTesting;

    [TestClass]
    public class CommandlineTests
    {
        [TestMethod]
        public void RunNoArguments()
        {
            Commandline.Program.Main(new string[0]);
        }
    }
}

Il est temps de vérifier la dernière version / de pour Visual Studio, les gens. La solution la plus proposée qui ne fonctionne pas pour certains d'entre vous pourrait fonctionner maintenant.

Dans Visual Studio 2017 ( Release Version 15.4.2 et ci-dessus), va Tools > Options > Debugging > General > (Check Box) Redirect all Output Window text to Immediate Window a travaillé pour moi.

Quelques notes: 1. Pour voir la fenêtre immédiate, assurez-vous que vous êtes dans Debugging mode . 2. Il devrait maintenant être 3 autres outils de débogage disponibles à votre disposition, à savoir, Pile d'appels, les points d'arrêt, et la fenêtre de commande, comme indiqué ci-dessous:

Meilleurs voeux!

Étape 1: Faites un clic droit sur le nom du projet dans l'Explorateur de solutions, puis faire le type de sortie comme la fenêtre d'application

Étape 2: Mise au point -> Options ..--> Debugging (Expand) -> Général -> Tous les Rediriger fenêtre de sortie texte dans la fenêtre Exécution

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top