Aks*_*elK 13 visual-studio output-window
在Visual Studio中构建项目时,"输出"窗口将输出构建过程的状态,其中包括错误和警告.双击这些行将在编辑器中打开包含该错误/警告的文件.
现在,是否有可能通过Debug.WriteLine的输出或类似的东西获得该功能?因此,当调试窗口输出时,例如
Buffering: 13:03:20 to 13:03:21
Run Code Online (Sandbox Code Playgroud)
我可以双击它并被带到BufferClass.cs,第45行,因为那是Debug.WriteLine调用的位置.
这可能是通过.net库还是通过Visual Studio扩展?
Aks*_*elK 14
我会继续自己回答这个问题.
为了能够直接跳转到源文件,请格式化您的消息,如下所示:
string.Format("{0}({1})", filePath, lineNumber);
Run Code Online (Sandbox Code Playgroud)
这样,Visual Studio将自动添加双击功能并将您直接带到源.
此外,如果您使用Visual Studio 2012中的新功能,如此处所述:来电者详细信息,您可以像这样实现您的日志方法:
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));
}
Run Code Online (Sandbox Code Playgroud)
此外,在末尾添加":error"或":warning"会使Visual Studio将其显示为红色或黄色.如果有任何文章进一步描述,我真的很想知道.
好吧,这个问题(和答案)似乎有点过时了,所以让我刷新一下:
在Visual Studio 2013中,以下格式是唯一一种导致链接到回显该消息的文件/行的格式:
C#:
{0}({1}): <message here>
Run Code Online (Sandbox Code Playgroud)
对于C / C ++,请尝试一下:
#define STRINGX(x) #x
#define STRING(x) STRINGX(x)
#define MY_LOG(msg) __pragma(message(__FILE__"(" STRING(__LINE__) "): " msg))
Run Code Online (Sandbox Code Playgroud)
如果您在结尾括号后不包含冒号,或者文件名和行号之间有空格,则它将不会链接到源代码。
| 归档时间: |
|
| 查看次数: |
3597 次 |
| 最近记录: |