Сгенерируйте сборку .NET и создайте приложение .NET

Поддерживаемая платформа: Windows®

В этом примере показано, как создать сборку .NET для MATLAB® функция. Можно интегрировать сгенерированную сборку в приложение .NET. В этом примере также показано, как вызвать сборку .NET из приложения .NET. Для запуска приложения целевой системе не требуется лицензированная копия MATLAB.

Создайте функцию в MATLAB

В MATLAB исследуйте код MATLAB, который вы хотите упаковать. В данном примере откройте makesquare.m расположен в matlabroot\ toolbox\dotnetbuilder\Примеры\VS Version\ NET\MagicSquareExample\MagicSquareComp.

 makesquare.m

В командной строке MATLAB введите makesquare(5).

Выходные выходы:

    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9

Создайте сборку .NET с помощью приложения Library Compiler

  1. На вкладке MATLAB Apps, в крайнем правом углу Apps раздела, щелкните стреле. В Application Deployment нажмите Library Compiler.

    Также можно открыть приложение Library Compiler из командной строки MATLAB путем ввода:

    libraryCompiler

  2. В Type разделе панели инструментов нажмите .NET Assembly.

    В Library Compiler окне проекта приложения укажите файлы приложения MATLAB, которые вы хотите развернуть.

    1. В Exported Functions разделе панели инструментов нажмите.

    2. В Add Files окне перейдите к папке примера и выберите функцию, которую вы хотите упаковать. Нажмите Open.

    Функция добавляется в список экспортированных файлов функции. Повторите этот шаг, чтобы упаковать несколько файлов в одно и то же приложение.

    В данном примере перейдите к matlabroot\ toolbox\dotnetbuilder\Примеры\VS Version\ NET\MagicSquareExample\MagicSquareComp и выберите makesquare.m.

  3. В Packaging Options разделе панели инструментов решите, включать ли инсталлятор MATLAB Runtime в сгенерированное приложение, выбрав один из опций:

    • Runtime downloaded from web - сгенерируйте инсталлятор, который загружает MATLAB Runtime и устанавливает его вместе с развернутым приложением MATLAB. Можно задать имя файла установщика.

    • Runtime included in package - Сгенерируйте приложение, которое включает в себя инсталлятор MATLAB Runtime. Можно задать имя файла установщика.

      Примечание

      При первом выборе этой опции выводится запрос на загрузку программы установки MATLAB Runtime.

Задание параметров файла сборки

  1. Поле Library Name автоматически заполняется makesquare как имя сборки. Переименуйте его как MagicSquareComp. То же имя следует и при реализации сборки.

  2. Проверьте, что функция, заданная в makesquare.m сопоставлен с Class1.

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

    В Samples разделе выберите Create New Sample и нажмите makesquare.m. Файл MATLAB откроется для редактирования. Определите входные переменные как необходимые для вашего приложения, сохраните файл и вернитесь к Library Compiler приложению.Для получения дополнительной информации и ограничений смотрите Пример создания файла драйвера.

Настройка приложения и его внешнего вида

Можно настроить инсталлятор, настроить приложение и добавить дополнительные сведения о приложении следующим образом:

  • Library information - информация о развернутом приложении. Также можно настроить внешний вид приложения, изменив значок приложения и заставку. Сгенерированный инсталлятор использует эти сведения для заполнения установленных метаданных приложения. См. раздел Настройка установщика.

  • Additional installer options - путь установки по умолчанию для сгенерированного установщика и выбора пользовательского логотипа. См. раздел «Изменение пути установки».

  • Files required for your library to run - дополнительные файлы, необходимые для запуска сгенерированного приложения. Эти файлы включены в программу установки сгенерированного приложения. См. «Управление необходимыми файлами в проекте компилятора».

  • Files installed for your end user - файлы, установленные вместе с вашим приложением.

    См. «Указание файлов для установки с приложением»

Упаковать приложение

  1. Чтобы сгенерировать упакованное приложение, нажмите Package.

    В диалоговом окне «Сохранение проекта» укажите местоположение для сохранения проекта.

  2. В диалоговом окне Package проверьте, что выбран Open output folder when process completes.

    Когда упаковочный процесс будет завершен, исследуйте сгенерированный выход.

    • В расположении целевой папки генерируются три папки: for_redistribution, for_redistribution_files_only, и for_testing.

      Для получения дополнительной информации о файлах, сгенерированных в этих папках, смотрите Файлы, сгенерированные После Упаковки Функций MATLAB.

    • PackagingLog.txt - Файл журнала, сгенерированный MATLAB Compiler™.

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

Примечание

Если вы уже создали сборку .NET с помощью приложения Library Compiler, можно пропустить этот раздел. Однако, если вы хотите узнать, как создать сборку .NET из командного окна MATLAB с помощью программного подхода, следуйте этим инструкциям.

  1. Сохраните путь к makesquare.m файл, расположенный в matlabroot\ toolbox\dotnetbuilder\Примеры\VS Version\ NET\MagicSquareExample\MagicSquareComp. Для примера, при использовании Visual Studio® версия 15, тип:

    appFile = fullfile(matlabroot,'toolbox','dotnetbuilder','Examples',...
        'VS15','NET','MagicSquareExample','MagicSquareComp','makesquare.m');
  2. Сохраните следующий код в примере файла с именем makesquareSample1.m:

    x = 5;
    y = makesquare(x);

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

    buildResults = compiler.build.dotNETAssembly(appFile,...
    'AssemblyName','MagicSquareComp',...
    'SampleGenerationFiles','makesquareSample1.m');

    The compiler.build.Results buildResults объекта содержит информацию о типе сборки, сгенерированных файлах и опциях сборки.

  4. Этот синтаксис генерирует следующие файлы в папке с именем MagicSquareCompdotNETAssembly в вашей текущей рабочей директории:

    • samples\makesquareSample1.cs - .NET образец файла драйвера.

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

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

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

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

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

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

    • MagicSquareCompVersion.cs - Файл C #, содержащий информацию о версии.

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

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

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

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

    Примечание

    Сгенерированная сборка не включает MATLAB Runtime или инсталлятор.

  5. Дополнительные опции могут быть заданы в compiler.build команда при помощи одного или нескольких из следующих аргументов в виде имя-значение:

    • 'AdditionalFiles' - Путь к дополнительным файлам для включения в сборку.

    • 'AssemblyName'- Имя сгенерированной сборки.

    • 'AssemblyVersion'- Версия сгенерированной сборки.

    • 'AutoDetectDataFiles' - Флаг для автоматического включения файлов данных.

    • 'ClassName' - Имя класса .NET.

    • 'DebugBuild' - Флаг для включения отладки символов.

    • 'EmbedArchive'- Флаг для встраивания архива сборки.

    • 'EnableRemoting'- Флаг для управления типом удаленного взаимодействия.

    • 'OutputDir' - Путь к выходной директории, который содержит сгенерированные файлы.

    • 'SampleGenerationFiles'- MATLAB выборки файлов, используемых для генерации .NET файлов драйверов. Для получения дополнительной информации см. Пример создания файла драйвера.

    • 'StrongNameKeyFile'- Путь к файлу ключа шифрования, используемому для подписания общей сборки.

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

Создайте приложение .NET

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

Эти шаги также объяснены в GettingStarted.html файл в for_redistribution_files_only папка. Прежде чем запускать, убедитесь, что вы устанавливаете и конфигурируете MATLAB Runtime, и что у вас есть Microsoft® Установлена Visual Studio.

  1. Установите сборку .NET из for_redistribution папка, или распределите файл сборки MagicSquareComp.dll на целевую машину.

    Сгенерированные общие библиотеки и файлы поддержки расположены в for_testing папка.

  2. Откройте Microsoft Visual Studio и создайте проект. В данном примере создайте консольное приложение C # под названием MainApp и создайте ссылку на файл сборки MagicSquareComp.dll.

    Убедитесь, что сборка находится в папке приложения, созданной там, где установлен компонент.

  3. Создайте ссылку на MWArray API. Местоположение API в MATLAB Runtime R2021a:

    matlabroot\MATLAB Runtime\v910\toolbox\dotnetbuilder\bin \<arch>\<version>\MWArray.dll

  4. Перейдите к Build > Configuration Manager и смените платформу с Any CPU на x64.

  5. Скопируйте сгенерированный пример кода драйвера .NET makesquareSample1.cs от for_redistribution_files_only\samples и сохраните папку в проект.

  6. Завершив запись кода, создайте и запустите его с помощью Microsoft Visual Studio.

См. также

| | |

Похожие темы