Comment puis-je afficher les résultats dans le volet Messages de la liste des erreurs pour Visual Studio 2005?

J’ai un fichier d’en-tête comme celui-ci:

#ifndef __GEN_NOTE_MARKERS_TO_DEVELOPERS_HPP__ #define __GEN_NOTE_MARKERS_TO_DEVELOPERS_HPP__ #ifdef _DEBUG // macros for turning a number into a ssortingng #define STRING2(x) #x #define STRING(x) STRING2(x) #ifdef TRIAGE_MESG_AS_WARNING #define TRIAGE_TODO_TAG(description) __pragma(message(__FILE__"("STRING(__LINE__)") : warning : TRIAGE TO-DO: " STRING(description) )) #define TRIAGE_FIXTHIS_TAG(description) __pragma(message(__FILE__"("STRING(__LINE__)") : warning : TRIAGE FIXTHIS: " STRING(description) )) #else #define TRIAGE_TODO_TAG(description) __pragma(message(__FILE__"("STRING(__LINE__)") : message : TRIAGE TO-DO: " STRING(description) )) #define TRIAGE_FIXTHIS_TAG(description) __pragma(message(__FILE__"("STRING(__LINE__)") : message : TRIAGE FIXTHIS: " STRING(description) )) #endif #else #define TRIAGE_TODO_TAG(description) #define TRIAGE_FIXTHIS_TAG(description) #endif #endif // __GEN_NOTE_MARKERS_TO_DEVELOPERS_HPP__ 

Qui génère des notes dans le volet de sortie dans Visual Studio 2005. Lorsque «TRIAGE_MESG_AS_WARNING» est défini, Visual Studio collecte ces messages et les répertorie comme des avertissements dans la liste des erreurs. Pour cela, le format de texte correspond à un avertissement. Cependant, je ne veux pas qu’ils apparaissent comme des avertissements tout le temps, je préférerais qu’ils apparaissent dans le volet Messages de la liste des erreurs.

Comment formatez-vous les lignes que vous avez placées dans la “fenêtre de sortie” pour que Visual Studio les affiche automatiquement dans l’onglet “Messages” de la fenêtre “Liste des erreurs”?

Le format que j’ai configuré pour les messages dans le code ci-dessus ressemble à un message provenant d’autres sorties, mais n’est pas récupéré de la même manière.

Un collègue m’a suggéré de rédiger un object d’automatisation personnalisé pour écrire dans le volet Messages. Cela semble pénible, d’autant plus qu’il est sortingvial de se retrouver avec des entrées dans le volet des erreurs et dans le volet des avertissements, simplement par une mise en forme appropriée. Est-ce une voie possible?

Nous utilisons du C ++ non géré, nous ne pouvons donc pas compter sur des outils gérés (.NET) uniquement. Nous ne voulons pas étendre VS avec des crochets.

Je crois qu’ils ont juste oublié d’append une catégorie supplémentaire: info. Au moins, il n’est pas spécifié dans le format de sortie pour les outils externes.

Citation: “La catégorie doit être soit” erreur “soit” avertissement “. L’affaire n’a pas d’importance. Comme l’origine, la catégorie ne doit pas être localisée.”

Lien: http://blogs.msdn.com/msbuild/archive/2006/11/03/msbuild-visual-studio-aware-error-messages-and-message-formats.aspx

Ok, j’ai fait une chasse autour et il semble que vous puissiez le faire si le SDK Visual Studio est installé.

J’ai trouvé ce lien ici

Vous devez utiliser l’espace de noms Microsoft.VisualStudio.Shell, je crois.

Les extraits de code du lien ci-dessus sont les suivants:

 //Get the "Error List Window" ErrorListProvider errorProvider = new ErrorListProvider(this); Task newError = new Task(); newError.ErrorCategory = TaskErrorCategory.Error; // or TaskErrorCategory.Warning for warnings newError.Category = TaskCategory.BuildComstack; newError.Text = "Some Error Text"; errorProvider.Tasks.Add(newError); 

Je n’ai pas encore essayé ceci, donc si vous réussissez, vous pouvez poster ici pour référence future, s’il vous plaît.

J’ai essayé de faire en sorte que cela fonctionne aussi bien, et pour autant que je sache, c’est impossible à moins que vous n’écriviez votre propre plug-in pour VS qui parsing les sorties et génère des tâches. Ce serait une fonctionnalité très pratique à avoir, et j’espère juste qu’ils l’ajoutent à un moment donné dans le futur (on ne peut pas s’embêter à écrire un plug-in, trop de petits projets pour gagner du temps: L)

En fin de compte, j’ai juste choisi de le sortir comme un avertissement, ce qui n’est pas trop mal, voir comment j’essaie de corriger tous les avertissements (ou s’ils sont intentionnels, désactiver l’avertissement pour ce petit bout de code et de commentaire) si ce n’est pas évident pourquoi l’avertissement est ignoré)

Je ne comprends peut-être pas correctement votre question, mais je vais tout de même tenter le coup.

Avez-vous regardé l’implantation TraceSwitch? Vous pouvez implémenter différents écouteurs et transmettre les informations à diverses sources telles que du texte, de la console, etc.

C’est peut-être ce dont vous avez besoin.

Bonne chance!

Avez-vous essayé de personnaliser les mots-clés de la liste des tâches?

Cette page suggère qu’il est possible de le faire. Je vous suggère de lire à partir de là, au cas où vous ne l’avez pas déjà fait.

Ne pourriez-vous pas utiliser la commande “Trace” dans votre code? Cela place simplement le texte que vous lui dites dans la fenêtre de sortie. Donc, pour placer des messages d’erreur, vous devrez d’abord les formater.