J'ai a nice tidy way of capturing unhandled exceptions que j'affirme à mes utilisateurs et (éventuellement) recevoir par e-mail à moi-même. Ils regardent généralement quelque chose comme ceci:Comment puis-je lancer Visual Studio par programme et l'envoyer vers un fichier/une ligne spécifique?
Uncaught exception encountered in MyApp (Version 1.1.0)!
Exception:
Object reference not set to an instance of an object.
Exception type:
System.NullReferenceException
Source:
MyApp
Stack trace:
at SomeLibrary.DoMoreStuff() in c:\projects\myapp\somelibrary.h:line 509
at SomeAlgothim.DoStuff() in c:\projects\myapp\somealgorithm.h:line 519
at MyApp.MainForm.ItemCheckedEventHandler(Object sender, ItemCheckedEventArgs e) in c:\projects\myapp\mainform.cpp:line 106
at System.Windows.Forms.ListView.OnItemChecked(ItemCheckedEventArgs e)
at System.Windows.Forms.ListView.WmReflectNotify(Message& m)
at System.Windows.Forms.ListView.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Est-il possible de lancer Visual Studio et ont ouvert c:\projects\myapp\somelibrary.h
sur la ligne incriminée et si oui, comment?
Je voudrais aussi le faire à partir de l'email (html) que je génère si c'est possible?
Je suis sûr qu'il ya des trucs d'automatisation que vous pouvez utiliser, ou même une macro, mais je ne sais pas comment. – leppie
Vous feriez mieux de l'essayer dans un cadre de déploiement réaliste. Vous n'aurez pas les numéros de ligne. –
@Hans Passant: il peut lui-même envoyer lui-même la trace de la pile et montrer à l'utilisateur un message amical. – egrunin