Visual studio 2012 无法加载DebuggerVisualizer
我遇到了类似的问题,我创建了一个调试可视化程序:Visual studio 2012 无法加载DebuggerVisualizer,visual-studio-2012,reflection,debuggervisualizer,Visual Studio 2012,Reflection,Debuggervisualizer,我遇到了类似的问题,我创建了一个调试可视化程序: using System.Windows.Forms; using Microsoft.VisualStudio.DebuggerVisualizers; [assembly: System.Diagnostics.DebuggerVisualizer(typeof(MatrixVisualizers.MatrixVisualiser), typeof(VisualizerObjectSource), Description="Visualiz
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>
{
...
}
[可序列化]
[DebuggerVisualizer(typeof(MatrixVisualiser))]
公共抽象类TwoDMatrix:IMatrix
其中T:i可比,i可比
{
...
}
但是,当我将dll复制到c:\program files(x86)\Visual Studio 11.0\common7\Packages\Debugger\Visualizers时,我确实可以选择在代码中遇到断点时使用可视化程序,但选择可视化程序会引发FileNotFoundException。它正确标识程序集(包括版本号1.1.0.0)
顺便说一句,我目前正在运行一个单元测试,我正试图调试它
我曾尝试使用FusionLogger诊断此问题,但在日志中没有显示为错误
这可能与以下问题有关:您的测试项目还通过属性依赖可视化工具DLL。它永远不会在VS目录中找到该DLL。不确定该如何工作,示例显示了框架类的可视化工具并使用[DebuggerVisualizer]目标属性。您最好将可视化工具DLL保留在测试项目生成目录中。将可视化工具DLL添加到测试生成目录同样不起作用,除非我在要调试和可视化的特定测试中显式加载程序集。也就是说,我必须在测试开始时添加
Assembly.Load(“MatrixSualizers,Version=1.1.0.0,Culture=neutral,PublicKeyToken=null”
。这对我来说似乎完全错误,dll肯定应该由IDE加载,而不是由我的代码加载。为了澄清这一点,我编写了一个非常简单的控制台应用程序,其主要功能是Assembly.Load(“MatrixSualizers,Version=1.1.0.0,Culture=neutral,PublicKeyToken=null”);var sut=GetAMatrix();Console.WriteLine(sut);
如果我在Console.WriteLine
上中断并可视化它是成功的(使用构建目录中的dll),但是如果我删除第一行它就会失败