Visual studio 双击以转到输出窗口中的源

Visual studio 双击以转到输出窗口中的源,visual-studio,output-window,Visual Studio,Output Window,在Visual Studio中生成项目时,“输出”窗口输出生成过程的状态,其中包括错误和警告。双击这些行将在编辑器中打开包含该错误/警告的文件 现在,是否可以通过Debug.WriteLine或类似的输出获得该功能?例如,当调试窗口输出时 Buffering: 13:03:20 to 13:03:21 我将能够双击它并被带到BufferClass.cs,第45行,因为那是Debug.WriteLine调用的位置 这是可能的,通过.net库还是通过Visual Studio扩展?我将自己回答这个

在Visual Studio中生成项目时,“输出”窗口输出生成过程的状态,其中包括错误和警告。双击这些行将在编辑器中打开包含该错误/警告的文件

现在,是否可以通过Debug.WriteLine或类似的输出获得该功能?例如,当调试窗口输出时

Buffering: 13:03:20 to 13:03:21
我将能够双击它并被带到BufferClass.cs,第45行,因为那是Debug.WriteLine调用的位置


这是可能的,通过.net库还是通过Visual Studio扩展?

我将自己回答这个问题

要能够直接跳转到源文件,请按如下格式设置消息:

string.Format("{0}({1})", filePath, lineNumber);
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));
    }
这样,VisualStudio将自动添加双击功能,并直接将您带到源代码

此外,如果您使用Visual Studio 2012中的新功能(如下所述),则可以实现如下日志方法:

string.Format("{0}({1})", filePath, lineNumber);
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”会使VisualStudio将其涂成红色或黄色。 如果有任何文章对此进行了进一步的描述,我真的很想知道。

好吧,这个问题(和答案)似乎有点过时,所以让我更新一下:

在Visual Studio 2013中,以下格式是唯一导致链接到回显消息的文件/行的格式:

C#

{0}({1}): <message here>
#define STRINGX(x) #x
#define STRING(x) STRINGX(x)
#define MY_LOG(msg) __pragma(message(__FILE__"(" STRING(__LINE__) "): " msg))

如果结尾括号后没有包含冒号,或者文件名和行号之间有空格,则它将不会链接到源代码。

要在行号后添加消息(可能是这样),必须添加冒号。它看起来是这样的:
string.Format(“{0}({1}):{2}”,文件路径,行号,msg)官方文章:博客条目:(不像上一个链接那样完整/正式,但更具描述性)。+1,但我无法在最后获得输出着色位,也找不到有关此特定功能的任何文档。(我尝试过各种各样的空格组合,但运气不好。)我找到了可以这样做的扩展,但只要能够添加“:error”使事情变得突出就好了。