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

ADN Club => Autodesk App Store (ранее Autodesk Exchange Apps) => Тема начата: Doublefish от 12-03-2015, 10:09:53

Название: Как организовать один bundle для разных версий внешней системы?
Отправлено: Doublefish от 12-03-2015, 10:09:53
Добрый день

Подскажите пожалуйста, если например есть один и тот же плагин, но под разные версии другой внешней системы, то надо клонировать 3 раза и получить три одинаковых названия, описания и при этом в каждый загрузить три разных bundle которые  отличаются только dll или как то по другому это можно сделать?
Название: Re: Вопрос про версии
Отправлено: Александр Ривилис от 12-03-2015, 10:31:17
Один bundle для всех версий: http://adndevblog.typepad.com/autocad/2013/01/autodesk-autoloader-white-paper.html
Название: Re: Вопрос про версии
Отправлено: Алексей Кулик от 12-03-2015, 11:46:50
Правила форума (особенно п.4.3.) написаны для красоты?
Doublefish, меняй название!
Название: Re: Как организовать один bundle для разных версий внешней системы?
Отправлено: Doublefish от 12-03-2015, 12:27:32
Прочитал ещё раз - там про это не сказано

Если всё в один bundle, например тогда
папка Win64 в папке 2014 будет содержать:
- system_v1.dll
- system_v2.dll
- system_v3.dll

в xml прописывается dll которую надо грузить, но на компьютере, например, установлена Внешняя система 2 и надо загрузить именно system_v2.dll, а не system_v1.dll и system_v3.dll. Как быть в этом случае? Надо сделать какую-то одну общую dll в которой определять какая версия системы установлена на компьютера, прописать её в xml и уже в ней грузить system_v2.dll ? или как-то по другому?

переименовал (первоначально сам не знал как сформулировать про версии чтобы понятнее была суть)
Название: Re: Как организовать один bundle для разных версий внешней системы?
Отправлено: Алексей Кулик от 12-03-2015, 12:28:31
переименовал (первоначально сам не знал как сформулировать про версии чтобы понятнее была суть)
Тема до сих пор не переименована
Название: Re: Как организовать один bundle для разных версий внешней системы?
Отправлено: Doublefish от 12-03-2015, 12:31:09
что-то не сохранилось - теперь точно должно было сохраниться
Название: Re: Как организовать один bundle для разных версий внешней системы?
Отправлено: Александр Ривилис от 12-03-2015, 12:45:55
но на компьютере, например, установлена Внешняя система 2 и надо загрузить именно system_v2.dll, а не system_v1.dll и system_v3.dll.
Что такое "Внешняя система 2"? Я подразумевал, что речь идёт о AutoCAD или одной из вертикалок. Если я прав, то ничего дополнительного делать не нужно.
Пример:
Код - XML [Выбрать]
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <ApplicationPackage SchemaVersion="1.0" AutodeskProduct="AutoCAD" ProductType="Application" Name="DWG MgdDBG" AppVersion="1.0.0" Description="Debugging tools for AutoCAD - MgdDBG" Author="Fenton Webb" Icon="./Contents/Resources/resource/Inspector.jpg" AppNameSpace="adn.exchange.autodesk.com" OnlineDocumentation=" " HelpFile="./Contents/Resources/helpfile.html" ProductCode="{DB35F952-289A-4453-A46D-B424A6FCFDFB}" UpgradeCode="{E5B78003-2D7B-490F-B947-65D804392151}" SupportedLocales="Enu">
  3.   <CompanyDetails Name="Autodesk" Phone=" " Url=" www.autodesk.com" Email=" adn.autodesk.com" />
  4.   <RuntimeRequirements OS="Win32|Win64" Platform="AutoCAD|AutoCAD*" SeriesMin="R18.2" SeriesMax="R19.0" />
  5.   <Components Description="AutoCAD 2012">
  6.     <RuntimeRequirements OS="Win32|Win64" Platform="AutoCAD*|AutoCAD" SeriesMin="R18.2" SeriesMax="R18.2" />
  7.     <ComponentEntry AppName="DWGMgdDBG" Version="1.0.0" ModuleName="./Contents/Resources/DWGMgdDbgSource/bin/Debug2012/MgdDbg.dll" AppDescription="Debugging tools for AutoCAD - MgdDBG" />
  8.   </Components>
  9.   <Components Description="AutoCAD 2013">
  10.     <RuntimeRequirements OS="Win32|Win64" Platform="AutoCAD*|AutoCAD" SeriesMin="R19.0" SeriesMax="R19.0" />
  11.     <ComponentEntry AppName="DWGMgdDBG" Version="1.0.0" ModuleName="./Contents/Resources/DWGMgdDbgSource/bin/Debug2013/MgdDbg.dll" AppDescription="Debugging tools for AutoCAD - MgdDBG" />
  12.   </Components>
  13. </ApplicationPackage>
Т.е. тут и AutoCAD (и вертикальные приложения) 2012 и 2013 x86 и x64
Если же речь идёт о каком-то совершенно другом приложении, то тебе самому придётся с этим разбираться.
Название: Re: Как организовать один bundle для разных версий внешней системы?
Отправлено: Doublefish от 12-03-2015, 14:00:21
С самим автокадом всё понятно - речь идет о загрузки dll зависящих от другой установленной программы

Под внешней системой понимается любая другая программа НЕ  AutoCAD - например три разные версии программы не AutoCAD с версиями  9, 10 и 11

Если три bundle нельзя опубликовать под три версии другой программы - то тогда как запихать всё в один bundle чтобы подгрузилась именно нужная dll на компьютере для определённой версии установленной программы?

И зачем тогда нужна кнопка  clone на  apps.exchange https://apps.exchange.autodesk.com?
Название: Re: Как организовать один bundle для разных версий внешней системы?
Отправлено: Александр Ривилис от 12-03-2015, 14:06:45
Если три bundle нельзя опубликовать - то тогда как записхать всё в один bundle чтобы подгрузилась именно нужная dll ?
Значит делаешь свой загрузчик (dll), который не зависит от версии "программа НЕ  AutoCAD" и который сам загрузит в зависимости от версии этой "программа НЕ  AutoCAD" то что нужно. Как он определит какая версия этой ""программа НЕ  AutoCAD" установлена, или если установлено несколько её версий, то какую версию нужно использовать - решать тебе. Это при помощи PackageContents.xml ты реализовать не сможешь.
Название: Re: Как организовать один bundle для разных версий внешней системы?
Отправлено: Doublefish от 12-03-2015, 14:11:35
 :(
Спасибо за разъяснение.
Название: Re: Как организовать один bundle для разных версий внешней системы?
Отправлено: Александр Ривилис от 12-03-2015, 14:15:49
Спасибо за разъяснение.
Мне честно говоря даже в голову не могло прийти, что можно рассчитывать на то, что Application Manager будет уметь анализировать версии каких-то посторонних приложений.  ;)
Название: Re: Как организовать один bundle для разных версий внешней системы?
Отправлено: Doublefish от 12-03-2015, 14:26:29
Не - первоначальный вопрос возник  как опубликовать на  https://apps.exchange.autodesk.com три bundle с одним названием, но с разными dll (потому что они есть) и с указанием что они для разных версий внешней программы, а не про xml.

Подскажите, а в каких, например, случаях может понадобиться кнопка Clone?
Название: Re: Как организовать один bundle для разных версий внешней системы?
Отправлено: Александр Ривилис от 12-03-2015, 14:34:37
Подскажите, а в каких, например, случаях может понадобиться кнопка Clone?
Не в курсе. Думаю что для создания подобного приложения с аналогичными настройками, которые потом "вручную" донастраиваются.
Название: Re: Как организовать один bundle для разных версий внешней системы?
Отправлено: Doublefish от 12-03-2015, 15:09:53
Оказывается кнопка clone нужна только если требуется опубликовать для другой платформы и языка.