Поддерживаемая платформа: Windows®
В этом примере показано, как создать блок.NET из MATLAB® функционируйте и интегрируйте сгенерированный блок в приложение.NET.
Проверьте, что вы удовлетворили все целевые требования.NET MATLAB Compiler SDK™. Для получения дополнительной информации смотрите Целевые Требования.NET MATLAB Compiler SDK.
Проверьте, что у вас есть Microsoft® Visual Studio® установленный.
У конечных пользователей должна быть установка MATLAB Runtime, чтобы запустить приложение. Для получения дополнительной информации смотрите Установку и Сконфигурируйте MATLAB Runtime.
Для тестирования можно использовать установку MATLAB вместо MATLAB Runtime.
Функция MATLAB |
|
Ссылка API MWArray |
|
В MATLAB исследуйте код MATLAB, который вы хотите группировать. В данном примере открытый makesquare.m
.
function y = makesquare(x)
y = magic(x);
disp(y)
В командной строке MATLAB введите makesquare(5)
.
Выход является матрицей 5 на 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. В качестве альтернативы, если вы хотите создать блок.NET из окна команды MATLAB с помощью программируемого подхода, смотрите, Создают блок.NET Используя compiler.build.dotNETAssembly.
На вкладке MATLAB Apps, на ультраправом из раздела Apps, кликают по стреле. В Application Deployment нажмите Library Compiler.
В качестве альтернативы можно открыть приложение Library Compiler из командной строки MATLAB.
libraryCompiler
В разделе Type панели инструментов нажмите .NET Assembly.
В окне проекта приложения Library Compiler задайте файлы приложения MATLAB, которое вы хотите развернуть.
В разделе Exported Functions панели инструментов щелкнуть.
В окне Add Files просмотрите к папке в качестве примера и выберите функцию, которую вы хотите группировать. Нажмите Open.
Функция добавляется к списку экспортируемых файлов функции. Повторите этот шаг, чтобы группировать несколько файлов в том же приложении.
В данном примере выберите файл makesquare.m
.
В разделе Packaging Options панели инструментов решите, включать ли инсталлятор MATLAB Runtime в сгенерированное приложение путем выбора одной из опций:
Runtime downloaded from web — Сгенерируйте инсталлятор, который загружает MATLAB Runtime и устанавливает его наряду с развернутым приложением MATLAB. Можно задать имя файла инсталлятора.
Runtime included in package — Сгенерируйте приложение, которое включает инсталлятор MATLAB Runtime. Можно задать имя файла инсталлятора.
Примечание
В первый раз, когда вы выбираете эту опцию, вам предлагают загрузить инсталлятор MATLAB Runtime.
Затем задайте имя своего блока и проверьте отображение класса для .m
файл, который вы встраиваете в свое приложение.
Поле Library Name автоматически заполняется с makesquare
как имя блока. Переименуйте его как MagicSquareComp
. То же имя выполняется в реализации блока.
Проверьте что функция, определяемая в makesquare.m
сопоставлен в MagicSquareClass
. Дважды кликните на классе, чтобы изменить имя класса.
Можно использовать любой файл MATLAB в проекте сгенерировать демонстрационные файлы драйвера.NET. Несмотря на то, что файлы драйвера.NET не необходимы, чтобы создать блок, можно использовать их, чтобы реализовать сгенерированный блок в приложение.NET на выходном языке, как показано в Интегрируют блок.NET В Приложение.NET.
В разделе Samples выберите Create New Sample и нажмите makesquare.m
. Файл MATLAB открывается для вас, чтобы отредактировать.
% Sample script to demonstrate execution of function y = makesquare(x) x = 0; % Initialize x here y = makesquare(x);
Измените x = 0
к x = 5
, сохраните файл и возвратитесь к приложению Library Compiler.
Для получения дополнительной информации и ограничения, смотрите Демонстрационное Создание Файла Драйвера.
В приложении Library Compiler можно настроить инсталлятор, настроить приложение и добавить больше информации о приложении.
Информация о библиотеке Информация о развертываемом приложении. Можно также настроить внешний вид приложения путем изменения значка приложения и экрана-заставки. Сгенерированный установщик использует эту информацию, чтобы заполнить установленные метаданные приложений. Смотрите Настраивают Инсталлятор.
Additional installer options — Путь к стандартной установке для сгенерированного инсталлятора и пользовательского выбора логотипа. Смотрите Изменение Путь к Установке.
Files required for your library to run — Дополнительные требуемые для запуска сгенерированного приложения файлы. Эти файлы включены в сгенерированное установщиком приложения. Смотрите Управляют Необходимыми Файлами в Проекте Компилятора.
Files installed for your end user — Файлы, которые установлены с вашим приложением.
Additional runtime settings — Специфичные для платформы опции для управления сгенерированным исполняемым файлом. Смотрите Дополнительные Настройки Во время выполнения.
По окончании выбрав ваши упаковочные опции, сохраняете свой проект Library Compiler и генерируете пакетное приложение.
Нажмите Package.
В диалоговом окне Save Project задайте местоположение, чтобы сохранить проект.
В диалоговом окне Package проверьте, что Open output folder when process completes выбран.
Когда упаковочный процесс будет завершен, исследуйте сгенерированный выход в целевой папке.
Сгенерированы три папки: for_redistribution
, for_redistribution_files_only
, и for_testing
.
Для получения дополнительной информации о файлах, сгенерированных в этих папках, смотрите Файлы, Сгенерированные После Упаковки функций MATLAB.
Файл журнала PackagingLog.html
содержит упаковочные результаты.
compiler.build.dotNETAssembly
Как альтернатива приложению Library Compiler, можно создать блок.NET с помощью программируемого подхода. Если вы уже создали блок с помощью Library Compiler, смотрите, Интегрируют блок.NET В Приложение.NET.
Сохраните путь к файлу makesquare.m
расположенный в
. Например, если вы используете версию 15 Visual Studio, введите:matlabroot
\toolbox\dotnetbuilder\Examples\VSVersion
\NET\MagicSquareExample\MagicSquareComp
appFile = fullfile(matlabroot,'toolbox','dotnetbuilder','Examples', ... 'VS15','NET','MagicSquareExample','MagicSquareComp','makesquare.m');
Сохраните следующий код в файле примера под названием makesquareSample1.m
:
x = 5; y = makesquare(x);
Создайте блок.NET с помощью compiler.build.dotNETAssembly
функция. Используйте аргументы name-value, чтобы задать имя сборки, имя класса и файл примера.
buildResults = compiler.build.dotNETAssembly(appFile, ... 'AssemblyName','MagicSquareComp', ... 'ClassName','MagicSquareClass', ... 'SampleGenerationFiles','makesquareSample1.m');
compiler.build.Results
объект buildResults
содержит информацию о типе сборки, сгенерированных файлах и опциях сборки.
Функция генерирует следующие файлы в папке под названием MagicSquareCompdotNETAssembly
в вашей текущей рабочей директории:
samples\makesquareSample1.cs
—. СЕТЕВОЙ демонстрационный файл драйвера.
GettingStarted.html
— Файл HTML, который содержит шаги при компиляции приложений драйвера.NET из командной строки.
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.
readme.txt
— Текстовый файл, который содержит упаковку и интерфейсную информацию.
requiredMCRProducts.txt
— Текстовый файл, который содержит идентификаторы продукта продуктов, требуемых MATLAB Runtime запустить приложение.
unresolvedSymbols.txt
— Текстовый файл, который содержит информацию о неразрешенных символах.
Примечание
Сгенерированный блок не включает MATLAB Runtime или инсталлятор. Создать инсталлятор, использующий buildResults
возразите, смотрите compiler.package.installer
.
Можно задать дополнительные опции в compiler.build
команда при помощи одного или нескольких следующих аргументов name-value:
'AdditionalFiles'
— Путь к дополнительным файлам, чтобы включать в блок.
'AssemblyName'
— Имя сгенерированного блока.
'AssemblyVersion'
— Версия сгенерированного блока.
'AutoDetectDataFiles'
— Отметьте, чтобы автоматически включать файлы данных.
'ClassName'
— Имя класса.NET.
'DebugBuild'
— Отметьте, чтобы включить отладочные символы.
'EmbedArchive'
— Отметьте, чтобы встроить архив блока.
'EnableRemoting'
— Отметьте, чтобы управлять типом дистанционной работы.
'OutputDir'
— Путь к выходной директории, которая содержит сгенерированные файлы.
'SampleGenerationFiles'
— Файлы примера MATLAB раньше генерировали файлы драйвера.NET. Для получения дополнительной информации смотрите Демонстрационное Создание Файла Драйвера.
'StrongNameKeyFile'
— Путь к файлу ключа шифрования раньше подписывал совместно используемую сборку.
'Verbose'
— Отметьте, чтобы отобразить информацию о прогрессе, указывающую на выход компилятора во время процесса сборки.
После создания вашего блока.NET можно интегрировать его в любое приложение.NET. Этот пример использует демонстрационный код приложения.NET, сгенерированный во время упаковки. Можно использовать этот демонстрационный код приложения.NET в качестве руководства, чтобы записать собственное приложение.NET.
Открытый Microsoft Visual Studio и создает Console App (.NET Framework) C# по имени MainApp
.
Удалите любые файлы исходного кода, которые были созданы в рамках вашего проекта при необходимости.
Добавьте сгенерированный демонстрационный код приложения.NET makesquareSample1.cs
от for_redistribution_files_only\samples
папка к проекту.
Распечатку программ показывают ниже.
В Visual Studio добавьте ссылку на свой файл блока MagicSquareComp.dll
расположенный в папке, где вы сгенерировали или установили блок.
Добавьте ссылку на MWArray
API.
Если MATLAB установлен в вашей системе |
|
Если MATLAB Runtime установлен в вашей системе |
|
Перейдите к Build, затем Configuration Manager, и измените платформу от Any CPU до x64.
После того, как вы закончили добавлять свой код и ссылки, создаете приложение с Visual Studio.
Процесс сборки генерирует исполняемый файл под названием makesquareSample1.exe
.
Запустите приложение с Visual Studio в командном окне, или путем двойного клика по сгенерированному исполняемому файлу.
Приложение возвращает тот же выходной параметр как демонстрационный код MATLAB.
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 из демонстрационного приложения C#. Вызывать блок от Visual Basic® приложение, используйте файл проекта Microsoft Visual Studio MagicSquareVBApp.vbproj
и файл Visual Basic MagicSquareApp.vb
расположенный в
matlabroot
\toolbox\dotnetbuilder\Examples\VSVersion
\NET\MagicSquareExample\MagicSquareVBApp\
libraryCompiler
| compiler.build.dotNETAssembly
| mcc
| deploytool