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

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

В этом примере показано, как создать блок.NET с помощью Library Compiler и интегрировать его в Базовое приложение.NET, которое может работать на Linux или macOS.

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

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

  2. Установите MATLAB Runtime на Windows и на дополнительных платформах, где вы планируете выполнение вашего Базового приложения.NET. Для получения дополнительной информации смотрите Установку и Сконфигурируйте MATLAB Runtime.

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

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

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

Группируйте функцию в блок.NET с помощью приложения Library Compiler. В качестве альтернативы, если вы хотите создать блок.NET из окна команды MATLAB с помощью программируемого подхода, смотрите compiler.build.dotNETAssembly.

  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.

  5. Дважды кликните класс Class1 и переименуйте его как MyMagic.

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

  7. Выберите 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_INSTALL_DIR>\toolbox\dotnetbuilder\bin\win64\<framework_version>

    Если вы добавляете ссылки, ваш файл проекта должен напомнить следующее:

    <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 на UNIX

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

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

  3. Откройте командный процессор и перейдите к:

    ~/Work/Release/netcoreapp2.2/<os-architecture>/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
    

Похожие темы