7
votes

Capturez la sortie de la production au sein de Visual Studio 2010

Y a-t-il une façon de capturer la sortie de construction, c'est-à-dire le texte qui est sortie à la fenêtre de sortie? À l'heure actuelle, ma seule alternative à copier et coller le texte de la fenêtre de sortie consiste à créer à partir d'une ligne de commande et à rediriger la sortie dans un fichier.

Un regard rapide sur les options de ligne de commande C # compiler ne révèle aucune option permettant de spécifier un fichier de sortie pour des messages tels que des avertissements et des erreurs, donc je suppose que les crochets VS dans le flux de sortie du processus de la CSC.exe, pour capturer son texte. et écrivez-le à la fenêtre de sortie. Peut-être qu'il y a un espace où une application personnalisée peut également accrocher.


2 commentaires

Il redirige la sortie de Msbuild.exe dans la fenêtre de sortie. Il n'y a pas de terrain d'entente ici, que vous construisez à partir de la ligne de commande ou vous construisez de l'IDE. Cela doit fonctionner comme ça, il n'y a pas d'autre moyen d'obtenir la fenêtre de la liste d'erreur pour vous indiquer les erreurs de construction.


@Hans, je ne cherche pas le sol moyen entre la ligne de commande et l'IDE. Je cherche un moyen de capturer automatiquement ce qui est sortie à la fenêtre de sortie lors d'une construction de l'IDE, comme je pense que j'ai assez clairement défini dans le premier paragraphe de ma question.


4 Réponses :


3
votes

Je pense que vous pouvez utiliser DebugView ou développer une application pour capturer le Résultats de la fenêtre de sortie.

Exemple de MSDN pour gérer la fenêtre de sortie: P>

public void writeReadOW(DTE2 dte)
{
    // Add-in code.
    // Create a reference to the Output window.
    // Create a tool window reference for the Output window
    // and window pane.
    OutputWindow ow = dte.ToolWindows.OutputWindow;
    OutputWindowPane owP;
    // Create a reference to the pane contents.
    TextDocument owPTxtDoc;
    EditPoint2 strtPt;

    // Select the Build pane in the Output window.
    owP = ow.OutputWindowPanes.Item("Build");
    owP.Activate();
    owPTxtDoc = owP.TextDocument;

    // Put some text in the pane.
    owP.OutputString("Testing 123.");
    // Retrieve the text contents of the pane.
    System.Windows.Forms.MessageBox.Show("Startpoint: " + 
      owPTxtDoc.StartPoint.DisplayColumn);
    strtPt = (EditPoint2)owPTxtDoc.StartPoint.CreateEditPoint();
    System.Windows.Forms.MessageBox.Show
      (strtPt.GetText(owPTxtDoc.EndPoint));
}


0 commentaires

-1
votes

Vous pouvez utiliser l'extensibilité visuelle Studio ( http://msdn.microsoft.com / FR-US / VStudio / FF718165 ) Pour pouvoir lire le contenu de la fenêtre de sortie. Cette rubrique peut montrer comment se faire une référence: Comment écrire dans la fenêtre Visual Studio Sortie de mon outil personnalisé? .


0 commentaires

5
votes

Ajoutez la macro suivante à VS VoieVentez Module (Outils-> Macros-> Macros IDE ...) ou Alt + F11. La macro est exécutée après une construction complétant si, avec succès ou non.

Ceci conduisera la sortie de texte de la fenêtre de sortie, plus spécifiquement la vue de la fenêtre de la fenêtre de sortie sur build_output.log < / code>. Autre Les GUID IDE sont disponibles sur MSDN .

comme référence, la solution était basée sur HOWTO: obtenir une sortieWindowpane pour produire une chaîne d'un complément Visual Studio ou d'une macro

Visual Studio fournit une sortie fenêtre ("Vue", "Autres fenêtres", Menu "Sortie") pour afficher les messages, déboguer informations, etc. Cette fenêtre fournit plusieurs vitres pouvant être sélectionnées à travers une combinaison, telle que "source Contrôle "," Build "," débogage ", etc.

Le modèle d'automatisation (ENVDTE) fournit l'envodte.outputwindow, Envyte.outputwindowpanes et Classes EnvDTE.OutputWindowpane. xxx

Ce qui précède peut être modifié pour produire probablement des informations de construction sur une base par projet. Les noms de fichiers des journaux de construction etc. peuvent probablement être configurés sur la base du projet actuel en cours de construction (pas trop sûr de cela) et surtout que vous pouvez probablement garder l'historique de construction.

Il y a un ensemble d'événements vs Peut accrocher, de sorte que le type de choses que l'on puisse faire est sans fin

ceci a été testé sur VS2010 Ultimate ...


0 commentaires

3
votes

Je ne sais pas si cela facilite les choses si vous le savez, mais également des studios visuels définir une variable d'environnement vs_unicode_output et ceci est utilisé par le compilateur CL.EXE pour envoyer sa sortie directement à Vs. Si vous effacez cette variable, la sortie CL.EXE va à la sortie standard et erreur.

espère que cela aide!


0 commentaires