我遇到了类似的问题,我创建了一个调试可视化工具:
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