当前位置:   article > 正文

树莓派4:安装 .NET 6 SDK 并测试连接 MSSQL SERVER(无 mono)_sql server 树莓派

sql server 树莓派

本文基于 2022-09-06-raspios-bullseye-arm64

首先安装操作系统,推荐再 修改国内源 并sudo apt -y update && sudo apt -y upgrade。

如果喜欢在windows下使用mstsc远程树莓派,可以sudo apt -y install xrdp。只是截至写下此文为止,RPI4下xrdp无法连接的bug仍未解决,需要手工修复:

  1. sudo gpasswd -d pi video
  2. sudo gpasswd -d pi render
sudo raspi-conofig

选择:System options -> Boot / Auto Login -> Desktop GUI, requiring user to login

重启,远程桌面连接应该能成功。至此新装系统后的准备工作完成。(当然,如果喜欢vim做编辑器的也可以顺便sudo apt -y install vim)

下载SDK:

  1. cd
  2. wget https://download.visualstudio.microsoft.com/download/pr/a567a07f-af9d-451a-834c-a746ac299e6b/1d9d74b54cf580f93cad71a6bf7b32be/dotnet-sdk-6.0.401-linux-arm64.tar.gz

注:如果不知道具体下载地址,或者想在树莓派的桌面下用浏览器直接下载,可以先访问   https://dotnet.microsoft.com/zh-cn/download/dotnet  ,依次点.NET 6.0,Linux的Arm64,让它自动下载或者从手动下载链接中复制下载地址。

安装SDK:

  1. mkdir dotnet-arm64
  2. tar xzf dotnet-sdk-6.0.401-linux-arm64.tar.gz -C ~/dotnet-arm64/

配置.profile:

sudo nano .profile

文件末尾追加两行:

export DOTNET_ROOT=$HOME/dotnet-arm64
export PATH=$PATH:$HOME/dotnet-arm64

Ctrl O,回车,Ctrl X,然后再重启一下树莓派。

重新进入系统以后运行 dotnet --version,能看到版本就对了:

好了,现在可以试试看建一个hello world的console程序。新建一个hello文件夹作为该项目的工作目录。

  1. cd
  2. mkdir hello
  3. cd hello
  4. dotnet new console
  5. dotnet run

 运行结果如下:

 注意到hello目录下有个Program.cs,输出的语句就来自它。前往bin/Debug/net6.0,我们再用file命令查看下编译后hello的属性,果然是Linux的ELF而不是Windows的PE了。

 既然如此,连接下微软自家的SQL SERVER试试看。改Program.cs:

  1. using System;
  2. using System.Data;
  3. using System.Data.SqlClient;
  4. namespace Test
  5. {
  6. class Program
  7. {
  8. static void Main(string [] args)
  9. {
  10. Console.WriteLine("MSSQL 测试(编译@RPI)...\r\n");
  11. Console.WriteLine(GetVersion());
  12. }
  13. static string GetVersion()
  14. {
  15. string conn = "server=192.168.1.10;database=master;user id=sa;password=****;";
  16. string sql = "select @@version";
  17. using(SqlConnection db = new SqlConnection(conn))
  18. {
  19. SqlCommand cmd = new SqlCommand(sql,db);
  20. try
  21. {
  22. db.Open();
  23. string x = cmd.ExecuteScalar().ToString();
  24. return x;
  25. }
  26. catch(Exception ex)
  27. {
  28. return ex.Message;
  29. }
  30. finally
  31. {
  32. cmd.Dispose();
  33. db.Close();
  34. }
  35. }
  36. }
  37. }
  38. }

按照国际惯例继续 dotnet run,然后就报错了,居然不认SqlClient这个命名空间:

 如果是在windows下用vs开发.net core,这会儿肯定得往nuget方面想办法了。但是在树莓派下怎么玩?仔细看了下dotnet这条命令的文档,发现可以用add package命令:

dotnet add package System.Data.SqlClient

等它运行完再次dotnet run,成功!

 参考资料:

Setup .NET Runtime and SDK on Raspberry Pi 4 - Edi Wang

Deploy .NET apps to Raspberry Pi | Microsoft Learn

 .NET CLI | Microsoft Learn

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/897164
推荐阅读
相关标签
  

闽ICP备14008679号