exponenta event banner

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\examples\compiler.

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.

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

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

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

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

Для этого примера используйте файл magicsquare.m расположен в matlabroot\extern\examples\compiler.

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\examples\compiler.

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\examples\compiler.

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

  Results with properties:

            BuildType: 'dotNETAssembly'
                Files: {4×1 cell}
              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, указанные как 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

Версия сборки, заданная как вектор символа или скаляр строки. Сведения об управлении версиями с помощью SDK™ компилятора MATLAB см. в разделе Управление версиями.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

свернуть все

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

  • Тип построения, который является 'dotNETAssembly'

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

    • AssemblyName.dll

    • AssemblyNameNative.dll

    • AssemblyName_overview.dll

    • GettingStarted.html

  • Параметры построения, указанные как DotNETAssemblyOptions объект

Ограничения

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

Представлен в R2021a