头图

0.基础环境

类别:笔记本
型号:中国长城 NF14C
硬件平台:飞腾处理器(ArmV8 指令集)
系统:银河麒麟操作系统 V10(SP1)

关键词:
信创,麒麟系统,linux,.net,.netcore,c#,microsoft,飞腾,arm,dotnetcore

1.需求背景

c#是一门非常优秀的语言,不少工控与医疗信息化行业软件。此外,其ef框架也是非常人性化,有低代码的基因。C#编码的过程干净,写起来非常舒服。本篇希望能够给读者在构建C#的研发环境提供一点有价值的经验分享。

2.安装依赖

如果之前未列出发行版,并且该版本基于 debian,则可能需要以下依赖项:

libc6
libgcc1
libgssapi-krb5-2
libicu67
libssl1.1
libstdc++6
zlib1g
sudo apt-get install libc6 libgcc1 libgssapi-krb5-2 libicu66 libssl1.1 libstdc++6 zlib1g -y #v10 sp1的仓库里面没有libicu67
wget http://ftp.de.debian.org/debian/pool/main/i/icu/libicu67_67.1-7_arm64.deb # 单独下载
sudo dpkg -i libicu67_67.1-7_arm64.deb

图片.png

对于使用 System.Drawing.Common 程序集的 .NET 应用,还需要以下依赖项:

libgdiplus(版本 6.0.1 或更高版本)
sudo apt-get install libgdiplus -y # v10 sp1我装的时候是6.0.4的版本

3.安装dotnet sdk

3.1. 安装方式一:脚本

参考:https://learn.microsoft.com/zh-cn/dotnet/core/install/linux-s...

3.1.1. 安装
wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh #下载
chmod +x ./dotnet-install.sh #给予可执行权限
./dotnet-install.sh --version latest #安装最新版本

通过下面方式安装运行时,不是SDK

./dotnet-install.sh --version latest --runtime aspnetcore

通过下面方式安装指定版本SDK

./dotnet-install.sh --channel 8.0
3.1.2 变量设置

打开命令行

    vim  ~/.bashrc #全局的话可以编辑/etc/profile

追加如下内容

export DOTNET_ROOT=$HOME/.dotnet
export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools

保存,并执行下面命令使其立即生效

source ~/.bashrc
3.1.3. 验证

打开命令行,执行

dotnet --info

图片.png

3.2. 安装方式二:手动

下载arm64 SDK二进制包
https://learn.microsoft.com/en-us/dotnet/core/install/linux-s...
图片.png
下载asp.netcore二进制包(解压放到dotnetcore解压后的一起,有同样的直接覆盖即可)
https://dotnet.microsoft.com/zh-cn/download/dotnet/7.0
图片.png
将两个压缩包解压到想解压的位置,我个人是在主目录创建了~/app/dotnet的目录
图片.png
在/etc/profile后追加两行(~/.bashrc为个人主目录,二选一吧)

sudo gedit /etc/profile
export DOTNET_ROOT=/home/long/app/dotnet #追加内容 
export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools #追加内容 

图片.png

sudo -s source /etc/profile #使其生效
dotnet --info #看效果

图片.png
如果执行没有效果,直接在命令行的状态下分别执行追加的内容

4.ide的安装设置

注:vscode的安装请参见第三篇
打开vscode,在vscode界面下按Ctrl+P.输入install ms-dotnettools.csharp,回车.
图片.png
点击安装,安装扩展。

5.新建工程

在命令行下

mkdir MyApp #目录可以自己指定
cd MyApp
dotnet new console #生成的目标版本是.net core 6.0

图片.png
图片.png
打开vscode,依次打开菜单File > Open > MyApp 打开工程.
图片.png
要将csproj的版本号改成与安装的sdk版本号一致,可使用dotnet --list-sdks查看版本号
图片.png

生成运行时出现如下错误
图片.png
可能的原因是omnisharp的版本支持问题,重新下载6.0.0的版本,解压覆盖。再

dotnet run #MyApp目录下

图片.png

6. mono devel和mono develop安装(可选)

参见https://www.mono-project.com/download/stable/#download-lin-de...
基于debian 10配置
注:也可以在应用市场搜索一下,看是否存在
图片.png
图片.png

6.1 mono devel安装

配置仓库

sudo apt install apt-transport-https dirmngr gnupg ca-certificates
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb https://download.mono-project.com/repo/debian stable-buster main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
sudo apt update

安装mono

sudo apt install mono-complete #为了省事,选择全部安装
sudo apt install mono-llvm-support

6.2 mono develop安装

参见https://www.monodevelop.com/download/#fndtn-download-lin-debian
基于debian 10配置

sudo apt install apt-transport-https dirmngr
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb https://download.mono-project.com/repo/debian vs-buster main" | sudo tee /etc/apt/sources.list.d/mono-official-vs.list
sudo apt update

安装mono develop

sudo apt-get install monodevelop 

图片.png

6.3 .net sdk配置

打开monodevelop,编辑->首选项
图片.png
配置后的效果
图片.png

注:mono develop里面编译不是太熟,没有通过图形界面编译。有兴趣或者熟悉的朋友欢迎补充

本文参考了:https://www.delftstack.com/howto/csharp/csharp-on-linux/

麒麟系统专栏:
https://segmentfault.com/blog/kylinos
文章发表在SegmentFault
联系邮箱:1179611323@qq.com
群:662512340
发行日志:
20220623 首发
20230725 更新dotnetcore版本至7.0的方式
20240414 增加脚本安装方式,删除snap(仅适用amd64),增加dotnet 8安装及相关变量配置


码上世界
74 声望276 粉丝

码农极客,2004年接触Linux世界。爱技术的IT的男