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