2015-12-02 139 views
13

我正在使用Text Visualizer在Visual Studio中调试字符串变量。但是,似乎很大一部分在字符串的中间缺失。这背后的原因是什么?Visual Studio Text Visualizer丢失文本

enter image description here

+0

在VS 2015中,长文本显示正确,直到安装Update 1为止。Text Visualizer现在按照下面的答案进行解释,微软并没有说他们改变了它或者为什么。 –

回答

17

Visual Studio中的文本展示台只能显示约32700字。如果你的字符串比这个长,它会自动用...替换字符串中间的多余部分。

我发现这很困难。

编辑:这似乎已在更新2中修复。如果您在更新1上,请参阅钻石的答案。

+6

令人讨厌的事情,他们甚至不通知文本正在修剪。花了数小时才发现。有关这方面的消息吗?这证实是一个错误? –

+2

有人会认为他们会截断字符串的结束,而不是中间...会让它更明显,这是VS,而不是我的Web服务调用造成的问题... – jleach

+0

非常感谢你为此info ...因为这个问题,我几乎整整一天都被杀了...... Visual Studio截断了XML文档,我只看到了1个节点,同时代码表示有2个节点...这非常令人沮丧。 – Disappointed

2

有一个解决方案here

  1. 创建新项目类库
  2. 添加新的形式MessageForm文本框里面,检查的MaxLength文本框多行性能。
  3. 添加.cs文件与如下因素的内容:
using System; 
using Microsoft.VisualStudio.DebuggerVisualizers; 
using System.Windows.Forms;  
[assembly: System.Diagnostics.DebuggerVisualizer(
typeof(TextVisualizer.DebuggerSide), 
typeof(VisualizerObjectSource), 
Target = typeof(String), 
Description = "My Visualizer")] 
namespace TextVisualizer 
{ 
    public class DebuggerSide : DialogDebuggerVisualizer 
    { 
     protected override void Show(IDialogVisualizerService windowService, IVisualizerObjectProvider objectProvider) 
     { 
      var message = new MessageForm(); 
      ((TextBox) message.Controls.Find("textbox1",false)[0]).Text = objectProvider.GetObject().ToString(); 
      message.ShowDialog(); 
     } 
    } 
} 
  • 构建项目
  • 找到包含已经建立的可视化和 的DLL复制到DLL以下任一位置:
    • VisualStudioInstallPath \ Common7 \包\调试\展示台
    • 我的文档\的Visu alStudioVersion \展示台
  • 如果您要使用远程调试管理可视化,将DLL复制到相同的路径在远程计算机上。 重新启动调试会话。有关详细信息,请参见How to: Install a Visualizer.

    4

    这是随Visual Studio 2015 Update 1引入的问题,如此处所报告的:https://connect.microsoft.com/VisualStudio/feedback/details/2016177/text-visualizer-misses-corrupts-text-in-long-strings

    Microsoft将在Update 1之后的第一次更新中对此进行永久修复。同时,使用以下解决方法:您可以通过添加注册表项来设置Text Visualizer截断的长度。使用以下命令将长度设置为一个较大的数字(例如250000):

    reg add HKCU\Software\Microsoft\VisualStudio\14.0\Debugger /v TextVisualizerStringLimit /t REG_DWORD /d [number]

    或者使用Visual Studio的早期版本,如果你已经安装了一个。

    +0

    不知道他们的下一次更新是什么时候,但是从14.0.24720.00 Update 1开始,这个错误仍然存​​在。 – jleach

    +1

    可以从这里获得更新2的候选版本:https://www.visualstudio.com/en-us/news/vs2015-update2-vs.aspx。它可能包含针对该问题的修复。只取决于它还有什么打破... –

    +0

    酷 - 它与钻石描述更新2一起工作! –