【问题标题】:Using a Lisp function to load a .NET plugin into AutoCAD 2014使用 Lisp 函数将 .NET 插件加载到 AutoCAD 2014
【发布时间】:2014-11-01 18:26:22
【问题描述】:

我有一个使用 C# .NET 完成开发的插件。因为我有多个插件希望 AutoCAD 在启动时加载,所以我使用 Lisp 脚本通过一个函数调用加载我的所有插件。由于这是我计划的许多 .NET 插件中的第一个,因此我使用 Lisp 程序来加载每个 DLL 文件。其功能是

(defun C:LoadDLL ()
    (command "NETLOAD" "ShowHideLayers.dll")
)

包含该函数的 Lisp 文件和 ShowHideLayers.dll 都位于 AutoCAD 漫游数据的 .bundle 文件夹中。

但是,当我启动 AutoCAD 并调用 LoadDLL 时,我得到一个错误并且不知道为什么:

NETLOAD Assembly file name: ShowHideLayers.dll Unable to load ShowHideLayers.dll assembly.

我无法确定错误的原因。我错过了什么?

【问题讨论】:

  • 首先,如果您自己发出 NETLOAD 而不通过 lisp,它会起作用吗?如果是这样,那么我怀疑它要么找到具有相同名称的不同 dll,要么根本没有找到它。在 Acad 中使用 findfile 以确保它可以找到它。如果它没有手动加载,那么您可能需要查找 Fusion 日志以了解 .net 未加载您的程序集的原因。
  • 你为什么使用 lisp 来加载你的库?只需在注册表中的应用程序键中注册它们。您必须将完整路径传递给 netload 命令。

标签: c# .net dll autocad-plugin autolisp


【解决方案1】:

http://through-the-interface.typepad.com/through_the_interface/2008/09/loading-net-mod.html

你可以在 C# 中通过这种方法在不传递命令的情况下做到这一点。

【讨论】:

    【解决方案2】:

    bundle 格式的全部意义在于您不必通过网络加载 DLL。您确定需要这样做吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-22
      • 1970-01-01
      • 1970-01-01
      • 2018-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多