在 ARM 单板计算机上部署 .NET 应用
将 .NET 应用程序部署到单板计算机的方法与任何其他平台的部署相同。 应用能够以独立或依赖于框架的部署模式运行 。 每种策略各有优势。 有关详细信息,请参阅 .NET 应用程序发布概述。
部署依赖于框架的应用
若要将应用部署为依赖框架的应用,请完成以下步骤:
确保已在设备上启用 SSH。 对于 Raspberry Pi,请参阅 Raspberry Pi 文档中的“设置 SSH 服务器”。
使用 dotnet-install 脚本 在设备上安装 .NET。 在设备(本地或 SSH)上的 Bash 提示符下完成以下步骤:
运行以下命令以安装 .NET:
curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --channel STS
注意
这会安装最新版本。 如果需要特定版本,请将
--channel STS
参数替换为--version <VERSION>
,其中<VERSION>
是特定内部版本。若要简化路径解析,请使用以下命令将
DOTNET_ROOT
环境变量和 dotnet 目录添加到$PATH
:echo 'export DOTNET_ROOT=$HOME/.dotnet' >> ~/.bashrc echo 'export PATH=$PATH:$HOME/.dotnet' >> ~/.bashrc source ~/.bashrc
使用以下命令验证 .NET 安装:
dotnet --version
验证显示的版本是否与安装的版本相匹配。
根据开发环境,将应用发布到开发计算机上,如下所示。
- 如果使用的是 Visual Studio,请将应用部署到本地文件夹。 发布之前,请在“发布配置文件摘要”中选择“编辑”,然后选择“设置”选项卡。确保将“部署模式”设置为“依赖于框架”,并将“目标运行时”设置为“可移植” 。
- 如果使用的是 .NET CLI,请使用 dotnet publish 命令。 不需要其他参数。
使用 SFTP 客户端(如
scp
),将文件从开发计算机上的发布位置复制到 SBC 上的新文件夹中。例如,若要使用
scp
命令将文件从开发计算机复制到 SBC,请打开命令提示符并执行以下命令:scp -r /publish-location/* pi@raspberrypi:/home/pi/deployment-location/
其中:
-r
选项指示scp
以递归方式复制文件。- /publish-location/ 是在上一步中发布的文件夹。
pi@raspberypi
是格式为<username>@<hostname>
的用户和主机名。- /home/pi/deployment-location/ 是 SBC 上的新文件夹。
提示
最新版本的 Windows 具有 OpenSSH,其中包括预安装的
scp
。从 Raspberry Pi 上的 Bash 提示符(本地或 SSH)运行应用。 为此,请将部署文件夹设置为当前目录,并执行以下命令(其中 HelloWorld.dll 是应用的入口点):
dotnet HelloWorld.dll
部署独立应用
若要将应用部署为独立应用,请完成以下步骤:
确保已在设备上启用 SSH。 对于 Raspberry Pi,请参阅 Raspberry Pi 文档中的“设置 SSH 服务器”。
根据开发环境,将应用发布到开发计算机上,如下所示。
如果使用的是 Visual Studio,请将应用部署到本地文件夹。 发布之前,请在“发布配置文件摘要”中选择“编辑”,然后选择“设置”选项卡。确保将“部署模式”设置为“独立”,并将“目标运行时”设置为“linux-arm64”。
如果使用的是 .NET CLI,请将
--runtime linux-arm64
和--self-contained
参数与 dotnet publish 命令结合使用:dotnet publish --runtime linux-arm64 --self-contained
重要
如果使用 32 位 OS,则需要面向
linux-arm
运行时。使用 SFTP 客户端(如
scp
),将文件从开发计算机上的发布位置复制到 SBC 上的新文件夹中。例如,若要使用
scp
命令将文件从开发计算机复制到 SBC,请打开命令提示符并执行以下命令:scp -r /publish-location/* pi@raspberrypi:/home/pi/deployment-location/
其中:
-r
选项指示scp
以递归方式复制文件。- /publish-location/ 是在上一步中发布的文件夹。
pi@raspberypi
是格式为<username>@<hostname>
的用户和主机名。- /home/pi/deployment-location/ 是 SBC 上的新文件夹。
提示
最新版本的 Windows 具有 OpenSSH,其中包括预安装的
scp
。从设备(本地或 SSH)上的 Bash 提示符运行应用。 为此,请将当前目录设置为部署位置,并完成以下步骤:
为可执行文件提供执行权限(其中
HelloWorld
是可执行文件的名称)。chmod +x HelloWorld
运行可执行文件。
./HelloWorld