compiler.build.dotNETAssembly

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

Описание

пример

Внимание

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

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

пример

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

пример

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

пример

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

пример

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

пример

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

Примеры

свернуть все

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

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

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

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

compiler.build.dotNETAssembly(appFile);

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

  • GettingStarted.html - HTML, содержащий информацию об интеграции сборки.

  • 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 Limitations.

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

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

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

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

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

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

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

compiler.build.dotNETAssembly(appFile,'AssemblyName','MyMagicSquare',...
    'AssemblyVersion','2.0',...
    'AdditionalFiles','myvars.mat',...
    '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);

Можно также задать опции с помощью аргументов имя-значение при построении .NET сборки.

compiler.build.dotNETAssembly(cmap,'AssemblyName','MyMagicSquare',...
    'AssemblyVersion','2.0',...
    'AdditionalFiles','myvars.mat',...
    'Verbose','on');

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

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

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

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

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
                  Verbose: on
                OutputDir: 'D:\Documents\MATLAB\work\dotNETBatch'

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

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

compiler.build.dotNETAssembly(opts);

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

remove(opts.ClassMap, keys(opts.ClassMap));
opts.ClassMap('myMagic2Class') = 'myMagic2.m';
compiler.build.dotNETAssembly(opts);

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

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

Скомпилируйтесь с использованием файловой magicsquare.m расположен в matlabroot\ extern\примеры\компилятор.

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

  Results with properties:

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

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

  • magicsquare.dll

  • magicsquareNative.dll

  • magicsquare_overview.dll

  • GettingStarted.html

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

свернуть все

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

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

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

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

Пример: cmap

.NET сборку опций, заданную как compiler.build.DotNETAssemblyOptions объект.

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами 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™, смотрите Versioning.

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

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

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

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

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

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

Типы данных: logical

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

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

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

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

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

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

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

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

Типы данных: logical

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

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

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

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

Типы данных: logical

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

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

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

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

Типы данных: logical

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

Именем по умолчанию для папки сборки является имя сборки, добавленное в 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

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

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

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

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

Типы данных: logical

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

свернуть все

Результаты построения, возвращенные как compiler.build.Results объект. The Results объект состоит из:

  • Тип сборки, который 'dotNETAssembly'

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

    • AssemblyName.dll

    • AssemblyNameNative.dll

    • AssemblyName_overview.dll

    • GettingStarted.html

  • Опции сборки, заданные как DotNETAssemblyOptions объект

Ограничения

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

Введенный в R2021a