| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > .NET > Как загружать сборку .NET в AutoCAD?

Как загружать сборку .NET в AutoCAD?

Ответ
Поиск в этой теме
Непрочитано 25.04.2011, 12:27 #1
Как загружать сборку .NET в AutoCAD?
Shraybicus
 
Регистрация: 05.12.2010
Сообщений: 104

Здравствуйте!

Подскажите пожалуйста, как запускать сборку .NET с кнопки?

Способ загрузки с помощью команды NetLoad в курсе. Через лисп (command "netload" "путь к файлу dll") неудобен, по причине того, что надо прописывать путь к файлу dll.

Последний раз редактировалось Shraybicus, 25.04.2011 в 12:36.
Просмотров: 6746
 
Непрочитано 25.04.2011, 12:35
#2
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Shraybicus Посмотреть сообщение
Здравствуйте!

Подскажите пожалуйста, как запускать сборку .NET с кнопки?
создаёшь кнопку как обычно, и вешаешь на неё команду _netload. При нажатии на кнопку в открывшемся диалоговом окне указываешь нужную библиотеку. Или ты хочешь конкретную библиотеку загружать по клику на кнопке?
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Автор темы   Непрочитано 25.04.2011, 12:38
#3
Shraybicus


 
Регистрация: 05.12.2010
Сообщений: 104


Цитата:
Сообщение от hwd Посмотреть сообщение
создаёшь кнопку как обычно, и вешаешь на неё команду _netload. При нажатии на кнопку в открывшемся диалоговом окне указываешь нужную библиотеку. Или ты хочешь конкретную библиотеку загружать по клику на кнопке?
Ты написал быстрее, чем я скорретировал свой пост.
Shraybicus вне форума  
 
Непрочитано 25.04.2011, 12:40
#4
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Shraybicus Посмотреть сообщение
Ты написал быстрее, чем я скорретировал свой пост.
Я не понял сути проблемы. Ты хочешь, чтобы при нажатии на кнопку открывалось диалогово окно загрузки .net-библиотек?
^C^C_NetLoad
Оно?
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Автор темы   Непрочитано 25.04.2011, 12:45
#5
Shraybicus


 
Регистрация: 05.12.2010
Сообщений: 104


Цитата:
Сообщение от hwd Посмотреть сообщение
Я не понял сути проблемы. Ты хочешь, чтобы при нажатии на кнопку открывалось диалогово окно загрузки .net-библиотек?
^C^C_NetLoad
Оно?
Нет, чтобы жмакнул на кнопку и сразу был результат выполнения программы, без вывода диал. окна с предоставлением возможности загрузки сборки.

Типа такого сопособа:
^C^C(command "netload" "c://myproject.dll");doEnyThing;

Но без указания пути к сборке.

Аналогия с загруской лисп приложений:
^C^C(load "myprog.lsp");myProg;

Указывать не надо путь, т.к. достаточно разместить файл с программой в папке, к которой есть доступ у AutoCAD.
Shraybicus вне форума  
 
Непрочитано 25.04.2011, 13:09
#6
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Shraybicus Посмотреть сообщение
Нет, чтобы жмакнул на кнопку и сразу был результат выполнения программы, без вывода диал. окна с предоставлением возможности загрузки сборки.

Типа такого сопособа:
^C^C(command "netload" "c://myproject.dll");doEnyThing;

Но без указания пути к сборке.

Аналогия с загруской лисп приложений:
^C^C(load "myprog.lsp");myProg;

Указывать не надо путь, т.к. достаточно разместить файл с программой в папке, к которой есть доступ у AutoCAD.
Ну так а проблема в чём? Добавь в каталог поиска путь к той директории, в которой у тебя хранятся .net-библиотеки и можно не указывать полный путь. В этом каталоге каждый плагин у меня имеет свой подкаталог. Вызывать его загрузку и выполнение команды, определённой в нём можно к примеру так:
^C^C(command "_netload" "textgost/AcadCommands.dll");hwd.dt;
Как видишь, общий путь я не указываю. Указываю лишь имя подкаталога плагина, дабы под каждый плагин не добавлять в профиль новый каталог поиска.
Четыре типа плагинов - четыре базовых каталога:



Внутри них каждый плагин находится в своём подкаталоге.

p.s. Undependent пока не переименован в Independent
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 25.04.2011 в 13:22.
hwd вне форума  
 
Автор темы   Непрочитано 25.04.2011, 13:45
#7
Shraybicus


 
Регистрация: 05.12.2010
Сообщений: 104


hwd,

Я скопировал сборку MyFirstProject.dll в папку, которая подключена:



При выполнении команды
(command "_netload" "MyFirstProject.dll")
выдает сообщение об ошибке в несколько строчек.
Миниатюры
Нажмите на изображение для увеличения
Название: noname.jpg
Просмотров: 1722
Размер:	68.0 Кб
ID:	58248  
Shraybicus вне форума  
 
Непрочитано 25.04.2011, 14:03
#8
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Shraybicus Посмотреть сообщение
hwd,

Я скопировал сборку MyFirstProject.dll в папку, которая подключена:



При выполнении команды
(command "_netload" "MyFirstProject.dll")
выдает сообщение об ошибке в несколько строчек.
Текст ошибки сам додумаешься показать, или намекнуть на это?
Мой предыдущий пост проверен на практике, прежде чем был опубликован. всё отработало как нужно.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Автор темы   Непрочитано 25.04.2011, 14:15
#9
Shraybicus


 
Регистрация: 05.12.2010
Сообщений: 104


Цитата:
Сообщение от hwd Посмотреть сообщение
Текст ошибки сам додумаешься показать, или намекнуть на это?
я думал, что ошибка явная где-то.)

Вот:

Код:
[Выделить все]
Команда: (command "_netload" "MyFirstProject.dll")
_netload Имя файла сборки: MyFirstProject.dll Не удалось загрузить сборку. 
Сведения об ошибке: System.IO.FileNotFoundException: Невозможно загрузить файл 
или сборку "file:///\\Krutova\work\Блок-1 БАЭС\Исходные данные\от 
БАЭС\ВВ-220\MyFirstProject.dll" или один из зависимых от них компонентов. Не 
удается найти указанный файл.
Имя файла: "file:///\\Krutova\work\Блок-1 БАЭС\Исходные данные\от 
БАЭС\ВВ-220\MyFirstProject.dll"
   в System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, 
Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, 
Boolean throwOnFileNotFound, Boolean forIntrospection)
   в System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, 
Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, 
Boolean throwOnFileNotFound, Boolean forIntrospection)
   в System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence 
assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
   в System.Reflection.Assembly.InternalLoadFrom(String assemblyFile, Evidence 
securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm, 
Boolean forIntrospection, StackCrawlMark& stackMark)
   в System.Reflection.Assembly.LoadFrom(String assemblyFile)
   в Autodesk.AutoCAD.Runtime.ExtensionLoader.Load(String fileName)
   в loadmgd()
Предупреждение: регистрация привязки сборок выключена.
Чтобы включить регистрацию ошибок привязки сборок, установите значение 
параметра реестра [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) в 1.
Примечание. Регистрация ошибок привязки сборок может привести к некоторому 
снижению производительности.
Чтобы отключить эту функцию, удалите параметр реестра 
[HKLM\Software\Microsoft\Fusion!EnableLog].
Команда: nil
Очень благодарен, за помощь!
Shraybicus вне форума  
 
Непрочитано 25.04.2011, 14:20
#10
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


ну так он же тебе ясно говорит, что не смог найти загружаемую тобой библиотеку. Будь внимательней... Покажи мне полное имя файла библиотеки, с указанием всего пути к нему. Ты надеюсь с локальной машины грузишь библиотеку, а не из сети? Так же уточни разрядность ОС (x86/x64) версию AutoCAD (2009-2012), имеющиеся у тебя на компе версии .Net Framework (3.0-4.0), на какой версии и разрядности (x86/x64) .net написана библиотека?
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Автор темы   Непрочитано 25.04.2011, 15:08
#11
Shraybicus


 
Регистрация: 05.12.2010
Сообщений: 104


Спасибо!

Но все было банально просто. Я скопировал файл библиотеки на машину другого пользователя, а так как путь почти одинаковый, за исключением того, что машины разные, я не обратил внимая, что не туда скопировал.)

Все работает.) Спасибо!!!
Shraybicus вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > .NET > Как загружать сборку .NET в AutoCAD?

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
.NET приложение "WebMenu" (AutoCAD 2008, 2009, 2010, 2011) - прикладной интерфейс для взаимодействия с веб-страницами. Pastor Готовые программы 14 06.08.2013 10:05
Локализация руководства разработчика по .Net API AutoCAD hwd .NET 22 08.09.2010 19:17
В русской версии AutoCAD 2010 SP1 32-bit файл Acad.PGP содержит ошибки. hwd Баги и пожелания в Autodesk 21 21.04.2010 20:27
Информация по идентификационным кодам программ в сетевых лицензиях Autodesk KSI AutoCAD 1 14.09.2009 15:59