Pourquoi Console.Writeline, Console.Write ne fonctionnent-ils pas dans Visual Studio Express?

169

Je viens d'ouvrir une application console et je tape

Console.WriteLine("Test");

Mais la fenêtre de sortie ne montre pas cela. Je vais à la fenêtre de sortie avec Ctrl + W, O

Mais rien ne s'affiche lorsque je lance mon programme, suis-je fou ou est-ce que cela n'est pas pris en charge dans le Visual Studio 2010 Express?

Foreyez
la source
3
Comme Leifdit, il disparaît avant que vous ne puissiez le voir. UtilisationConsole.ReadKey()
Xaqron
Voir aussi stackoverflow.com/a/1583569/503688 pour un mécanisme pour rediriger la sortie de la console vers la fenêtre de sortie de débogage.
yoyo

Réponses:

301

Console.WriteLineécrit votre sortie dans la fenêtre de la console ouverte par votre application (pensez à la fenêtre noire avec du texte blanc qui apparaît lorsque vous ouvrez l'invite de commandes.) Essayez à la System.Diagnostics.Debug.WriteLineplace.

Adam Maras
la source
26
La sortie de débogage apparaît dans la fenêtre Sortie (Debug => Windows => Sortie). Le mien n'était pas ouvert par défaut.
Appulus
1
S'il n'y a pas de sortie dans la fenêtre de la console, vérifiez également les propriétés de l'application sous l'onglet Débogage Options de démarrage pour vous assurer que vous n'avez aucun argument de ligne de commande redirigeant la sortie de la console.
Chad Miller
Et utilisez un outil tel que technet.microsoft.com/en-us/sysinternals/debugview.aspx DebugView (dbgview) pour recevoir les messages de débogage car ils n'apparaîtront pas sur la console cmd.
Roger Deep
19

Accédez aux propriétés de votre propre projet dans la Solution Explorerfenêtre et choisissez le type d'application, recherchez Output Type et modifiez sa valeur en Console Application. Cela rendra l'écran de la console en plus de votre formulaire. Si vous fermez l'écran de la console, votre formulaire sera également fermé.

Bonne chance.

Ibrahim
la source
Faites ma journée! Je peux parcourir ma requête LINQ et écrire sur la console maintenant, ce qui est un moyen rapide et bon marché d'obtenir les données correctes dans la mêlée.
JustJohn
15

Peut-être que la console s'efface. Essayer:

Console.WriteLine("Test");
Console.ReadLine();

Et j'espère qu'il restera là jusqu'à ce que vous appuyiez sur Entrée.

Leif Andersen
la source
15

Aucune réponse satisfaisante fournie.

System.Diagnostics.Debug.WriteLine() écrira des messages dans la fenêtre Output: debug, mais tant de merde est constamment déversée dans cette fenêtre par chaque processus sous le soleil, c'est comme trouver une aiguille dans une botte de foin pour trouver VOS messages.

Console.WriteLine()n'écrit dans aucune fenêtre de Visual Studio. Je suppose que cela n'écrira sur la console d'application que si votre application crée une console en premier lieu, c'est-à-dire s'il s'agit d'une application console.

Pourquoi l'outillage simplifie-t-il la tâche consistant à demander au code .cs de code côté serveur d'applications Web d'écrire des messages de débogage dans une fenêtre inondée de merde, ce qui rend presque impossible de trouver vos informations?

Paul Gorbas
la source
6

Ou vous pouvez déboguer par CTRL+F5cela ouvrira ConsoleWindow attend après la dernière ligne exécutée jusqu'à ce que vous appuyiez sur la touche.

Javed Akram
la source
8
Eh bien, ce n'est pas vraiment du «débogage», c'est juste lancer l'application sans attacher le débogueur. : /
damian
5

C'est plus que probable parce que vous avez utilisé la console dans l'espace de noms. Par exemple comme ceci:

namespace XYZApplication.Console
{
    class Program
    {
        static void Main(string[] args)
       {
            //Some code;             
       }
    }
}

Essayez de le supprimer de l'espace de noms ou utilisez plutôt l'espace de noms complet ie

   System.Console.Writeline("abc");
nadsy
la source
1
Je n'avais aucune autre console dans mon application, mais l'ajout m'a System.aidé. Merci.
kolenda
4

La fenêtre de sortie n'est pas la console. Essayez les méthodes deSystem.Diagnostics.Debug

lesscode
la source
4

Dans l'application Winforms, les deux méthodes:

System.Diagnostics.Debug.WriteLine("my string")

et

System.Console.WriteLine("my string")

écrire dans la fenêtre de sortie.

Dans l'application AspNetCore, System.Diagnostics.Debug.WriteLine("my string")écrit uniquement dans la fenêtre de sortie.

user6849960
la source
3

Essayez ctrl + F5, il tiendra votre écran jusqu'à ce que vous appuyiez sur une touche. Cordialement

Sumen Kr Mallick
la source
2

Faites un clic droit sur le projet dans l'explorateur de solutions et cliquez sur "nettoyer".

Maintenant, cours F5

Assurez-vous que le code est comme ci-dessous:

Console.WriteLine("TEST");
Console.ReadLine();
Akash
la source
1

Je rencontre un problème similaire lors de l'exécution d'un test unitaire. Console.WriteLine()n'a rien écrit dans la fenêtre de sortie VS.

L'utilisation a System.Diagnostics.Debug.WriteLine()résolu le problème.

Peter Huber
la source
1

Si vous utilisez Ctrl-F5 (démarrer sans débogage), la fenêtre de la console sera ouverte avec un message "Appuyez sur n'importe quelle touche pour continuer". C'est le moyen le plus simple d'empêcher la fenêtre de la console de se fermer afin que vous puissiez voir la sortie de la console.

Jeffrey compte
la source
1

Allez dans le menu Déboguer et sélectionnez Options et décochez "Rediriger tout le texte de la fenêtre de sortie vers la fenêtre immédiate"

user241636
la source
0

Console.Writeline() apparaît dans la sortie de débogage (Debug => Windows => Sortie).

Svl2Nuk3
la source
7
Non, System.Diagnostics.Debug.WriteLine écrit dans Debug => Windows => Output, mais pas Console.WriteLine
Vitalii Korsakov
1
La personne qui pose la question utilise une application Console, où Console.WriteLine () écrit bien sûr dans la Console, qui est la fenêtre d'application de couleur noire, ressemblant à une fenêtre DOS. Console.WriteLine () écrit uniquement dans la fenêtre de sortie de débogage, lorsqu'il ne s'agit pas d'une application de console.
Peter Huber
«Console.WriteLine () écrit uniquement dans la fenêtre de sortie de débogage, lorsqu'il ne s'agit pas d'une application de console.» Pourquoi?
sydd
0

Si vous développez une application en ligne de commande, vous pouvez également utiliser Console.ReadLine()à la fin de votre code pour attendre la touche «Entrée» avant de fermer la fenêtre de la console afin de pouvoir lire votre sortie.

Abdullah Ibn Mannan
la source
0
using System.Diagnostics;


Trace.WriteLine("This line will show on Output window"); 
Trace.Flush();

Cela fonctionne sur Microsoft Team Explorer pour Visual Studio 2013

Reportez-vous à microsoft.com

Sinan ÇALIŞKAN
la source
0

Solution de contournement, j'ai trouvé:

Appuyez sur Ctrl + Alt + Iou accédez à "Onglet Débogage" ---> "Windows" ---> "Immédiat".

Dans votre code, écrivez:

Trace.WriteLine("This is one of the workaround");
GurdeepBhatia
la source
0

La fenêtre de sortie de Visual Studio 2017 a un menu appelé Afficher la sortie à partir de , dans mon cas, ASP.NET Core Web Server était l'option à sélectionner afin de voir l'impression, je suis tombé sur ce problème car je l'avais réglé sur Build afin Je ne voyais pas les lignes imprimées au moment de l'exécution.

kuky54
la source
0

Il y a 2 problèmes possibles:

  • Tout d'abord, vous n'avez pas utilisé le using System qui devrait être avant d’écrire du code qui utilise la «classe système», commeConsole.WriteLine()
  • Deuxièmement, vous n'avez pas codé ce qui se passe après que la console affiche "Test"

La solution possible sera:

using System;

namespace Test
{
    public static Main()
    {
        //Print to the console
        Console.WriteLine("Test");

        //Allow user to read output
        Console.ReadKey();
    }
}

Il est également stratégique de coder Console.Write("Press any key to exit...");sur la ligne qui précède le Console.ReadKey();pour faire savoir à l'utilisateur que le programme se termine, il doit appuyer sur n'importe quelle touche pour quitter.

Lethu Nsibande
la source