在 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