45 votes

Où puis-je trouver la console ou la sortie de débogage du code exécuté dans la fenêtre du gestionnaire de packages?

J'utilise d'abord le code EntityFramework avec les migrations. Depuis la console du gestionnaire de paquets, j'exécute "update-database". Cela exécute Configuration.Seed (contexte) que j'ai remplacé.

     protected override void Seed(WebContext context)
    {

        Console.WriteLine("Console Test");
        Debug.WriteLine("Debug Test");
        Trace.WriteLine("Trace Test");
    }
 

Où puis-je trouver cette sortie?

Mieux encore, comment puis-je retourner dans la fenêtre du gestionnaire de paquets?

Thx, Dan

46voto

George Johnston Points 17237

Un hack rapide que j'utilise pour trouver rapidement une valeur dans ma méthode Seed consiste simplement à lancer une exception avec une valeur qui me tient à cœur, par exemple

 throw new Exception(yourValue);
 

Cela entraîne une erreur dans la graine, mais mon exception / valeur apparaît dans ma console de gestionnaire de packages.

34voto

nemesv Points 71516

Où puis-je trouver la sortie?

Désolé, mais la réponse rapide est essentiellement nulle part.

Pour être précis, du moins pas dans le gestionnaire de paquets de la console.

Debug.WriteLine("Debug Test");
Trace.WriteLine("Trace Test");

Vous pouvez voir la sortie de l' Debug... et Trace... méthodes si vous attachez un autre de Visual Studio pour déboguer l'instance de Visual Studio qui est de l'exécution de l' update-database commande. Puis, dans la debuggin VS vous pouvez voir le résultat dans la Fenêtre de Sortie.

Console.WriteLine("Console Test");

Vous pouvez voir la sortie de l' Console... méthodes si vous exécutez les migrations avec l' migrate.exe outil de ligne de commande qui vient avec EF:

enter image description here

Comment puis-je sortie de retour vers le gestionnaire de paquets de la fenêtre?

J'ai ici aussi de mauvaises nouvelles, après un rapide "reflectoring": avec la mise en œuvre actuelle de l'EF migrations, il n'est pas pris en charge pour afficher des informations personnalisées lors de l'exécution de l' update-database (ou toute autre commande).

17voto

jhilden Points 759

L'exécution d'une commande d'impression SQL écrit dans la console du gestionnaire de packages. Voici une méthode d'aide que j'utilise:

     /// <summary>
    /// write a message to the Package Manager Console
    /// </summary>
    public void Debug(string s, params object[] args)
    {
        var fullString = string.Format(s, args).Replace("'", "''");
        Sql(string.Format("print '{0}'", fullString));
    }
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X