Использование функции Lisp для загрузки подключаемого модуля .NET в AutoCAD 2014

У меня есть плагин, который я закончил разрабатывать на C# .NET. Поскольку у меня есть несколько подключаемых модулей, которые я хочу, чтобы AutoCAD загружал при запуске, я использую сценарий Lisp, который загружает все мои подключаемые модули одним вызовом функции. Поскольку это мой первый из многих запланированных плагинов .NET, я использую программу на Лиспе для загрузки каждого файла DLL. Функция для этого

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

где файл Lisp, содержащий эту функцию, и ShowHideLayers.dll находятся в папке .bundle в перемещаемых данных AutoCAD.

Однако, когда я запускаю AutoCAD и вызываю LoadDLL, я получаю сообщение об ошибке и понятия не имею, почему:

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

Не могу определить причину ошибки. Что мне не хватает?


person Nick Gilbert    schedule 01.11.2014    source источник
comment
Во-первых, если вы запустите NETLOAD самостоятельно, не используя lisp, это сработает? Если это так, то я подозреваю, что это либо находит другую dll с тем же именем, либо просто не находит ее вообще. Используйте findfile в Acad, чтобы убедиться, что он может его найти. Если он не загружается вручную, возможно, вам придется найти журналы Fusion, чтобы понять, почему .net не загрузил вашу сборку.   -  person Joel Lucsy    schedule 02.11.2014
comment
Почему вы используете lisp для загрузки своих библиотек? Просто пропишите их в разделе приложений в реестре. Вы должны передать команде netload полный путь.   -  person Trae Moore    schedule 06.11.2014


Ответы (2)


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

Вы можете сделать это без передачи команд с помощью этого метода в C#.

person David Wolfe    schedule 03.03.2015

Весь смысл формата пакета в том, что вам не нужно загружать DLL по сети. Вы уверены, что вам нужно это сделать?

person David Wolfe    schedule 02.11.2014