Поддерживаемые платформы: Windows ® (разработка), Linux ® (выполнение) и macOS (выполнение).
В этом примере показано, как интегрировать и запустить сборку .NET, созданную с помощью компилятора библиотеки с помощью приложения .NET Core.
Цель: Вернуть магический квадрат n-by-n.
Создайте новую рабочую папку, видимую в пути поиска MATLAB ®. В этом примере используетсяC:\Work в качестве новой рабочей папки.
Установите среду выполнения MATLAB в Windows и на дополнительных платформах, на которых планируется запуск приложения .NET Core. Для платформ Linux и macOS после установки среды выполнения необходимо установить LD_LIBRARY_PATH и DYLD_LIBRARY_PATH переменные среды соответственно. Дополнительные сведения см. в разделе Установка пути времени выполнения MATLAB для развертывания во время выполнения.
Убедитесь, что установлены Visual Studio ® и .NET Core 2.0 или более поздней версии. Если установлена версия 15.8.2 Visual Studio 2017, то отдельно устанавливать .NET Core 2.0 или выше не нужно.
Создание нового файла MATLAB с именем mymagic.m со следующим кодом в рабочей папке:
function out = mymagic(in)
out = magic(in);Напечатать libraryCompiler в командной строке MATLAB для запуска приложения компилятора библиотеки.
В разделе ТИП панели инструментов выберите .NET Assemblyи в разделе ЭКСПОРТИРУЕМЫЕ ФУНКЦИИ нажмите кнопку Добавить, чтобы добавить файл mymagic.m в проект.
В разделе «Сведения о библиотеке» присвойте библиотеке имя MyMatrixFunctions. Изменение имени класса по умолчанию с Class1 кому MyMagic.
Сохранение проекта развертывания с именем проекта по умолчанию MyMatrixFunctions.
Выберите «Пакет» для создания сборки .NET. Сведения о созданных файлах см. в разделе Файлы, созданные после упаковки функций MATLAB.
Откройте командную оболочку в Windows и перейдите к папке C:\Work.
В командной строке введите:
dotnet new console --name MyDotNetCoreApp
Создается папка с именем MyDotNetCoreApp имеет следующее содержание:
obj папка
MyDotNetCoreApp.csproj файл проекта
Program.cs Исходный файл C #
Откройте файл проекта в текстовом редакторе.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.0</TargetFramework>
</PropertyGroup>
</Project> |
Добавьте следующие ссылки на проект с помощью <ItemGroup> тег:
Файл сборки .NET MyMatrixFunctions.dll созданное приложением компилятора библиотеки
MWArray.dll из среды выполнения MATLAB
После добавления ссылок файл проекта выглядит следующим образом:
<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 Core, введя следующую команду:
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, и настройте LD_LIBRARY_PATH переменная среды. Дополнительные сведения см. в разделе Предварительные условия.
Откройте оболочку Bash и перейдите к:
~/Work/Release/netcoreapp2.2/linux-x64/publish
Запустите приложение .NET Core, введя:
./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