1

我有一个类似的问题,我创建了一个调试可视化器:

using System.Windows.Forms;
using Microsoft.VisualStudio.DebuggerVisualizers;

[assembly: System.Diagnostics.DebuggerVisualizer(typeof(MatrixVisualizers.MatrixVisualiser), typeof(VisualizerObjectSource), Description="Visualize a matrix" )]

namespace MatrixVisualizers
{
    public class MatrixVisualiser : DialogDebuggerVisualizer
    {
    protected override void Show(IDialogVisualizerService windowService, IVisualizerObjectProvider objectProvider)
    {
        MessageBox.Show(objectProvider.GetObject().ToString());
    }
}

}

我在不同程序集中的基类上明确使用:

[Serializable]
[DebuggerVisualizer(typeof(MatrixVisualiser))]
public abstract class TwoDMatrix<T> : IMatrix<T>
    where T : IEquatable<T>, IComparable<T>
{
...
}

但是,当我将 dll 复制到 c:\program files (x86)\Visual Studio 11.0\common7\Packages\Debugger\Visualizers 时,当我在代码中遇到断点时,我确实可以选择使用可视化器,但是选择可视化器会抛出一个 FileNotFoundException。它正确识别程序集(包括版本号 1.1.0.0)。

顺便说一句,我目前正在将其作为我正在尝试调试的单元测试运行。

我曾尝试使用 FusionLogger 来诊断此问题,但它没有在日志中显示为错误。

这可能与问题有关:https ://stackoverflow.com/questions/19118023/how-to-setup-debugger-visualizer-for-vs2012

4

0 回答 0