Rubberduck in Autocad

时间:2017-08-04 13:12:47

标签: autocad vbe rubberduck

I see that v2.0: 75% there post mentions Autocad and there is an AutoCADApp.cs file, but I can't seem to find a reference for using Rubberduck outside of Office, under some random host application. There is this Adding a new Host Application to Rubberduck but that is already done for Autocad.

Using Rubberduck under Autocad requires building from source? Or is there a procedure to use the already installed release package?

1 个答案:

答案 0 :(得分:4)

  

免责声明:我参与了Rubberduck项目。

可能你只是错过了AutoCAD的VBE的注册表键,注意到你的不幸。

Rubberduck的安装程序会搜索Microsoft Office安装的位数,然后使用该位置注册自己。

因此,如果您拥有32位Office和32位CAD,那么您已全部设置完毕。与64位Office和64位CAD同上。在您的情况下,您可能有32位Office但64位CAD,因此没有注册表项可以告诉64位VBE加载名为Rubberduck的加载项。

您可以运行在项目维基中找到的PowerShell脚本(它创建32位和64位插件密钥),或手动创建缺少的HKCU注册表项,但随后会看到加载项,但仍然无法加载,因为COM互操作资源是在32位节点下注册的,而CAD将期望RD在64位节点下注册。要注册64位,您必须运行(以管理员身份)64位regasm.exe命令,如"troubleshooting 'add-in could not be loaded'" section of the installer wiki中所述:

  

注意:操作系统的位数无关紧要。

     

打开管理命令提示符(cmd.exe),然后执行以下命令之一:

     

32位主机:

c:\windows\microsoft.net\framework\v4.0.30319\regasm.exe "(path to install folder)\rubberduck.dll" /codebase /tlb
     

64位主机:

c:\windows\microsoft.net\framework64\v4.0.30319\regasm.exe "(path to install folder)\rubberduck.dll" /codebase /tlb

请注意,即使您自己从源代码构建插件,也需要执行这些注册步骤。