显示调试器没有显示在Visual Studio 2017

问题描述:

我一直在为Visual Studio 2017的显示调试器工作,并且一切都很好,但它不显示在类型的显示调试器列表中。我试过在VS的临时实例中进行调试并手动安装VSIX。我已经检查了一些我在网上找到的项目,而且一切似乎都一样。什么会造成这种情况?我担心这是2017年的变化,没有文档记录(VS SDK Github项目没有显示调试器样本,VS模板也没有参考它)。显示调试器没有显示在Visual Studio 2017

我的项目是一个类库,.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包装!

+0

感谢您在此分享您的解决方案,如果此问题已得到解决,请不要在问题中发布解决方案,只要将其作为答案发布,然后将其标记为答案。所以它可以帮助其他社区成员获得同样的问题。祝你有美好的一天:) –

+0

当然。这个问题已经解决,但它仍然没有实际的工作。如果我将该DLL拖到Visualizers文件夹中,它将起作用。即使VSIX包含该DLL,即使ProvideAutoLoad设置为UIContextGuids80.Debugging(并且该程序包确实激活),它仍然无法从VSIX工作。我可以关闭这个问题,但这个问题并没有真正解决...... –

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

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

+0

你可以将它标记为答案,这样可以帮助其他社区成员获得同样的问题。 –