C# 显示调试器未在Visual Studio 2017中显示

C# 显示调试器未在Visual Studio 2017中显示,c#,debugging,visual-studio-2017,debuggervisualizer,C#,Debugging,Visual Studio 2017,Debuggervisualizer,我一直在为Visual Studio 2017开发一个显示调试器,一切都很好,但它没有显示在该类型的显示调试器列表中。我尝试在VS的临时实例中调试并手动安装VSIX。我检查了一些在网上找到的项目,所有项目看起来都是一样的。这是什么原因造成的?我担心这是2017年的一个没有记录的变化(VSSDK Github项目没有显示调试器示例,VS模板也没有引用它) 我的项目是一个类库,.NET4.6.1,任何CPU,调试或发行版 最简单的例子仍然不起作用,但这里是: [assembly: DebuggerV

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

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

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


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

感谢您在此处分享您的解决方案,如果此问题已解决,请不要在您的问题中发布解决方案,只需将其作为答案发布,然后将其标记为答案。因此,它可以帮助其他社区成员谁得到同样的问题。祝你今天愉快:)当然。这个问题已经解决了,但实际上仍然不起作用。如果我将DLL拖到Visualizers文件夹中,它就会工作。即使VSIX包含DLL,但即使ProvideAutoLoad设置为UIContextGuids80.Debugging(并且包确实激活),它仍然无法从VSIX工作。我可以结束这个问题,但它并没有真正解决……你可以把它标记为答案,这样它可以帮助其他社区成员解决同样的问题。