Создайте Базовое приложение.NET, Которое Работает на Linux и macOS

Поддерживаемая платформа: Windows® (Авторская разработка), Linux® (Выполнение) и macOS (Выполнение).

В этом примере показано, как объединяться и запуститься, блок.NET создал использование Library Compiler с Базовым приложением.NET.

Цель: Возвратите n на n магический квадрат.

Необходимые условия

  1. Создайте новую папку работы, которая отображается к пути поиска файлов MATLAB®. Этот пример использует C:\Work как новая папка работы.

  2. Установите MATLAB Runtime на Windows и на дополнительных платформах, где вы планируете выполнение вашего Базового приложения.NET. Для Linux и macOS платформ, после установки времени выполнения, необходимо установить LD_LIBRARY_PATH и DYLD_LIBRARY_PATH переменные окружения соответственно. Для получения дополнительной информации смотрите Настройки Пути MATLAB Runtime для Развертывания Во время выполнения.

  3. Проверьте, что у вас есть Визуальный Studio® и Ядро.NET 2.0 или выше установленный. Если вам установили версию 15.8.2 Visual Studio 2017, то вы не должны устанавливать Ядро.NET 2.0 или выше отдельно.

Создайте блок.NET

  1. Создайте новый файл MATLAB под названием mymagic.m со следующим кодом в папке работы:

    function out = mymagic(in)
    out = magic(in);
  2. Ввод libraryCompiler в командной строке MATLAB, чтобы запустить приложение Library Compiler.

  3. В разделе TYPE панели инструментов выберите .NET Assembly, и в EXPORTED FUNCTIONS раздел нажимают кнопку Add, чтобы добавить файл mymagic.m к проекту.

  4. В разделе Library information назовите библиотеку MyMatrixFunctions. Измените имя класса по умолчанию от Class1 к MyMagic.

  5. Сохраните проект развертывания с названием проекта по умолчанию MyMatrixFunctions.

  6. Выберите Package, чтобы создать блок.NET. Для получения информации о созданных файлах смотрите Файлы, Сгенерированные После Упаковки функций MATLAB.

Создайте базовое приложение.NET

  1. Откройте Командный процессор в Windows и перейдите к папке C:\Work.

  2. В командной строке введите:

    dotnet new console --name MyDotNetCoreApp

    Это создает папку под названием MyDotNetCoreApp это имеет следующее содержимое:

    • obj папка

    • MyDotNetCoreApp.csproj projectFile

    • Program.cs Исходный файл C#

  3. Откройте файл проекта в текстовом редакторе.

    <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>
  4. Откройте исходный файл C# Program.cs и замените существующий код на следующий код:

     Program.cs

  5. В Командном процессоре разработайте свой проект Ядра.NET путем ввода:

    dotnet build MyDotNetCoreApp.csproj
  6. В Командном процессоре, запущенном ваше приложение путем ввода следующего:

    dotnet run -- 3

    Это отображается 3x3 магический квадрат.

  7. Опубликуйте проект как автономное развертывание, чтобы выполнить приложение или на 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

Запустите базовое приложение.NET на Linux

  1. Скопируйте Release папка от C:\Work\MyDotNetCoreApp\bin на Windows к ~/Work на машине Linux.

  2. На машине Linux проверьте, что вы установили MATLAB Runtime и настроили ваш LD_LIBRARY_PATH переменная окружения. Для получения дополнительной информации смотрите Необходимые условия.

  3. Откройте интерпретатор Bash и перейдите к:

    ~/Work/Release/netcoreapp2.2/linux-x64/publish
  4. Запустите Базовое приложение.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
    
Для просмотра документации необходимо авторизоваться на сайте