如何提高.NET插件开发速度?

Ste*_*uts 4 .net autocad linqpad objectarx autocad-plugin

我正在开发一个 AutoCAD 插件,它使用 .NET 4.6 程序集。我发现开发过程非常令人沮丧;API 非常大,除了入门之外的文档也到处都是,而且很难找到。完成任何事情的唯一方法似乎就是在 Visual Studio 中制作函数原型并查看它是否有效。然后需要几分钟的时间来加载 AutoCAD 并附加调试器,这破坏了我的原型制作工作流程。

如果我可以使用 Linqpad 之类的东西来制作我的应用程序原型,这样我就可以找到我正在寻找的数据,那将会非常方便。我并不认同使用 Linqpad 的想法;然而,如果我缺少另一种技术,我很想听听。

我不确定这是否是我可以通过专业版实现的目标,但由于没有试用,我无法找到答案。

Nik*_*Nik 5

确实,API 确实很大,而且某些功能的文档记录有些少。我发现很难开始,但是一旦我熟悉了核心概念和功能,我就开始非常喜欢使用它,因为一旦你“掌握了它”,API 就非常强大并且易于使用。我不确定您检查了哪些来源,但我从这个开发人员文档开始。向下滚动到培训实验室。我建议您至少通读一下 ObjectARX 和 .NET 培训实验室。花几天时间完成 .NET 实验室,因为它将为您节省无数时间。

至于调试,下面的设置应该为您提供最有效和高效的方法(这里我使用 VS 2015 和 AutoCad 2015)。在项目属性中的“调试”选项卡下,您的设置应如下所示:

  1. 选中“启动外部程序:”并输入 AutoCad 可执行文件的路径。这适用于其他版本的 AutoCad。
  2. 在“命令行参数:”字段中,输入/nologo。这将显着加快 AutoCad 的启动速度。

在此输入图像描述

要将 dll 自动加载到 AutoCad 中,您可以通过注册表(我的首选方式)或通过 acad20xxdoc.lsp 或 acad.lsp (AutoCad 默认情况下会为您打开的每个文档或 AutoCad 启动时分别运行这些脚本)。您可以在这篇文章中找到详细信息。

现在按F5将启动 AutoCad 并加载调试器。您现在可以像处理任何其他代码一样单步执行代码行。在代码开头放置一个断点,然后在 AutoCad 中执行命令。你的断点应该被击中。

Aside: /nologo还可以添加到 AutoCad 的桌面快捷方式,以加快 AutoCad 用户的速度。可以将其添加到快捷方式属性中的“目标:”字段。IE"C:\Program Files\Autodesk\AutoCAD 2015\acad.exe" /nologo

注意:一个可能的问题!确保项目引用的任何 AutoCad dll 的属性设置为:

  1. 嵌入互操作类型 -> False
  2. 复制本地 -> 假。还要确保调试/发布目录中没有 AutoCAD dll(即acmgd.dll或任何名称以“ac”开头的 dll)。删除您找到的任何内容。不这样做会导致很难追踪的错误和崩溃。