exponenta event banner

Создание базового приложения .NET, работающего в ОС Linux и macOS

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

В этом примере показано, как интегрировать и запустить сборку .NET, созданную с помощью компилятора библиотеки с помощью приложения .NET Core.

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

Предпосылки

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

  2. Установите среду выполнения MATLAB в Windows и на дополнительных платформах, на которых планируется запуск приложения .NET Core. Для платформ Linux и macOS после установки среды выполнения необходимо установить LD_LIBRARY_PATH и DYLD_LIBRARY_PATH переменные среды соответственно. Дополнительные сведения см. в разделе Установка пути времени выполнения MATLAB для развертывания во время выполнения.

  3. Убедитесь, что установлены Visual Studio ® и .NET Core 2.0 или более поздней версии. Если установлена версия 15.8.2 Visual Studio 2017, то отдельно устанавливать .NET Core 2.0 или выше не нужно.

Создание сборки .NET

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

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

  3. В разделе ТИП панели инструментов выберите .NET Assemblyи в разделе ЭКСПОРТИРУЕМЫЕ ФУНКЦИИ нажмите кнопку Добавить, чтобы добавить файл mymagic.m в проект.

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

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

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

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

  1. Откройте командную оболочку в Windows и перейдите к папке C:\Work.

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

    dotnet new console --name MyDotNetCoreApp

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

    • obj папка

    • MyDotNetCoreApp.csproj файл проекта

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

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

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

     Program.cs

  5. В командной оболочке создайте проект .NET Core, введя следующую команду:

    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, и настройте LD_LIBRARY_PATH переменная среды. Дополнительные сведения см. в разделе Предварительные условия.

  3. Откройте оболочку Bash и перейдите к:

    ~/Work/Release/netcoreapp2.2/linux-x64/publish
  4. Запустите приложение .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