Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: simson43 от 22-02-2019, 12:41:23

Название: PackageContents.xml RuntimeRequirements
Отправлено: simson43 от 22-02-2019, 12:41:23
как сделать так чтоб приложение загружалось только для Civil?

пишу в Components вот так
Код - XML [Выбрать]
  1. <RuntimeRequirements Platform="Civil3D" />
но в автокаде (Civil как Autocad) все равно загружается
Название: Re: PackageContents.xml RuntimeRequirements
Отправлено: Дмитрий Загорулькин от 22-02-2019, 13:32:04
Да, есть такое.
А чем плохо? Пусть загружается.
Название: Re: PackageContents.xml RuntimeRequirements
Отправлено: simson43 от 22-02-2019, 13:34:11
не зачем.. лишние кнопочки.. к тому же фаталит если тыкать на них из  автокада
Название: Re: PackageContents.xml RuntimeRequirements
Отправлено: Дмитрий Загорулькин от 22-02-2019, 13:43:15
не зачем.. лишние кнопочки..
Это да. Но тут сложно что-то придумать. С точки зрения автозагрузчика, Civil 3D as AutoCAD - это всё равно Civil 3D. Скорее всего, читаются данные о продукте из реестра, без учёта того, как оно запущено. А там прописано, что приложение является сивилом.
к тому же фаталит если тыкать на них из  автокада
Хм, странно. У меня вроде не фаталило ничего... А на чём спотыкается?
Название: Re: PackageContents.xml RuntimeRequirements
Отправлено: simson43 от 22-02-2019, 13:57:03
оно при загрузке проверяет сивил ли это и если нет, то не создает объекты и прочее, ибо создано исключительно для civil
а команды обращаются к этим объектам.. к null...
Название: Re: PackageContents.xml RuntimeRequirements
Отправлено: Александр Ривилис от 22-02-2019, 13:59:08
а команды обращаются к этим объектам.. к null...
Ну так проверяй.
Название: Re: PackageContents.xml RuntimeRequirements
Отправлено: simson43 от 22-02-2019, 14:00:59
можно и так) но хотелось бы вовсе не видеть эту панель в автокад..
Название: Re: PackageContents.xml RuntimeRequirements
Отправлено: Александр Ривилис от 22-02-2019, 14:04:46
simson43,
Панель создаёшь динамически и она грузится из cuix-файла?
Название: Re: PackageContents.xml RuntimeRequirements
Отправлено: simson43 от 22-02-2019, 14:07:51
из ciux файла в Resources
Название: Re: PackageContents.xml RuntimeRequirements
Отправлено: Александр Ривилис от 22-02-2019, 14:09:32
из ciux файла в Resources
Подробнее.
Название: Re: PackageContents.xml RuntimeRequirements
Отправлено: simson43 от 22-02-2019, 14:14:51
.bundle папка
PackageContents.xml
Код - XML [Выбрать]
  1. <ComponentEntry ModuleName="./Contents/Resources/MovePlug.cuix"/>
Название: Re: PackageContents.xml RuntimeRequirements
Отправлено: Дмитрий Загорулькин от 22-02-2019, 14:27:27
Можно попробовать программно выгружать CUIX, если это не Civil.
Название: Re: PackageContents.xml RuntimeRequirements
Отправлено: Александр Ривилис от 22-02-2019, 14:28:44
Дмитрий Загорулькин,
Application.UnloadPartialMenu
Название: Re: PackageContents.xml RuntimeRequirements
Отправлено: Дмитрий Загорулькин от 22-02-2019, 14:31:00
Или наоборот - загружать CUIX только если это Civil. Соответственно, убрать запись о CUIX из PackageContents
Название: Re: PackageContents.xml RuntimeRequirements
Отправлено: simson43 от 22-02-2019, 15:12:44
Можно попробовать программно выгружать CUIX, если это не Civil.
Дмитрий Загорулькин,
Application.UnloadPartialMenu

этот вариант предпочел
Спасибо
Название: Re: PackageContents.xml RuntimeRequirements
Отправлено: simson43 от 14-03-2019, 10:58:57
 только сейчас обнаружил что хоть и метод возвращает true, меню все равно подгружается. Наверное cuix просто после dll загружается?
Название: Re: PackageContents.xml RuntimeRequirements
Отправлено: simson43 от 14-03-2019, 11:10:07
вот такой код сработал
Код - C# [Выбрать]
  1. if (!HelpClass.IsCivil3D())
  2.     App.Idle += App_Idle;
  3.        
  4. private static void App_Idle(object sender, EventArgs e)
  5. {  
  6.     App.UnloadPartialMenu(cuixName);
  7.     App.Idle -= App_Idle;
  8. }
Название: Re: PackageContents.xml RuntimeRequirements
Отправлено: Дмитрий Загорулькин от 14-03-2019, 12:24:26
 только сейчас обнаружил что хоть и метод возвращает true, меню все равно подгружается. Наверное cuix просто после dll загружается?
Да, интерфейс загружается в самую последнюю очередь. Я на эти грабли тоже наступал: http://adn-cis.org/forum/index.php?topic=3046.0
Название: Re: PackageContents.xml RuntimeRequirements
Отправлено: simson43 от 14-03-2019, 13:28:32
значит я сделал все верно)
спасибо)