第3章、运行并调试Addin


Addin应用程序是基于.NET框架的程序集,.Net程序集与NativeCode的DLL有一个重要的区别,.Net程序集一旦被加载其不能像NativeCodeDll那样被卸载。所以如果我们修改了.Net程序的源代码需要重现编译生成的时候必须先关闭掉已经加载了此程序集的Mstn。下面我们来介绍Addin的调试。Addin的调试有两种方式,一种是通过VS启动Mstn进行调试,另一种是将VS附加到已经启动的Mstn进程上进行调试。下面先一步一步介绍第一种方式:

1.在VS中打开您的项目。在项目属性窗体的Debug(调试)分类中设置Start external program(启动外部程序)指向您Mstn CE的microstation.exe,在Command line argument栏中输入一个测试用的DGN文件。注意,这一步骤属于项目设置,对某个项目仅需要做一次即可。下图是我机器上的设置情况:

2.在VS的源代码窗口中找到MyAddins.cs的CreateElement.LineAndLineString1()行,在该行最前列空白处点一下将该行设置为断点。该行最前列将会出现一个橘红色的圆钮,同时,该行代码内容也会高亮显示。如下图所示:

3.在VS的调试工具栏中点击运行按钮(下图中的绿色箭头)将会启动Mstn,待Mstn启动后在键入域键入MDL LOAD csAddins并回车,程序将会运行到断点处暂停,如下图所示:

4.在调试工具栏上有许多工具可用,如下图红色框框住的进入型单步执行(Step Into)和蓝色框框住的越过型单步执行(Step Over)等等。如果您找不到这个工具栏,请选择VS菜单View > Toolbars > Debug。现在让我们点击Step Into工具进入CreateElement.cs的LineAndLineString1方法。

5.此时您可以将鼠标光标移到某个变量上,则该变量的值将会显示出现。如下图所示。

6.点击调试工具栏上的停止调试(Stop Debugging)按钮将停止调试,由VS启动的Mstn也会自动关闭。VS中还提供了大量丰富的调试命令和手段,您可以找专门介绍VS使用的资料来深入学习VS的调试技术,在此不再赘述。

下面介绍另外一种对已经启动的Mstn的调试方法。此方法不需要您事先配置项目属性中的Debug页面。请按如下步骤操作:

1.启动Mstn。


2.在MyAddins.cs的CreateElement.LineAndLineString1()行设置断点。详细操作参见第一种调试方法中的步骤2。

3.在VS中选菜单Debug(调试) > Attach to Process(连接到进程)…,在弹出的连接到进程的对话框中的进程列表中找到并选中microstation.exe(操作技巧:可以用鼠标点击列表头Process使进程以降序排列,这样可以快速找到microstation.exe),点击Select…按钮,弹出如下对话框,选中Manged(v4.6,v4.5,v4.0)选项,然后点击Attach按钮。

4.切回到Mstn,键入MDL LOAD csAddins并回车,此时就进入到了程序调试状态,具体调试方法与以上描述的第一种调试方法相同,参见第一种调试方法中的步骤4和步骤5。