Поддерживаемая платформа: Windows® (Автор), Linux® (Выполнение) и macOS (Выполнение).
В этом примере показано, как интегрировать и запустить сборку .NET, созданную с помощью Library Compiler с приложением .NET Core.
Цель: Верните магический квадрат n на n
Создайте новую рабочую папку, которая отображается в MATLAB® путь поиска файлов. Этот пример использует C:\Work
как новая рабочая папка.
Установите MATLAB Runtime в Windows и на дополнительные платформы, где вы планируете запускать свое приложение .NET Core. Для платформ Linux и macOS после установки среды выполнения необходимо задать LD_LIBRARY_PATH
и DYLD_LIBRARY_PATH
переменные окружения соответственно. Для получения дополнительной информации смотрите Set MATLAB Путь for Run-Time Deployment.
Убедитесь, что у вас есть 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, чтобы запустить приложение 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
файл проекта
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 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 Runtime и настройте свои 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