构建在 Linux 和 macOS 上运行的 .NET Core 应用程序
支持的平台:Windows®(编写)、Linux®(执行),macOS(执行)。
此示例说明如何使用 .NET 程序集编译器创建 .NET 程序集并将其集成到可以在 Linux 或 macOS 上运行的 .NET Core 应用程序中。
前提条件
创建一个对 MATLAB® 搜索路径可见的新工作文件夹。此示例使用
C:\Work作为新工作文件夹。在 Windows 以及您计划运行 .NET Core 应用程序的其他平台上安装 MATLAB Runtime。有关详细信息,请参阅下载并安装 MATLAB Runtime。
对于 Linux 和 macOS 平台,安装 MATLAB Runtime 后,您需要分别设置
LD_LIBRARY_PATH和DYLD_LIBRARY_PATH环境变量。有关详细信息,请参阅针对部署设置 MATLAB Runtime 路径。确认您已安装 Visual Studio® 和 .NET Core 2.0 或更高版本。如果您已安装 15.8.2 版 Visual Studio 2017,则无需单独安装 .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 程序集编译器。在导出的函数部分中,点击添加导出的函数按钮以将文件
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.dllMWArray.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\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,请在一行中键入以下命令:
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
在 Linux 上运行 .NET Core 应用程序
将
Release文件夹从 Windows 上的C:\Work\MyDotNetCoreApp\bin复制到 Linux 或 macOS 计算机上的~/Work。在 Linux 计算机上,验证您是否已安装 MATLAB Runtime 并设置了库路径环境变量。有关详细信息,请参阅前提条件。
打开命令 shell 并导航到:
~/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
