compiler.build.dotNETAssembly

Создайте блок.NET для развертывания вне MATLAB

Описание

пример

Внимание

Эта функция только поддерживается на Windows® операционные системы.

compiler.build.dotNETAssembly(Files) создает блок.NET с помощью MATLAB® функции заданы Files.

пример

compiler.build.dotNETAssembly(Files,Name,Value) создает блок.NET с дополнительными опциями, заданными с помощью одних или нескольких аргументов name-value. Опции включают имя класса, выводят директорию и дополнительные файлы, чтобы включать.

пример

compiler.build.dotNETAssembly(ClassMap) создает блок.NET с классом, сопоставляющим заданное использование container.Map объект ClassMap.

пример

compiler.build.dotNETAssembly(ClassMap,Name,Value) создает блок.NET с помощью ClassMap и дополнительные опции задали использование одних или нескольких аргументов name-value. Опции включают имя сборки, выводят директорию и дополнительные файлы, чтобы включать.

пример

compiler.build.dotNETAssembly(opts) создает блок.NET с опциями, заданными с помощью compiler.build.DotNetAssemblyOptions объект opts. Вы не можете задать никакие другие опции с помощью аргументов name-value.

пример

results = compiler.build.dotNETAssembly(___) возвращает информацию о сборке как compiler.build.Results объект с помощью любой из комбинаций входных аргументов в предыдущих синтаксисах. Информация о сборке состоит из типа сборки, путей к скомпилированным файлам и опций сборки.

Примеры

свернуть все

Создайте блок.NET в системе Windows с помощью файла функции, который генерирует магический квадрат.

В MATLAB найдите функцию MATLAB, которую вы хотите развернуть как блок.NET. В данном примере используйте файл magicsquare.m расположенный в matlabroot\extern\examples\compiler.

appFile = fullfile(matlabroot,'extern','examples','compiler','magicsquare.m');

Создайте блок.NET с помощью compiler.build.dotNETAssembly команда.

compiler.build.dotNETAssembly(appFile);

Функция сборки генерирует следующие файлы в папке под названием magicsquaredotNETAssembly в вашей текущей рабочей директории:

  • GettingStarted.html — Файл HTML, который содержит информацию об интеграции вашего блока.

  • includedSupportPackages.txt — Текстовый файл, который перечисляет все файлы поддержки, включенные в блок.

  • magicsquare.dll — Файл динамически подключаемой библиотеки, к которому можно получить доступ с помощью mwArray API.

  • magicsquare.xml — XML-файл, который содержит документацию для mwArray сборка.

  • magicsquare_overview.html — Файл HTML, который содержит требования для доступа к компоненту и для генерации аргументов с помощью mwArray иерархия классов.

  • magicsquareNative.dll — Файл динамически подключаемой библиотеки, к которому можно получить доступ с помощью встроенного API.

  • magicsquareNative.xml — XML-файл, который содержит документацию для нативного блока.

  • magicsquareVersion.cs — Файл C#, который содержит информацию о версии.

  • mccExcludedFiles.log — Файл журнала, который содержит список любых функций тулбокса, которые не были включены в приложение. Для получения информации о неподдерживаемых функциях смотрите Ограничения MATLAB Compiler.

  • readme.txt — Текстовый файл, который содержит упаковку и интерфейсную информацию.

  • requiredMCRProducts.txt — Текстовый файл, который содержит идентификаторы продукта продуктов, требуемых MATLAB Runtime запустить приложение.

  • unresolvedSymbols.txt — Текстовый файл, который содержит информацию о неразрешенных символах.

Создайте блок.NET в системе Windows и настройте его с помощью аргументов name-value.

В данном примере используйте файлы flames.m и flames.mat расположенный в matlabroot\extern\examples\compiler.

appFile = fullfile(matlabroot,'extern','examples','compiler','flames.m');
MATFile = fullfile(matlabroot,'extern','examples','compiler','flames.mat');

Создайте блок.NET с помощью compiler.build.dotNETAssembly команда. Используйте аргументы name-value, чтобы задать имя сборки и версию, добавить MAT-файл и включить многословный выход.

compiler.build.dotNETAssembly(appFile,'AssemblyName','FlamesComp',...
    'AssemblyVersion','2.0',...
    'AdditionalFiles',MATFile,...
    'Verbose','on');

Создайте блок.NET в системе Windows с помощью карты класса и нескольких файлов функции.

Создайте containers.Map возразите, чьи ключи являются именами классов и чьи значения являются местоположениями файлов функции.

cmap = containers.Map;
cmap('Class1') = {'exampleFcn1.m','exampleFcn2.m'};
cmap('Class2') = {'exampleFcn3.m','exampleFcn4.m'};

Создайте блок.NET с помощью compiler.build.dotNETAssembly команда.

compiler.build.dotNETAssembly(cmap);

В качестве альтернативы можно задать дополнительные опции с помощью аргументов name-value, когда вы создаете блок.NET.

compiler.build.dotNETAssembly(cmap,...
    'AssemblyName','MyExampleComp',...
    'AssemblyVersion','2.0',...
    'Verbose','on');

Создайте несколько блоков.NET в системе Windows с помощью a compiler.build.DotNETAssemblyOptions объект.

В данном примере используйте файл magicsquare.m расположенный в matlabroot\extern\examples\compiler.

appFile = fullfile(matlabroot,'extern','examples','compiler','magicsquare.m');

Создайте DotNETAssemblyOptions объект с помощью appFile. Используйте аргументы name-value, чтобы задать общую выходную директорию, сгенерировать архив блока отдельно и включить многословный выход.

opts = compiler.build.DotNETAssemblyOptions(appFile,...
    'OutputDir','D:\Documents\MATLAB\work\dotNETBatch',...
    'EmbedArchive','off',...
    'Verbose','on')
opts = 

  DotNETAssemblyOptions with properties:

             AssemblyName: 'example.magicsquare'
          AssemblyVersion: '1.0.0.0'
                 ClassMap: [1×1 containers.Map]
               DebugBuild: off
             EmbedArchive: off
           EnableRemoting: off
    SampleGenerationFiles: {}
        StrongNameKeyFile: ''
          AdditionalFiles: {}
      AutoDetectDataFiles: on
          SupportPackages: {'autodetect'}
                  Verbose: on
                OutputDir: 'D:\Documents\MATLAB\work\dotNETBatch'

   Class Map Information
         magicsquareClass: {'C:\Program Files\MATLAB\R2021b\extern\examples\compiler\magicsquare.m'}

Создайте блок.NET с помощью DotNETAssemblyOptions объект.

compiler.build.dotNETAssembly(opts);

Скомпилировать использование файла функции hello.m с теми же опциями используйте запись через точку, чтобы изменить ClassMap из существующего COMComponentOptions объект прежде, чем запустить сборку функционирует снова.

remove(opts.ClassMap, keys(opts.ClassMap));
opts.ClassMap('helloClass') = fullfile(matlabroot,'extern','examples','compiler','hello.m');
compiler.build.dotNETAssembly(opts);

Путем изменения ClassMap аргумент и рекомпиляция, можно скомпилировать несколько компонентов с помощью того же объекта опций.

Создайте блок.NET в системе Windows и сохраните информацию о типе сборки, сгенерированных файлах, включал пакеты поддержки и опции сборки к compiler.build.Results объект.

Компиляция с помощью файла magicsquare.m расположенный в matlabroot\extern\examples\compiler.

results = compiler.build.dotNETAssembly('magicsquare.m')
results = 

  Results with properties:

              BuildType: 'dotNETAssembly'
                  Files: {4×1 cell}
IncludedSupportPackages: {}
                Options: [1×1 compiler.build.DotNETAssemblyOptions]

Files свойство содержит пути к следующим скомпилированным файлам:

  • magicsquare.dll

  • magicsquareNative.dll

  • magicsquare_overview.dll

  • GettingStarted.html

Входные параметры

свернуть все

Файлы, реализующие функции MATLAB в виде вектора символов, строкового скаляра, массива строк или массива ячеек из символьных векторов. Пути к файлам могут быть относительно текущей рабочей директории или абсолюта. Файлы должны иметь .m расширение.

Пример: ["myfunc1.m","myfunc2.m"]

Типы данных: char | string | cell

Карта класса в виде containers.Map объект. Ключи карты являются именами классов, и каждое значение является набором файлов, сопоставленных с соответствующим классом. Файлы должны иметь .m расширение.

Пример: cmap

Блок.NET создает опции в виде a compiler.build.DotNETAssemblyOptions объект.

Аргументы name-value

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'Verbose','on'

Дополнительные файлы, чтобы включать в блок.NET в виде вектора символов, строкового скаляра, массива строк или массива ячеек из символьных векторов. Пути к файлам могут быть относительно текущей рабочей директории или абсолюта.

Пример: 'AdditionalFiles',["myvars.mat","data.txt"]

Типы данных: char | string | cell

Имя блока.NET в виде вектора символов или строкового скаляра. Задайте 'AssemblyName' как пространство имен, которое является разделенным от периода списком, таким как companyname.groupname.component. Имя сгенерированной библиотеки определяется к последней записи разделенного от периода списка. Имя должно начаться с буквы и содержать только буквенные символы и периоды.

Пример: 'AssemblyName','mathworks.dotnet.mymagic'

Типы данных: char | string

Версия блока в виде вектора символов или строкового скаляра. Для получения информации об управлении версиями с помощью MATLAB Compiler SDK™ смотрите Управление версиями.

Пример: 'AssemblyVersion','4.0'

Типы данных: char | string

Отметьте, чтобы автоматически включать файлы данных в виде 'on' или 'off', или как числовой или логический 1 TRUE) или 0 ложь). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом можно использовать значение этого свойства как логическое значение. Значение хранится как логическое значение включения - выключения типа matlab.lang.OnOffSwitchState.

  • Если вы устанавливаете это свойство на 'on', затем файлы данных, которые вы предоставляете как входные параметры определенным функциям (такой как load и fopen) автоматически включены в блок.NET.

  • Если вы устанавливаете это свойство на 'off', затем необходимо добавить файлы данных в блок с помощью AdditionalFiles опция.

Пример: 'AutoDetectDataFiles','off'

Типы данных: логический

Имя класса.NET в виде вектора символов или строкового скаляра. Вы не можете задать эту опцию, если вы используете ClassMap входной параметр. Имена классов должны удовлетворить требования имени класса.NET.

Значением по умолчанию является имя первого файла, перечисленного в Files аргумент добавлен с Class.

Пример: 'ClassName','magicsquareClass'

Типы данных: char | string

Отметьте, чтобы включить отладочные символы в виде 'on' или 'off', или как числовой или логический 1 TRUE) или 0 ложь). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом можно использовать значение этого свойства как логическое значение. Значение хранится как логическое значение включения - выключения типа matlab.lang.OnOffSwitchState.

  • Если вы устанавливаете это свойство на 'on', затем скомпилированный блок содержит отладочные символы.

  • Если вы устанавливаете это свойство на 'off', затем скомпилированный блок не содержит отладочные символы.

Пример: 'DebugBuild','on'

Типы данных: логический

Отметьте, чтобы встроить архив блока в виде 'on' или 'off', или как числовой или логический 1 TRUE) или 0 ложь). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом можно использовать значение этого свойства как логическое значение. Значение хранится как логическое значение включения - выключения типа matlab.lang.OnOffSwitchState.

  • Если вы устанавливаете это свойство на 'on', затем функция встраивает архив блока в блок.NET.

  • Если вы устанавливаете это свойство на 'off', затем функция генерирует архив блока как отдельный файл.

Пример: 'EmbedArchive','off'

Типы данных: логический

Отметьте, чтобы управлять типом дистанционной работы блока в виде 'on' или 'off', или как числовой или логический 1 TRUE) или 0 ложь). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом можно использовать значение этого свойства как логическое значение. Значение хранится как логическое значение включения - выключения типа matlab.lang.OnOffSwitchState.

  • Если вы устанавливаете это свойство на 'on', затем функция создает доступный удаленно блок.

  • Если вы устанавливаете это свойство на 'off', затем функция создает блок, который не доступен удаленно.

Пример: 'EnableRemoting','on'

Типы данных: логический

Путь к выходной директории, где файлы типа "build" сохранены в виде вектора символов или строкового скаляра. Путь может быть относительно текущей рабочей директории или абсолюта.

Имя по умолчанию папки сборки является именем сборки, добавленным с dotNETAssembly.

Пример: 'OutputDir','D:\Documents\MATLAB\work\mymagicdotNETAssembly'

Типы данных: char | string

Файлы примера MATLAB раньше генерировали демонстрационные файлы драйвера.NET для функций, включенных в рамках блока в виде вектора символов, строкового скаляра, массива строк или массива ячеек из символьных векторов. Пути к файлам могут быть относительно текущей рабочей директории или абсолюта. Файлы должны иметь .m расширение. Для получения дополнительной информации и ограничения, смотрите Демонстрационное Создание Файла Драйвера.

Пример: 'SampleGenerationFiles',["sample1.m","sample2.m"]

Типы данных: char | string | cell

Путь к файлу ключа шифрования раньше подписывал совместно используемую сборку в виде вектора символов или строкового скаляра. Если значение пусто, функция создает приватную сборку. Путь к файлу может быть относительно текущей рабочей директории или абсолюта.

Пример: 'StrongNameKeyFile','sgKey.snk'

Типы данных: char | string

Пакеты поддержки, чтобы включать в виде одной из следующих опций:

  • 'autodetect' (значение по умолчанию) — Процесс анализа зависимостей обнаруживает и включает необходимые пакеты поддержки автоматически.

  • 'none' — Никакие пакеты поддержки не включены. Используя эту опцию может вызвать ошибки периода выполнения.

  • Строковый скаляр, вектор символов или массив ячеек из символьных векторов — Только заданные пакеты поддержки включены. Чтобы перечислить установленные пакеты поддержки или используемых определенным файлом, смотрите compiler.codetools.deployableSupportPackages.

.

Пример: 'SupportPackages',{'Deep Learning Toolbox Converter for TensorFlow Models','Deep Learning Toolbox Model for Places365-GoogLeNet Network'}

Типы данных: char | string | cell

Отметьте, чтобы управлять многословием сборки в виде 'on' или 'off', или как числовой или логический 1 TRUE) или 0 ложь). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом можно использовать значение этого свойства как логическое значение. Значение хранится как логическое значение включения - выключения типа matlab.lang.OnOffSwitchState.

  • Если вы устанавливаете это свойство на 'on', затем окно команды MATLAB отображает информацию о прогрессе, указывающую на выход компилятора во время процесса сборки.

  • Если вы устанавливаете это свойство на 'off', затем командное окно не отображает информацию о прогрессе.

Пример: 'Verbose','on'

Типы данных: логический

Выходные аргументы

свернуть все

Создайте результаты, возвращенные как compiler.build.Results объект. Results объект состоит из:

  • Создайте тип, который является 'dotNETAssembly'

  • Пути к следующим скомпилированным файлам:

    • AssemblyName.dll

    • AssemblyNameNative.dll

    • AssemblyName_overview.dll

    • GettingStarted.html

  • Список включенных пакетов поддержки

  • Создайте опции в виде DotNETAssemblyOptions объект

Ограничения

  • Эта функция только поддерживается на операционных системах Windows.

Смотрите также

Введенный в R2021a