显示未在Visual Studio 2017中显示的调试程序

时间:2017-10-19 22:06:20

标签: c# debugging visual-studio-2017 debuggervisualizer

我一直在为Visual Studio 2017开发显示调试器,一切都很好,但它并没有显示在该类型的显示调试器列表中。我已尝试在VS的临时实例中进行调试并手动安装VSIX。我已经检查了一些我在网上找到的项目,一切看起来都是一样的。什么可能导致这个?我担心2017年的变化是没有记录的(VS SDK Github项目没有显示调试器样本,VS模板也没有引用它)。

我的项目是一个类库,.NET 4.6.1,任何CPU,调试或发布

最简单的例子仍然无效,但现在是:

[assembly: DebuggerVisualizer(typeof(Test.TestVisualizer), typeof(VisualizerObjectSource),
    Target = typeof(System.String), Description = "Test Viz")]
namespace Test
{
    public class TestVisualizer : DialogDebuggerVisualizer
    {
        override protected void Show(IDialogVisualizerService windowService, IVisualizerObjectProvider objectProvider)
        {
            var str = objectProvider.GetObject()?.ToString();

            MessageBox.Show($"Value: {str}", "Visualizer");
        }
    }
}

更新:除了VSIX之外,我修改了项目文件以保存输出文件。事实证明,VSIX实际上并没有包含DLL。当我将DLL文件复制到Documents / Visual Studio 2017 / Visualizers文件夹时,它可以工作。我想我只需要弄清楚VSIX包装!

1 个答案:

答案 0 :(得分:3)

显然扩展本身很好。问题在于VSIX打包或激活实际的可视化工具。我将为此创建一个新问题。

[编辑]事实证明,安装的VSIX软件包不能用于托管调试器可视化工具。没有错误,但它根本行不通。安装托管调试器可视化工具的唯一方法是将文件复制到Visualizers文件夹(原始问题中的参考)。您可以手动或使用MSI执行此操作。这需要记录在案!