我是在 Raspberry Pi 上进行开发的新手,我正在尝试进行设置,以便我可以使用 C# 和 .Net Core 8 在 Visual Studio 2022 中构建一些无头控制台应用程序。我一直在用 C# 开发 Windows 软件从那时起,我就一直在 Visual Studio 中工作 - 我更愿意在这个项目中继续使用它,而不是必须掌握像 VS Code 这样的新开发工具。
我已经使用以下命令成功安装了 Pi 操作系统(Pi 3B+ 上的 32 位),以及使用 RSA 密钥的 SSH、.Net 运行时和调试器:
# Initial Update
sudo apt-get update
sudo apt-get full-upgrade
# Configure SSH RSA Key
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "[Contents of %USERPROFILE%\.ssh\id_rsa.pub on your PC]" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
exit
ssh admin@devpi
# DotNet 8 Runtime
wget https://dot.net/v1/dotnet-install.sh
chmod +x dotnet-install.sh
./dotnet-install.sh --channel 8.0
echo 'export DOTNET_ROOT=$HOME/.dotnet' >> ~/.bashrc
echo 'export PATH=$PATH:$HOME/.dotnet' >> ~/.bashrc
source ~/.bashrc
dotnet --info
# DotNet Debugger
curl -sSL https://aka.ms/getvsdbgsh | bash /dev/stdin -r linux-arm -v latest -l ~/vsdbg
dotnet --info
带着预期的结果回来了。到目前为止,一切都很好。
我已经生成了一个简单的小型 Hello World 控制台应用程序,并试图找出如何将其部署到 Pi 并在每次按下 F5 时对其进行远程调试。不幸的是,几天后,我在 Google、ChatGPT、YouTube 等方面毫无进展。我正处于认输的边缘。
在我的项目文件中,我将其设置为构建 32 位 Linux 环境,如下所示:
<PropertyGroup>
<RuntimeIdentifier>linux-arm</RuntimeIdentifier>
<PublishTrimmed>true</PublishTrimmed>
</PropertyGroup>
我还有一个构建后脚本设置,用于将二进制文件复制到 Pi 上,如下所示:
scp -r ./bin/Debug/net8.0/linux-arm/* admin@devpi:/home/admin/ConsoleApp1
最后我项目中的launch.json文件如下:
{
"profiles": {
"ConsoleApp1": {
"commandName": "Project",
"workingDirectory": "/home/admin/ConsoleApp1",
"remoteDebugEnabled": true,
"remoteDebugMachine": "devpi:22",
"authenticationMode": "None"
}
}
}
不幸的是,这仍在我的本地计算机上寻找文件夹,而不是在远程 Raspberry Pi 上。
我希望避免手动发布和部署软件,然后在 pi 上启动应用程序并附加远程调试器。除了背面很痛苦之外,它还不允许我调试启动代码。
一定有更简单的方法。有人能指出我正确的方向吗?
也许这个视频很有用https://www.youtube.com/watch?v=1YIOHhz5FgI