64 位操作系统下, Revit 如何修改代码后再次快速调试新代码

来源:互联网 发布:java项目心得体会 编辑:程序博客网 时间:2024/04/30 05:30

 

Visual Studio (简称VS)提供了暂时中断调试,然后修改代码,接着更新代码就可以实现继续调试运行的功能。但是这个再调试过程中暂时中断修改代码的功能在64位操作系统下无法实现。 这个问题导致64-位上对Revit的二次开发程序的代码修改变的比较麻烦。特别是程序开发过程中,需要反复,就显得更痛苦。

这里我介绍一个办法,能大大减少痛苦,大幅提高工作效率。 :)

 

通常思路是先退出调试模式,如果你不是采用  在Tools菜单下的Attach to Process...方式开始的调试. 下面是痛苦的过程。

    1. Revit会退出

     2. 在VS中你可以修改代码

     3. 编译程序

     4. 重新启动Revit,并加载你的工作模型文件( 反复这个过程特别痛苦,如果模型文件很大,更是。。。)

     5. 如果没有使用addin文件的方式,需要使用addinmanager再次加载一次

     6. 启动命令,再次开始调试。

 

 

高效办法:

使用AddinManager,并且使用Attach to process 这个方式。

 顺便说一点AddinManager, 在REvit SDK中可以找到其安装程序。安装后,启动Revit就可以在 add-in- > External Tools 下面发现。在安装到的目录有AddinManager的使用说明,很有帮助。

AddinManager可以加载后立即运行插件中的命令(无需重启动Revit),非常高效方便。 更高效的是,当你对用Addinmanager已经加载的插件的代码修改并编译后,无需再次加载该dll,直接在addinmanager里面运行你的命令,此时运行的已经是你修改代码后的命令了。你无须做任何工作,AddinManager替你代劳了。AddinManager 自动探测是否有更新的dll产生,如果有,AddinManager会把你的插件dll拷贝一份到一个临时目录,并且加载之。这就是为什么再次编译,虽然生成的dll处于同一个位置,系统没有报告文件正在使用,无法覆盖。

 

好了,赶紧体验下高效办法吧。

注: 我用的是英文VS,请大家你根据你使用的VS语言版本替换下面的一些界面相关的词语。

 

1.  启动VS, 打开你的工程。 启动Revit,加载你的工作模型

2. 在VS中编写编译你的代码,生成dll。

3. 用AddinManager 加载这个dll。 切记,在使用这个方法时,你不能用addin文件的方式来加载dll。否则编译不成功,因为用Addin文件方式加载的插件dll被Revit实实在在的加载了。VS编译时无法覆盖这个dll。

4.  在Visual Studio 2010/2008 的Tools菜单,点击 Attach To Process...命令。在对话框中选择你需要调试的Revit进程。

5.  确保Attach To 里面写的是 Managed code.  (表示对托管代码进行绑定调试)、

6. 点击Attach按钮

7. 在你的代码中设置断点。

8. 在AddinManager里面启动你的命令

9. 运行到断点。你可以看你想看的了。:)

10. 此时想修改一下代码。

11. 点击Debug菜单,再点击Detach All。 (切记不要点击Terminate All)

12. 此时工程退出调试模式,尽情修改你的代码吧!!!

13. 编译工程(猛击Build 菜单下的Build Solution,:))

14. 在Visual Studio 2010/2008 的Tools菜单下,点击 Attach To Process...命令。在对话框中选择你需要调试的Revit进程。

15. 点击Attach按钮

16. 确保你的断点还在

17. 在AddinManager里面再次启动你的命令

18.运行到断点。你可以看你想看的了。:)

 

反复以上过程,可以反复修改反复调试。

无需重启REvit,无需再打开重复打开rvt文件。这个解决方案会让你每天多1个小时的娱乐和与陪同家人的时间:)

 

Enjoy it

 

叶雄进 Joe Ye

Autodesk ADN