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


    本文基于 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

  • 相关阅读:
    用一个结构去分割二维空间
    C生万物 | 从浅入深理解指针【第一部分】
    App备案-iOS云管理式证书 Distribution Managed 公钥及证书SHA-1指纹的获取方法
    SpringBoot - @ControllerAdvice注解详解
    我的十年编程路 序
    MyBatis--获取参数值
    linux安装ffmpeg支持libx264
    PassUAC的简单实现(二)
    HTML5期末大作业:北京旅游网页设计制作(1页) 简单静态HTML网页作品 我的旅游网页作业成品 学生旅游网站模板
    View 自定义 - 坐标系、位置获取
  • 原文地址:https://blog.csdn.net/ki1381/article/details/126959284