Поддерживаемая платформа: 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