将 .NET 应用部署到单板计算机与任何其他平台的部署相同。 应用可以作为 独立 部署模式或 依赖于框架的 部署模式运行。 每个策略都有优点。 有关详细信息,请参阅 .NET 应用程序发布概述。
部署依赖于框架的应用
若要将应用部署为依赖于框架的应用,请完成以下步骤:
确保设备上启用了 SSH。 对于 Raspberry Pi,请参阅 Raspberry Pi 文档中的 SSH 服务器设置。
使用 dotnet-install 脚本在设备上安装 .NET。 从设备上的 Bash 提示符(本地或 SSH)中完成以下步骤:
运行以下命令以安装 .NET:
curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --channel STS
注释
此命令安装最新版本。 如果需要特定版本,请将
--channel STS
参数替换为特定的<VERSION>
生成版本,例如8.0.404
--version <VERSION>
。 有关版本列表,请参阅 适用于 Visual Studio 的 .NET SDK。 请参阅“Visual Studio 2022 SDK”列以确定完整构建号。若要简化路径解析,请添加
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@raspberrypi
是采用格式<username>@<hostname>
的用户和主机名。- /home/pi/deployment-___location/ 是 SBC 上的新文件夹。
小提示
最新版本的 Windows 预装了包括
scp
的 OpenSSH。- 此选项
在 Raspberry Pi(本地或 SSH)上的 Bash 提示符下,运行应用。 为此,请将部署文件夹设置为当前目录并执行以下命令(其中 HelloWorld.dll 是应用的入口点):
dotnet HelloWorld.dll
部署独立应用
若要将应用部署为独立应用,请完成以下步骤:
确保设备上启用了 SSH。 对于 Raspberry Pi,请参阅 Raspberry Pi 文档中的 SSH 服务器设置。
根据开发环境,在开发计算机上发布应用,如下所示。
如果使用 Visual Studio, 请将应用部署到本地文件夹。 发布之前,在发布配置文件摘要中选择“ 编辑 ”,然后选择 “设置” 选项卡。确保 部署模式 设置为 自包含 , 目标运行时 设置为 linux-arm64。
如果使用 .NET CLI,请使用 dotnet publish 命令并包含
--runtime linux-arm64
和--self-contained
参数: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@raspberrypi
是采用格式<username>@<hostname>
的用户和主机名。- /home/pi/deployment-___location/ 是 SBC 上的新文件夹。
小提示
Windows 的最新版本自带预安装的 OpenSSH,包括
scp
。- 此选项
从设备上的 Bash 提示符(本地或 SSH)运行应用。 为此,请将当前目录设置为部署位置并完成以下步骤:
授予可执行文件执行权限(其中
HelloWorld
是可执行文件名)。chmod +x HelloWorld
运行可执行文件。
./HelloWorld