Visual Studio 2019 自定義可視化調試工具的坑

Visual Studio  自定義可視化調試工具已有大量文章介紹,這裏不再囉嗦。如果不懂建議看看https://www.cnblogs.com/cyq1162/p/4551652.html 

https://docs.microsoft.com/en-us/visualstudio/debugger/walkthrough-writing-a-visualizer-in-csharp?view=vs-2019

本人也胡亂弄了個可視化調試 顯示一組中間計算曲線,開始一切順利,技術難度也不大。

代碼及運行效果如下:

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using FirstLineTamping.Infrastructure.Measure;
using LineView;
using Microsoft.VisualStudio.DebuggerVisualizers;
[assembly: System.Diagnostics.DebuggerVisualizer(typeof(TMGC_DV.TMGC_Visualizer), typeof(VisualizerObjectSource), Target = typeof(FirstLineTamping.Infrastructure.Measure.MeasSet), Description = "TMGC MeasSet Visualizer")]
[assembly: System.Diagnostics.DebuggerVisualizer(typeof(TMGC_DV.TMGC_Visualizer), typeof(VisualizerObjectSource), Target = typeof(FirstLineTamping.Infrastructure.Measure.VerschArray), Description = "TMGC VerschArray Visualizer")]
[assembly: System.Diagnostics.DebuggerVisualizer(typeof(TMGC_DV.TMGC_Visualizer), typeof(VisualizerObjectSource), Target = typeof(FirstLineTamping.Contract.Entities.Offsets.TrackOffset), Description = "TMGC TrackOffset Visualizer")]
[assembly: System.Diagnostics.DebuggerVisualizer(typeof(TMGC_DV.TMGC_Visualizer), typeof(VisualizerObjectSource), Target = typeof(List<MeasRecord>), Description = "TMGC List<MeasRecord> Visualizer")]
[assembly: System.Diagnostics.DebuggerVisualizer(typeof(TMGC_DV.TMGC_Visualizer), typeof(VisualizerObjectSource), Target = typeof(FittingMeasure.PosValueArray), Description = "TMGC PosValueArray Visualizer")]
namespace TMGC_DV
{ 
    public class TMGC_Visualizer : DialogDebuggerVisualizer
    {
        protected override void Show(IDialogVisualizerService windowService, IVisualizerObjectProvider objectProvider)
        {
            var s = objectProvider.GetObject();

            Db_Form f = new Db_Form();
            Debug.WriteLine("DialogDebuggerVisualizer :" + objectProvider.ToString ());
            if (s is FirstLineTamping.Infrastructure.Measure.MeasSet)
            {
                f.AddMeasGrph(s as FirstLineTamping.Infrastructure.Measure.MeasSet);
                f.Text = "Measure.MeasSet";
            }
            if (s is FirstLineTamping.Infrastructure.Measure.VerschArray)
            {
                f.AddMeasGrph(s as FirstLineTamping.Infrastructure.Measure.VerschArray);
            }
            if (s is FirstLineTamping.Contract.Entities.Offsets.TrackOffset)
            {
                f.AddMeasGrph(s as FirstLineTamping.Contract.Entities.Offsets.TrackOffset);
            }
            if (s is List<MeasRecord> )
            {
                f.AddMeasGrph(s as List<MeasRecord>);
            }
            if (s is FittingMeasure.PosValueArray)
            {
                f.AddMeasGrph(s as FittingMeasure.PosValueArray);
                f.Text = "PosValueArray";
            }
            f.ShowDialog();

        }
        public static void TestShowVisualizer(object objectToVisualize)
        {
            VisualizerDevelopmentHost visualizerHost = new VisualizerDevelopmentHost(objectToVisualize, typeof(TMGC_Visualizer));
            visualizerHost.ShowVisualizer();
        }
    }
}

運行效果 

昨天更新了到了 Microsoft Visual Studio Professional 2019 版本 16.4.5

我的工具就不會工作了,總是顯示:

在網上搜索半天發現:Visual Studio Professional 2019 要求被調試對象是 “可信任"程序,否則不能使用自定義調試工具!

折騰半天!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章