代码之家  ›  专栏  ›  技术社区  ›  Unsliced

将监视的Visual Studio变量输出到文件

  •  8
  • Unsliced  · 技术社区  · 15 年前

    在VisualStudio(2008,如果有关系的话)中,有没有一种方法可以在调试/中断模式下将变量的内容写入文本/XML文件?

    这种情况是,我在调试中运行了一个很长的进程,我意识到我没有记录进程所监视的事件的足够详细信息,但幸运的是,代码中的变量中仍然有历史记录。

    我可以浏览这个列表中的数万个项目,但一旦我点击应用程序上的“停止”,它就不会继续存在了。。。没有明显的上下文选项,但有没有比手动更好的方法?还是没有希望,我只需要点击停止,重新插入日志功能,然后再次运行?

    3 回复  |  直到 13 年前
        1
  •  23
  •   Gary Barrett    4 年前

    一种方法是使用即时窗口(菜单 调试 -&燃气轮机; 窗户 -&燃气轮机;

    假设历史变量是字符串,则可通过在即时窗口中键入以下内容查看其内容:

    ?history
    

    >log "c:\test.log"
    >? history
    >log off
    

    Log Tools.LogCommandWindowOutput 并接受以下参数:

    Tools.LogCommandWindowOutput [filename] [/on|/off] [/overwrite]
    

    查看MSDN文章 Log Command Window Output Command 了解更多信息。

        2
  •  4
  •   Community CDub    8 年前

    幸亏 Richard's answer ,这对我有用。

    System.IO.File.WriteAllBytes(@"c:\Temp\temp.txt", myVar);

    确保 C:\Temp 存在。

    写入文件夹而不是根目录的原因 C:\ 是为了避免 UnauthorizedAccessException

        3
  •  3
  •   Richard Lucas    15 年前

    我认为我的答案与JamesPickrell的答案几乎相同,但从即时窗口中,您也可以执行以下操作:

    My.Computer.FileSystem.WriteAllText("c:\temp.txt",history,True)
    

    这将把“history”变量的内容输出到一个名为c:\temp.txt的文件中。

        4
  •  2
  •   Corio    5 年前

    我发现将变量作为json字符串保存到文件中非常有用/演示/共享。在即时窗口中输入以下内容:

    string jsonedVariable = Newtonsoft.Json.JsonConvert.SerializeObject(VARIABLE);
    System.IO.File.WriteAllText(@"C:\FILENAME.json", jsonedVariable);
    
        5
  •  -1
  •   yoni349    4 年前

    不确定支持哪个版本,但您可以简单地将其放入 WATCH