【问题标题】:Rubberduck in AutocadAutocad 中的橡皮鸭
【发布时间】:2018-01-12 10:49:17
【问题描述】:

我看到 v2.0: 75% there 帖子提到了 Autocad,并且有一个 AutoCADApp.cs 文件,但我似乎无法在一些随机主机应用程序下找到在 Office 之外使用 Rubberduck 的参考。有这个Adding a new Host Application to Rubberduck,但 Autocad 已经完成了。

在 Autocad 下使用Rubberduck 需要从源代码构建? 或者有没有使用已经安装的release包的流程?

【问题讨论】:

  • 不应将其标记为 vba。
  • Rubberduck 是一个处理 VBA 的扩展。添加 VBA 标签将使其像您一样弹出到 vba 开发人员队列中。这服务于 1) 我的目的,因为该社区中可能有人在使用它,并且 2) 有助于将这个不错的附加组件推广到 VBA 社区。但可以肯定的是,为什么不呢。标记已删除。
  • 您好,再次感谢您的捐赠! =)
  • 感谢您付出所有努力 :)

标签: autocad vbe rubberduck


【解决方案1】:

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

您可能只是缺少 AutoCAD 的 VBE 的注册表项来注意到您的鸭子。

Rubberduck 的安装程序会搜索您安装的 Microsoft Office 的位数,然后使用该位数进行注册。

因此,如果您拥有 32 位 Office 和 32 位 CAD,则一切就绪。 64 位 Office 和 64 位 CAD 也是如此。在您的情况下,您可能拥有 32 位 Office 但 64 位 CAD,因此没有注册表项可以告诉 64 位 VBE 加载名为 Rubberduck 的加载项。

您可以运行在项目的 wiki 中找到的 PowerShell 脚本(它会创建 32 位和 64 位插件键),或者手动创建缺少的 HKCU 注册表键,但随后会看到插件,但仍然无法t 加载,因为 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

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

【讨论】:

  • 在这里使用 Autocad 2015;运行命令并将安装路径添加到受信任的路径似乎没有帮助,我的意思是菜单不会显示在 VBA ide 中。
  • Rubberduck 是否列在 VBE 的加载项管理器中?如果没有,则您缺少 HKCU:Software\Microsoft\VBA\VBE\6.0\AddIns64\Rubberduck.Extension 密钥(或其 32 位等效项)
  • AddIns64 丢失(但 AddIns64 存在),我手动创建了那个密钥。它抱怨Rubberduck could not be loaded 所以我从命令提示符(管理员)运行注册例程。现在我有following exception
  • 这里的假设是相同的rubberduck.dll 将用于32 位和64 位命令((path to install folder) 在上面的两个调用中是相同的)。
  • 啊,废话。我不确定我们使用的是哪个版本的 AutoCAD 互操作程序集……但肯定取得了一些进展 - 至少它正在 尝试 加载它。我认为您可以尝试用您已安装的文件覆盖我们打包的互操作 .dll(尽管可能会搞砸 RD 安装)。很确定这只是一个版本的事情。我们需要找到更好的方法来做到这一点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-27
  • 2012-09-30
  • 2011-01-28
  • 1970-01-01
  • 1970-01-01
  • 2011-04-16
相关资源
最近更新 更多