Linux と macOS で動作する .NET Core アプリケーションのビルド
サポートされるプラットフォーム: Windows® (オーサリング)、Linux® (実行)、macOS (実行)。
この例では、.NET アセンブリ コンパイラを使用して .NET アセンブリを作成し、それを Linux または macOS で実行できる .NET Core アプリケーションに統合する方法を説明します。
前提条件
MATLAB® 検索パスで認識される新しい作業フォルダーを作成します。この例では、新しい作業フォルダーとして
C:\Workを使用しています。.NET Core アプリケーションを実行する予定の Windows プラットフォームと追加のプラットフォームに MATLAB Runtime をインストールします。詳細については、MATLAB Runtime のダウンロードとインストールを参照してください。
Linux プラットフォームおよび macOS プラットフォームの場合、MATLAB Runtime のインストール後に環境変数
LD_LIBRARY_PATHと環境変数DYLD_LIBRARY_PATHをそれぞれ設定する必要があります。詳細については、デプロイ用の MATLAB Runtime パスの設定を参照してください。Visual Studio® および .NET Core 2.0 以降がインストールされていることを確認します。Visual Studio 2017 の Version 15.8.2 がインストールされている場合は、.NET Core 2.0 以降を別途インストールする必要はありません。
.NET アセンブリの作成
.NET アセンブリ コンパイラ アプリを使用して、関数を .NET アセンブリにパッケージ化します。あるいは、プログラムによる方法で MATLAB コマンド ウィンドウから .NET アセンブリを作成する場合は、compiler.build.dotNETAssembly を参照してください。
以下のコードを使用して、
mymagic.mという名前の新しい MATLAB ファイルを作業フォルダーに作成します。function out = mymagic(in) out = magic(in);MATLAB コマンド ラインで「
dotNetAssemblyCompiler」と入力し、.NET アセンブリ コンパイラ アプリを起動します。[エクスポートする関数] セクションで [Add Exported Function] ボタンをクリックして、ファイル
mymagic.mをプロジェクトに追加します。[.NET アセンブリの情報] セクションで、ライブラリに
MyMatrixFunctionsという名前を付けます。[ビルド設定] セクションで、クラス
Class1の名前をMyMagicに変更します。[ビルドしてパッケージ化] を選択して、.NET アセンブリとインストーラーを作成します。作成されたファイルの詳細については、MATLAB 関数のパッケージ化後に生成されるファイルを参照してください。
.NET Core アプリケーションの作成
Windows でコマンド プロンプトを開き、フォルダー
C:\Workに移動します。コマンド ラインに以下を入力します。
dotnet new console --name MyDotNetCoreAppこれにより、次の内容をもつ
MyDotNetCoreAppという名前のフォルダーが作成されます。objフォルダーMyDotNetCoreApp.csprojプロジェクト ファイルProgram.csC# ソース ファイル
プロジェクト ファイルをテキスト エディターで開きます。
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp2.0</TargetFramework> </PropertyGroup> </Project><ItemGroup>タグを使用して、プロジェクトに以下の参照を追加します。.NET アセンブリ コンパイラ アプリによって作成された .NET アセンブリ ファイル
MyMatrixFunctions.dllにある<MATLAB_RUNTIME_INSTALL_DIR>\toolbox\dotnetbuilder\bin\win64\<framework_version>MWArray.dll
参照を追加すると、プロジェクト ファイルは次のようになります。
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp2.2</TargetFramework> </PropertyGroup> <ItemGroup> <Reference Include="MyMatrixFunctions"> <HintPath>C:\work\MyMatrixFunctions\output\MyMatrixFunctions.dll</HintPath> <!--Path to .NET Assembly created by .NET Assembly Compiler app--> </Reference> <Reference Include="MWArray"> <HintPath>C:\Program Files\MATLAB\MATLAB Runtime\R2025b\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
アプリケーションにより 3 行 3 列の魔方陣が表示されます。
プロジェクトを自己完結型のデプロイとしてパブリッシュし、Linux または macOS のいずれかでアプリケーションを実行します。
Linux にパブリッシュするには、次のコマンドを 1 行で入力します。
dotnet publish --configuration Release --framework netcoreapp2.2 --runtime linux-x64 --self-contained true MyDotNetCoreApp.csproj
macOS にパブリッシュするには、次のコマンドを 1 行で入力します。
dotnet publish --configuration Release --framework netcoreapp2.2 --runtime osx.10.11-x64 --self-contained true MyDotNetCoreApp.csproj
Linux での .NET Core アプリケーションの実行
Releaseフォルダーを、Windows のC:\Work\MyDotNetCoreApp\binから Linux または macOS マシンの~/Workにコピーします。Linux マシンで、MATLAB Runtime がインストールされていることを確認し、ライブラリ パス環境変数を設定します。詳細については、前提条件を参照してください。
コマンド シェルを開き、次に移動します。
~/Work/Release/netcoreapp2.2/<os-architecture>/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
