добавь перед namespaceЛично я такую штуку ни разу не делал ))Код - C# [Выбрать]
[assembly: CommandClass(typeof(YouNameSpace.Commands))]
Лично я такую штуку ни разу не делал ))Да, у меня и без этого работет, если конечно static класс. Но где-то читал, что с этим Автокад быстрей найдет команды, поэтом у леплю во всех проектах. И еще вот это для класса инициализации
Лично я такую штуку ни разу не делал ))Можно не делать. Главное, чтобы если такая строка есть, чтобы она ссылалась на правильный класс.
все равно не видитпеределал весь класс как static, не помогло
ну а static-то где ж ?
- Версия Net frameworkВерсия Net framework 4.5
- Изменения acad.exe.config
- Значение false в CopyLocal для ссылок на библиотеки автокадазначения false на всех ссылках на библиотеки автокада поставил
Версия Net framework- не загрузится вообще вся библиотека, инициализации не будет. И автокад-то стоит - значит и фреймворк.
Изменения acad.exe.config- а что там?
Значение false в CopyLocal- как бы оно повлияло? акад по любому свои библиотеки загрузит
Доверительная зона- если отказать на запрос загрузки - тогда и инициализации не будет
ЦитироватьКонфликт библиотек. Команды работать не будут.
Значение false в CopyLocal
- как бы оно повлияло? акад по любому свои библиотеки загрузит
Значит топикстартер где-то что-то от нас утаиваетЯ готов выдать вам любую информацию :) скажите только какая вам нужна. Библиотеки подгружал из папки автокада 2015, да и плагин то выполняет метод инициализации, проблема лишь в том что не видит команды. Напомню что в 2013 у меня тоже все работает. Давайте попытаемся понять где может быть загвоздка. Прикреплю архив проекта
Я вот создал новый проект: Net Framework 4.5, библиотеки для 2016 автокада. Скопировал полностью код из топика, собрал сборку, запустил в 2016 автокаде - все работает
Ты специально игнорируешь форматирование? Читай мою подпись.Просмотрел, разобрался, в дальнейшем постараюсь не повторять.
А попробуй переименовать команду. Может быть такая команда уже определена в автокаде. В другой сборке или в лиспе.Нет, не помогло. Да и, полагаю, он бы видел хоть какую-нибудь из этих команд в данной ситуации
P.S.: Убедись, что у тебя в каталоге с dll-файлом нет никаких посторонних файлов (например, dll-файлов AutoCAD)нет, подгружаю dll прямо из проекта, там у меня только он.
Автокад у меня полноценный, обе версииКак минимум у тебя не просто AutoCAD, а вертикальное приложение (например, AutoCAD Architecture или AutoCAD Civil 3D) судя по сборке AecBaseMgd.dll
Как минимум у тебя не просто AutoCAD, а вертикальное приложение (например, AutoCAD Architecture или AutoCAD Civil 3D) судя по сборке AecBaseMgd.dllсборки добавлял из-за попыток что-то исправить. Автокад чистый.
1) Скачай и установи ObjectARX SDK 2015: http://usa.autodesk.com/adsk/servlet/item?siteID=123112&id=785550все это на всякий случай скачал и установил
2) Скачай и установи AutoCAD .NET Wizard: https://github.com/ADN-DevTech/AutoCAD-Net-
сборки добавлял из-за попыток что-то исправить. Автокад чистый.В чистом AutoCAD этой сборки нет. Соотвественно тот проект, который ты выложил просто бы не собрался. Вполне допускаю, что там каша, а не AutoCAD.
все это на всякий случай скачал и установилИ? Какой результат? Сборку создал при помощи AutoCAD .NET Wizard? Она грузится в AutoCAD? Команда _MyCommand (она автоматом создаётся AutoCAD .NET Wizard) запускается?
Есть идеи?Идея:
В чистом AutoCAD этой сборки нет. Соотвественно тот проект, который ты выложил просто не собрался.в данный момент в папке Autodesk у меня установлены автокад 13 и 15, civil 15 и Revit 15. Но все библиотеки я брал только из папки Автокад 15. Как туда попала вышеупомянутая - не знаю, но я вручную ничего не копировал.
Цитата: Zombiy от 10-03-2016, 17:06:26
все это на всякий случай скачал и установил
И? Какой результат? Сборку создал при помощи AutoCAD .NET Wizard? Она грузится в AutoCAD? Команда _MyCommand (она автоматом создаётся AutoCAD .NET Wizard) запускается?
Есть продвижения! Если создать новый документ в 2015, то тоже все работает, но стоит запустить любой существующий - команда не появляется.
Всем спасибо за помощь, так или иначе узнал много нового.Вот тебе еще новое: добавление пути доступа к вспомогательным файлам не делает сборку доверенной. Для этой цели есть Доверенные местоположения:
Но думаю, что причина в чем-то другом. Иначе код в Initialize у тебя бы тоже не работал.каждый раз когда я добавлял свою библиотеку в 2015 он спрашивал "уверены ли вы, что хотите загрузить файл из этого источника?"(или вроде того), а 2013 этого не делал, и там все работало. Это и привело меня к мысли что надо добавить папку в доверенные местоположения (ну либо во вспомогательные файлы)
Если создать новый документ в 2015, то тоже все работает, но стоит запустить любой существующий - команда не появляется.Ты как грузишь свою dll-сборку?
Ты как грузишь свою dll-сборку?Раньше через NETLOAD я выбирал путь к библиотеке, которая находилась в моем проекте, сейчас я создал в папке автокада свою папку MyLibruary, добавил ее в доверенные местоположения, и закинул туда свою библиотеку. В дальнейшем планирую добавить ее в реестр, что бы не подгружать каждый раз
1. Какое значение системной переменной SECURELOAD: https://knowledge.autodesk.com/support/autocad/learn-explore/caas/CloudHelp/cloudhelp/2016/ENU/AutoCAD-Core/files/GUID-541566C6-2738-49DD-87C3-C1490E924A02-htm.htmlПеременная убирает ограничения на доверенные папки, действительно удобно, и теперь можно подгружать библиотеку откуда угодно
2. Если ты убираешь папку MyLibruary из доверенных папок то твой модуль работает?Вопрос видимо действительно не решен, хоть и снят. Не понятно почему команда вчера отказывалась появляться.
Вопрос видимо действительно не решен, хоть и снят. Не понятно почему команда вчера отказывалась появляться.Вот теперь я удовлетворён!
Сейчас попытался восстановить вчерашнюю ситуацию (удалил ключ из реестра, удалил доверенную папку, вернул значение SECURELOAD в "1". Перезапустил автокад команды не было. Загрузил библиотеку через NETLOAD, принял сообщение о том что использую библиотеку из недоверенной папки и команда появилась как ни в чем не бывало. Почему этого не происходило вчера, не понятно :( Зря только отвлек Вас.