Поддерживаемая платформа: Windows® (Авторская разработка), Linux® (Выполнение) и macOS (Выполнение).
В этом примере показано, как создать блок.NET с помощью Library Compiler и интегрировать его в Базовое приложение.NET, которое может работать на Linux или macOS.
Создайте новую папку работы, которая отображается к MATLAB® путь поиска файлов. Этот пример использует C:\Work
как новая папка работы.
Установите MATLAB Runtime на Windows и на дополнительных платформах, где вы планируете выполнение вашего Базового приложения.NET. Для получения дополнительной информации смотрите Установку и Сконфигурируйте MATLAB Runtime.
Для Linux и macOS платформ, после установки MATLAB Runtime, необходимо установить LD_LIBRARY_PATH
и DYLD_LIBRARY_PATH
переменные окружения соответственно. Для получения дополнительной информации смотрите Установленный Путь MATLAB Runtime для Развертывания.
Проверьте, что у вас есть Visual Studio® и Ядро.NET 2.0 или выше установленный. Если вам установили версию 15.8.2 Visual Studio 2017, то вы не должны устанавливать Ядро.NET 2.0 или выше отдельно.
Группируйте функцию в блок.NET с помощью приложения Library Compiler. В качестве альтернативы, если вы хотите создать блок.NET из окна команды MATLAB с помощью программируемого подхода, смотрите compiler.build.dotNETAssembly
.
Создайте новый файл MATLAB под названием mymagic.m
со следующим кодом в папке работы:
function out = mymagic(in)
out = magic(in);
Ввод libraryCompiler
в командной строке MATLAB, чтобы запустить приложение Library Compiler.
В разделе TYPE панели инструментов выберите .NET Assembly
, и в разделе EXPORTED FUNCTIONS, нажмите кнопку Add, чтобы добавить файл mymagic.m
к проекту.
В разделе Library information назовите библиотеку MyMatrixFunctions
.
Дважды кликните класс Class1
и переименуйте его как MyMagic
.
Сохраните проект развертывания с названием проекта по умолчанию MyMatrixFunctions
.
Выберите Package, чтобы создать блок.NET. Для получения информации о созданных файлах смотрите Файлы, Сгенерированные После Упаковки функций MATLAB.
Откройте командную строку в Windows и перейдите к папке C:\Work
.
В командной строке введите:
dotnet new console --name MyDotNetCoreApp
Это создает папку под названием MyDotNetCoreApp
это имеет следующее содержимое:
obj
папка
MyDotNetCoreApp.csproj
projectFile
Program.cs
Исходный файл C#
Откройте файл проекта в текстовом редакторе.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.0</TargetFramework>
</PropertyGroup>
</Project>
Добавьте следующие ссылки на проект с помощью <ItemGroup>
тег:
Файл блока.NET MyMatrixFunctions.dll
созданный приложением Library Compiler
MWArray.dll
, который расположен в <MATLAB_RUNTIME_INSTALL_DIR>
\toolbox\dotnetbuilder\bin\win64\<framework_version>
Если вы добавляете ссылки, ваш файл проекта должен напомнить следующее:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Reference Include="MyMatrixFunctions">
<HintPath>C:\work\MyMatrixFunctions\for_redistribution_files_only\MyMatrixFunctions.dll</HintPath>
<!--Path to .NET Assembly created by Library Compiler app-->
</Reference>
<Reference Include="MWArray">
<HintPath>C:\Program Files\MATLAB\MATLAB Runtime\v97\toolbox\dotnetbuilder\bin\win64\v4.0\MWArray.dll</HintPath>
<!--Path to MWArray.dll in the MATLAB Runtime-->
</Reference>
</ItemGroup>
</Project>
Откройте исходный файл C# Program.cs
и замените существующий код на следующий код:
В командной строке разработайте свой проект Ядра.NET путем ввода:
dotnet build MyDotNetCoreApp.csproj
В командной строке, запущенной ваше приложение путем ввода:
dotnet run -- 3
Отображения приложения 3x3 магический квадрат.
Опубликуйте проект как автономное развертывание, чтобы выполнить приложение или на Linux или на macOS.
Чтобы опубликовать к Linux, введите следующую команду на одной строке:
dotnet publish --configuration Release --framework netcoreapp2.2 --runtime linux-x64 --self-contained true MyDotNetCoreApp.csproj
Чтобы опубликовать к macOS, введите следующую команду на одной строке:
dotnet publish --configuration Release --framework netcoreapp2.2 --runtime osx.10.11-x64 --self-contained true MyDotNetCoreApp.csproj
Скопируйте Release
папка от C:\Work\MyDotNetCoreApp\bin
на Windows к ~/Work
на Linux или macOS машине.
На машине Linux проверьте, что вы установили MATLAB Runtime и настроили вашу переменную окружения пути к библиотеке. Для получения дополнительной информации смотрите Необходимые условия.
Откройте командный процессор и перейдите к:
~/Work/Release/netcoreapp2.2/<os-architecture>/publish
Запустите Базовое приложение.NET путем ввода:
./MyDotNetCoreApp 3
Magic square of order 3 8 1 6 3 5 7 4 9 2 Magic square as native array: Element(0,0)= 8 Element(0,1)= 1 Element(0,2)= 6 Element(1,0)= 3 Element(1,1)= 5 Element(1,2)= 7 Element(2,0)= 4 Element(2,1)= 9 Element(2,2)= 2