在Visual Studio中构建项目时,“输出窗口”将输出构建过程的状态,其中包括错误和警告。双击这些行将在编辑器中打开包含该错误/警告的文件。
现在,是否有可能通过Debug.WriteLine的输出获得该功能,或类似的东西?因此,当Debug窗口输出例如
时Buffering: 13:03:20 to 13:03:21
我可以双击它并被带到第45行的BufferClass.cs,因为这是Debug.WriteLine调用的位置。
这可能是通过.net库还是通过Visual Studio扩展?
答案 0 :(得分:14)
我会继续自己回答这个问题。
为了能够直接跳转到源文件,请格式化您的消息:
string.Format("{0}({1})", filePath, lineNumber);
这样,Visual Studio将自动添加双击功能并将您直接带到源。
此外,如果您使用Visual Studio 2012中的新功能,如此处所述:Caller Details,您可以像这样实现日志方法:
private void LogData(string message,
[CallerMemberName] string callerName = "",
[CallerLineNumber] int lineNumber = -1,
[CallerFilePath] string filePath = "")
{
Debug.WriteLine(message);
Debug.WriteLine(string.Format(" {0}({1})", filePath, lineNumber));
}
此外,在末尾添加“:error”或“:warning”会使Visual Studio将其显示为红色或黄色。 如果有任何文章进一步描述,我真的很想知道。
答案 1 :(得分:4)
嗯,这个问题(和答案)似乎有点过时了,所以让我刷新一下:
在Visual Studio 2013中,以下格式是唯一一种似乎导致链接到回显邮件的文件/行的格式:
<强> C#强>:
{0}({1}): <message here>
对于C / C ++,请给它一个旋转:
#define STRINGX(x) #x
#define STRING(x) STRINGX(x)
#define MY_LOG(msg) __pragma(message(__FILE__"(" STRING(__LINE__) "): " msg))
如果您没有在结束括号后包含冒号,或者文件名和行号之间有空格,则将不会链接到源代码。