Элемент Components используется для определения компонентов, составляющих одну версию подключаемого модуля.
Для определения компонентов каждого подключаемого модуля можно использовать несколько элементов Components. Каждый элемент Components позволяет определить один или несколько компонентов. Сведения о программе и платформе для элемента Components определяются элементом RuntimeRequirements.
Если все компоненты, определенные в элементе Components, применимы к одной и той же платформе, добавлять элемент RuntimeRequirements к каждому элементу ComponentEntry по отдельности не требуется.
Как и элемент RuntimeRequirements, элемент Components может содержать один или несколько следующих элементов.
Ниже рассматриваются основные связи между элементом Components и другими элементами, которые он может содержать.
<Components> <RuntimeRequirements ... /> <RegistryEntries> <RegistryEntry ... /> </RegistryEntries> <SystemVariables> <SystemVariable ... /> </SystemVariables> <EnvironmentVariables> <EnvironmentVariable ... /> </EnvironmentVariables> <ComponentEntry ... > <RuntimeRequirements ... /> <AssemblyMappings> <AssemblyMapping ... /> <AssemblyMappingFolder ... /> </AssemblyMappings> <Commands ...> <Command ... /> </Commands> </ComponentEntry> <ComponentEntry ... /> </Components>
Элемент ComponentEntry является обязательным и позволяет задать сведения о каждом отдельном компоненте в элементе Components.
При необходимости можно задать любое количество элементов ComponentEntry. Типы компонентов могут иметь один из следующих форматов файлов:
Windows и Mac OS
Только для Windows
Элемент ComponentEntry может содержать элемент Commands, если атрибут LoadReasons имеет значение LoadOnCommandInvocation.
Элемент ComponentEntry может иметь следующие присвоенные ему атрибуты.
Атрибут |
Описание |
---|---|
AppName |
Необязательно для AutoLISP, обязательно для ObjectARX и .NET. Имя компонента. Аналогично атрибуту AppName в классе ObjectARX API AcadAppInfo. |
AppDescription |
Описание компонента. Аналогично атрибуту AppDescription в классе ObjectARX API AcadAppInfo. |
AppType |
Тип компонента. Переопределяет тип, полученный из расширения файла в атрибуте ModuleName. Возможны следующие типы компонентов:
|
ModuleName |
Относительный путь к компоненту в пакете. Аналогично атрибуту ModuleName в классе ObjectARX API AcadAppInfo. Тип компонента определяется из расширения файла:
Если в приложении будут обрабатываться несколько языков, то версии конкретного компонента можно задать путем добавления к атрибуту ModuleName кода языка. См. раздел "Поддерживаемые коды языков" для получения полного списка поддерживаемых кодов языков. Прим.: В путях указываются символы '/', а не '\'. Пути задаются относительно корневой папки .bundle.
|
PerDocument |
Только AutoLISP — true, если AutoLISP-файл загружается один раз для каждого документа. По умолчанию используется значение true. |
Loadreasons |
Можно задать несколько значений. Определяет параметры режима загрузки для компонента с атрибутом LoadReasons и исключения параметра LoadOnCommandInvocation. По умолчанию атрибуты LoadOnAutoCADStartup, LoadOnAppearance и LoadOnProxy включены (задано значение True), если атрибут LoadReasons не указан. Если параметры должны быть отключены (задано значение False), то необходимо задать значение для атрибута LoadReasons. По умолчанию атрибут LoadOnCommandInvocation отключен. При его включении атрибуты LoadOnAutoCADStartup и LoadOnAppearance будут отключены, если только они не будут включены явным образом. Если один или несколько элементов Command определяются как составляющие элемента Components, параметр LoadOnCommandInvocation будет включен неявным образом. Дополнительные сведения об атрибуте AcadAppInfo LoadReasons см. в справочном руководстве по ObjectARX. Допустимые значения параметров:
Можно выбрать один из следующих параметров:
|
XamlType |
Тип XAML. В настоящее время поддерживается только значение ContextualTabRule, оно должно быть установлено, если файл XAML назначается атрибуту ModuleName. Файл приложения, в котором используется файл XAML, должен быть указан после элемента ComponentEntry, который содержится в файле XAML. |
Элемент Commands не является обязательным, если параметр LoadOnCommandInvocation включен для атрибута LoadReasons. Используется для указания регистрируемых команд для LoadOnCommandInvocation.
Можно указать несколько элементов Commands.
Элемент Commands может иметь следующий присвоенный ему атрибут.
Атрибут |
Описание |
---|---|
GroupName |
Имя, используемое для систематизации связанных команд. |
Задание глобальных и локальных имен для каждой команды.
Элемент Command может иметь следующие присвоенные ему атрибуты.
Атрибут |
Описание |
---|---|
Global |
Глобальное имя команды. |
Local |
Локальное имя команды. Элементы Command могут быть определены для нескольких языков путем добавления к атрибуту Local кода языка. См. раздел "Поддерживаемые коды языков" для получения полного списка поддерживаемых кодов языков. |
HelpTopic |
Раздел справки, который будет открыт, когда команда активна и нажата клавиша F1. Прим.: Для просмотра раздела справки файл справки должен быть назначен дополнительному модулю. Расположение файла справки для подключаемого модуля указывается при помощи атрибута HelpFile в элементе ApplicationPackage.
|
StartupCommand |
Если задано значение "истина", команда будет выполнена при запуске. |
В следующем примере добавлены две команды, определенные в группе с именем ADSKCMDS:
<Commands GroupName="ADSKCMDS"> <Command Global="HELLOWORLD" Local="ADSKHELLOWORLD"/> <Command Global="DRAWLINE" Local="ADSKDRAWLINE"/> </Commands>
Элемент AssemblyMappings не является обязательным и может содержать один или несколько элементов AssemblyMapping или AssemblyMappingFolder. Элементы AssemblyMapping и AssemblyMappingFolder используются для добавления файлов сборки и путей к папкам во внутренние списки, которые AutoCAD использует для поиска сборок, не найденных в папке установки программы.
Атрибут |
Описание |
---|---|
Name |
Имя элемента ComponentEntry, с которым связана сборка и с которым она должна загружаться. |
Path |
Относительный путь к сборке в пакете. |
Атрибут |
Описание |
---|---|
Path |
Относительный путь к сборкам в пакете. |
В следующем примере добавлены две папки, которые содержат сборки, используемые компонентом:
<AssemblyMappings> <AssemblyMappingFolder Path="./Content/Assemblies" /> <AssemblyMappingFolder Path="./Content/MoreAssemblies" /> </AssemblyMappings>
Элемент RegistryEntries не является обязательным и может содержать один или несколько элементов RegistryEntry. Элемент RegistryEntry содержит определение записи реестра, которую подключаемый модуль должен создать или изменить. Записи сохраняются в реестре Windows или в файле списка свойств (PLIST) на Mac OS.
Атрибут |
Описание |
---|---|
Name |
Имя записи реестра для создания или изменения. |
Value |
Значение, задаваемое для записи реестра. Значение может содержать один из необязательных префиксов: +, -, & и |. Подробную информацию см. в разделе "Префиксы значений переменных". Прим.: Префикс не сохраняется, когда значение применяется к записи реестра.
|
Type |
Тип данных записи реестра. Не является обязательным при изменении существующей записи реестра. Допустимые значения:
Если в записи реестра используется префикс, необходимо определить соответствующий тип данных. Если тип данных не будет указан, операция будет рассматриваться как строковая. |
Flags |
(Необязательно) Создание и редактирование флагов. Можно задать несколько флагов. Для их разделения используйте символ конвейеризации. Поддерживаются следующие флаги:
Прим.: Для изменения значения записи реестра требуется использовать флаг Open или OpenOnce.
|
В следующем примере создается ключ реестра MYREGKEY и добавляется значение STRING и NUMBER.
<RegistryEntries> <RegistryEntry Key="MYREGKEY" Name="STRING" Value="Example" Type="REG_SZ" /> <RegistryEntry Key="MYREGKEY" Name="NUMBER" Value="123" Type="REG_DWORD" /> </RegistryEntries>
Элемент SystemVariables не является обязательным и может содержать один или несколько элементов SystemVariables. Элемент SystemVariable содержит определение системной переменной, создаваемой или изменяемой подключаемым модулем.
Атрибут |
Описание |
---|---|
Name |
Имя системной переменной, которую необходимо создать или изменить. |
Value |
Значение, задаваемое для переменной. Значение может содержать один из необязательных префиксов: +, -, & и |. Подробную информацию см. в разделе "Префиксы значений переменных". Прим.: Префикс не сохраняется, когда значение применяется к переменной.
|
PrimaryType |
Тип данных переменной. Не является обязательным при изменении существующей системной переменной. Допустимые значения:
Если в значении переменной используется префикс, необходимо определить соответствующий тип данных. Если тип данных не будет указан, операция будет рассматриваться как строковая. |
StorageType |
Место хранения значения переменной; если поддерживается. Не является обязательным при изменении существующей системной переменной. Допустимые значения:
|
Owner |
(Необязательно) Имя службы AcRX. Используется, чтобы сделать системные переменные доступными только для чтения и предоставить возможность их изменения только из приложения, регистрирующего имя службы как acrxRegisterService (). |
Flags |
(Необязательно) Создание и редактирование флагов. Можно задать несколько флагов. Для их разделения используйте символ конвейеризации. Поддерживаются следующие флаги:
Прим.: Для изменения значения переменной необходимо использовать флаги Open или OpenOnce.
|
В следующем примере создается системная переменная с именем MYVARIABLE.
<SystemVariable Name="MYVARIABLE" PrimaryType="String" StorageType="User" Value="Example" Owner="" Flags="Create|DotIsEmpty|SpacesAllowed" />
В следующем примере при первой загрузке подключаемого модуля значение системной переменной CURSORSIZE изменяется на 100.
<SystemVariable Name="CURSORSIZE" Value="100" Flags="OpenOnce" />
Элемент EnvironmentVariables не является обязательным и может содержать один или несколько элементов EnvironmentVariable. Элемент EnvironmentVariable содержит определение переменной среды, которую должен создать или изменить подключаемый модуль. Переменные среды сохраняются в реестре Windows или в файле списка свойств (PLIST) на Mac OS.
Атрибут |
Описание |
---|---|
Name |
Имя переменной среды, которую необходимо создать или изменить. |
Value |
Значение, задаваемое для переменной. Значение может содержать один из необязательных префиксов: +, -, & и |. Подробную информацию см. в разделе "Префиксы значений переменных". Прим.: Префикс не сохраняется, когда значение применяется к переменной.
|
Type |
(Необязательно) Тип данных компонента Value. Допустимые значения:
Если в значении переменной используется префикс, необходимо определить соответствующий тип данных. Если тип данных не будет указан, операция будет рассматриваться как строковая. |
Flags |
(Необязательно) Создание и редактирование флагов. Можно задать несколько флагов. Для их разделения используйте символ конвейеризации. Поддерживаются следующие флаги:
Прим.: Для изменения значения переменной необходимо использовать флаги Open или OpenOnce.
|
Ниже приведен пример создания двух переменных среды с именами MYNUMVAR и MYSTRVAR.
<EnvironmentVariables> <EnvironmentVariable Name="MYNUMVAR" Value="123" /> <EnvironmentVariable Name="MYSTRVAR" Value="Example" /> </EnvironmentVariables>
Префиксы не используются для изменения текущего значения переменной при загрузке подключаемого модуля. Один из префиксов, перечисленных в следующей таблице, можно добавить в атрибут Value элемента RegistryEntry, SystemVariable или EnvironmentVariable.
Префикс |
Описание |
---|---|
+ (плюс) |
Добавление или прикрепление значения к значению существующей переменной. Int16, Int32, Real: добавление значения к значению существующей переменной. String: добавление значения к значению существующей переменной. |
- (дефис) |
Вычитание или удаление значения из значения существующей переменной. Int16, Int32, Real: вычитание значения из значения существующей переменной. String: удаление значения из значения существующей переменной. |
& (амперсанд) |
Операция побитового И, применяемая к текущему значению переменной; поддерживаются только числовые значения. |
| (символ конвейеризации) |
Операция побитового ИЛИ, применяемая к текущему значению переменной; поддерживаются только числовые значения. |
Следующие элементы допускают привязку к объектам END, MID, CEN, NOD, QUA и INT, при этом привязка всех остальных объектов остается как есть.
<SystemVariable Name="OSMODE" Value="|63" Flags="Open" />