Поддерживаемая платформа: Windows® (Авторская разработка), Linux® (Выполнение) и macOS (Выполнение).
В этом примере показано, как объединяться и запуститься, блок.NET создал использование Library Compiler с Базовым приложением.NET.
Цель: Возвратите n на n магический квадрат.
Создайте новую папку работы, которая отображается к пути поиска файлов MATLAB®. Этот пример использует C:\Work
как новая папка работы.
Установите MATLAB Runtime на Windows и на дополнительных платформах, где вы планируете выполнение вашего Базового приложения.NET. Для Linux и macOS платформ, после установки времени выполнения, необходимо установить LD_LIBRARY_PATH
и DYLD_LIBRARY_PATH
переменные окружения соответственно. Для получения дополнительной информации смотрите Настройки Пути MATLAB Runtime для Развертывания Во время выполнения (MATLAB Compiler).
Проверьте, что у вас есть Визуальный Studio® и Ядро.NET 2.0 или выше установленный. Если вам установили версию 15.8.2 Visual Studio 2017, то вы не должны устанавливать Ядро.NET 2.0 или выше отдельно.
Создайте новый файл 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 (MATLAB Compiler).
Откройте Командный процессор в 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
После того, как вы добавите ссылки, ваш файл проекта выглядит так:
<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.
На машине Linux проверьте, что вы установили MATLAB Runtime и настроили ваш LD_LIBRARY_PATH
переменная окружения. Для получения дополнительной информации смотрите Предпосылки.
Откройте интерпретатор Bash и перейдите к:
~/Work/Release/netcoreapp2.2/linux-x64/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