2017-10-19 139 views
0

我一直在爲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工作。我可以關閉這個問題,但這個問題並沒有真正解決...... –

回答

2

顯然擴展本身很好。問題在於使用VSIX打包或激活實際的可視化工具。我會爲此創建一個新問題。

[編輯]事實證明,VSIX包安裝不能被用於託管調試器可視化。沒有錯誤,但它根本無法工作。 只有安裝託管調試器可視化器的方法是將文件複製到Visualizers文件夾(原始問題中的參考)。您可以手動或通過MSI執行此操作。這需要記錄!

+0

你可以將它標記爲答案,這樣可以幫助其他社區成員獲得同樣的問題。 –

相關問題