Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >龙芯发布 .NET 6 SDK 6.0.105-ea1 LoongArch64 版本

龙芯发布 .NET 6 SDK 6.0.105-ea1 LoongArch64 版本

作者头像
张善友
发布于 2022-06-19 06:55:59
发布于 2022-06-19 06:55:59
3.4K00
代码可运行
举报
文章被收录于专栏:张善友的专栏张善友的专栏
运行总次数:0
代码可运行

龙芯平台.NET,是龙芯公司基于开源社区.NET独立研发适配的龙芯版本,我们会长期进行安全更新和错误修复,并持续进行性能优化。社区.NET7版本开始已经原生支持LoongArch64架构源码。具备如下特性:

  • 跟进社区最新版本,获取及时的安全更新和问题修复
  • 支持多OS:Loongnix、统信UOS、中标麒麟等64位操作系统
  • 支持LoongArch架构
  • 明确的、多版本的产品维护计划
  • 专业团队支持

龙芯最近发布的LoongArch64架构的.NET6.0-SDK是基于上游社区.NET6.0-LTS-SDK制作的,同样是LTS版本,在生命周期维护范围内,会持续进行更新升级。龙芯同时发布了.NET 文档网站:http://docs.loongnix.cn/dotnet/

特性预览:

  • runtime 支持默认原生分层编译及优化特性;
  • 支持 libSystem.IO.Ports.Native.so 串口库 (通过龙芯Nuget源下载);
  • 支持 libSkiaSharp.so、libHarfBuzzSharp.so 图形库 (通过龙芯Nuget源下载);
  • 支持 SQLite 本地数据库 (通过龙芯Nuget源下载);
  • 支持 dotnet-sdk 各子模块单独分包安装,安装方法请见.NET6安装说明

龙芯Nuget源配置方法:

龙芯Nuget源上,可以找到一些包含 LoongArch64 架构平台相关文件的 nupkg 包。 你需要修改本地 ~/.nuget/NuGet/Nuget.config 配置文件,添加龙芯 Nuget 源,以支持相关 nupkg 包的下载。或者手动在龙芯 Nuget 源下载,解压到本地 ~/.nuget/packages/ 对应目录下使用。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ cat ~/.nuget/NuGet/NuGet.Config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="local" value="http://nuget.loongnix.cn:5000/v3/index.json" />
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
  </packageSources>
</configuration>
龙芯.NET 6安装方法

当前支持 dotnet-sdk 各子模块单独分包安装,各子模块如下:

  • aspnetcore-runtime-6.0
  • aspnetcore-targeting-pack-6.0
  • dotnet-apphost-pack-6.0
  • dotnet-host-6.0
  • dotnet-hostfxr-6.0
  • dotnet-runtime-6.0
  • dotnet-runtime-deps-6.0
  • dotnet-sdk-6.0
  • dotnet-targeting-pack-6.0
  • netstandard-targeting-pack-2.1
使用包管理器离线安装/卸载
  • 下载页面 下载安装包,请确认所使用的版本。
  • 安装/卸载:(以 dotnet-sdk-6.0.105-ea1 loongarch64 示例)
deb
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
离线安装命令,需要注意安装包顺序
$ sudo apt install ./dotnet-host-6.0.5-ea1-loongarch64.deb \
                ./dotnet-hostfxr-6.0.5-ea1-loongarch64.deb \
                ./dotnet-runtime-deps-6.0.5-ea1-loongarch64.deb \
                ./dotnet-runtime-6.0.5-ea1-loongarch64.deb \
                ./dotnet-targeting-pack-6.0.5-ea1-loongarch64.deb \
                ./aspnetcore-targeting-pack-6.0.5-ea1-loongarch64.deb \
                ./dotnet-apphost-pack-6.0.5-ea1-loongarch64.deb \
                ./aspnetcore-runtime-6.0.5-ea1-loongarch64.deb \
                ./netstandard-targeting-pack-2.1_2.1.0-1_ea1-loongarch64.deb \
                ./dotnet-sdk-6.0.105-ea1-loongarch64.deb

# 卸载:
$ sudo apt remove dotnet-runtime-deps-6.0 \
                dotnet-apphost-pack-6.0 \
                dotnet-host \
                dotnet-hostfxr-6.0 \
                dotnet-runtime-6.0 \
                dotnet-sdk-6.0 \
                dotnet-targeting-pack-6.0 \
                aspnetcore-runtime-6.0 \
                aspnetcore-targeting-pack-6.0 \
                netstandard-targeting-pack-2.1
rpm
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 离线安装命令,需要注意安装包顺序 - Loongnix Server RPM
$ sudo yum install dotnet-host-6.0.5-ea1.loongarch64.rpm \
                dotnet-hostfxr-6.0-6.0.5-ea1.loongarch64.rpm \
                dotnet-runtime-deps-6.0-6.0.5-ea1.loongarch64.rpm \
                dotnet-runtime-6.0-6.0.5-ea1.loongarch64.rpm \
                dotnet-targeting-pack-6.0-6.0.5-ea1.loongarch64.rpm \
                aspnetcore-targeting-pack-6.0-6.0.5-ea1.loongarch64.rpm \
                dotnet-apphost-pack-6.0-6.0.5-ea1.loongarch64.rpm \
                aspnetcore-runtime-6.0-6.0.5-ea1.loongarch64.rpm \
                netstandard-targeting-pack-2.1-2.1.0-ea1.loongarch64.rpm \
                dotnet-sdk-6.0-6.0.105-ea1.loongarch64.rpm

# 离线安装命令,需要注意安装包顺序 - 麒麟v10 RPM
$ sudo yum install dotnet-host-6.0.5-ea1.a.ky10.loongarch64.rpm \
                dotnet-hostfxr-6.0-6.0.5-ea1.a.ky10.loongarch64.rpm \
                dotnet-runtime-deps-6.0-6.0.5-ea1.a.ky10.loongarch64.rpm \
                dotnet-runtime-6.0-6.0.5-ea1.a.ky10.loongarch64.rpm \
                dotnet-targeting-pack-6.0-6.0.5-ea1.a.ky10.loongarch64.rpm \
                aspnetcore-targeting-pack-6.0-6.0.5-ea1.a.ky10.loongarch64.rpm \
                dotnet-apphost-pack-6.0-6.0.5-ea1.a.ky10.loongarch64.rpm \
                aspnetcore-runtime-6.0-6.0.5-ea1.a.ky10.loongarch64.rpm \
                netstandard-targeting-pack-2.1-2.1.0-ea1.a.ky10.loongarch64.rpm \
                dotnet-sdk-6.0-6.0.105-ea1.a.ky10.loongarch64.rpm

# 卸载:
$ sudo yum remove dotnet-runtime-deps-6.0 \
                dotnet-apphost-pack-6.0 \
                dotnet-host \
                dotnet-hostfxr-6.0 \
                dotnet-runtime-6.0 \
                dotnet-sdk-6.0 \
                dotnet-targeting-pack-6.0 \
                aspnetcore-runtime-6.0 \
                aspnetcore-targeting-pack-6.0 \
                netstandard-targeting-pack-2.1
使用包管理器在线安装/卸载
deb
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 在线安装
$ sudo apt install dotnet-sdk-6.0

# 卸载:
$ sudo apt remove dotnet-runtime-deps-6.0 \
                dotnet-apphost-pack-6.0 \
                dotnet-host \
                dotnet-hostfxr-6.0 \
                dotnet-runtime-6.0 \
                dotnet-sdk-6.0 \
                dotnet-targeting-pack-6.0 \
                aspnetcore-runtime-6.0 \
                aspnetcore-targeting-pack-6.0 \
                netstandard-targeting-pack-2.1
rpm
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 在线安装
$ sudo yum install dotnet-sdk-6.0

# 卸载:
$ sudo yum remove dotnet-runtime-deps-6.0 \
                dotnet-apphost-pack-6.0 \
                dotnet-host \
                dotnet-hostfxr-6.0 \
                dotnet-runtime-6.0 \
                dotnet-sdk-6.0 \
                dotnet-targeting-pack-6.0 \
                aspnetcore-runtime-6.0 \
                aspnetcore-targeting-pack-6.0 \
                netstandard-targeting-pack-2.1
查看安装结果
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ whereis dotnet
dotnet: /usr/bin/dotnet /usr/share/dotnet /usr/share/man/man1/dotnet.1.gz
查看 .NET 版本

更多关于 .NET 的使用方法及示例,请参考 .NET在线文档

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
### 查看SDK版本:

可使用终端查看当前安装的 .NET Core SDK 版本。 打开终端并运行以下命令。

dotnet --list-sdks

查看运行时版本:

可使用以下命令查看当前安装的 .NET Core 运行时版本。

dotnet --list-runtimes

详细信息:

可通过以下命令查看 SDK 版本和运行时版本。 你还将获得其他环境相关信息,如操作系统版本和运行时标识符 (RID)。

dotnet --info
龙芯LoongArch64版.NET版本发布说明

上游社区仓库从 .NET7 已原生支持 LoongArch64 架构,龙芯发布的 LoongArch64 架构 SDK ,分两种版本类型:

  • 试用版: 其中安装包名字中包含"ea"
    • 例如龙芯基于上游社区 SDK 6.0.105 版本发布的 LoongArch64 ea 版本 deb 安装包名为: dotnet-sdk-6.0.105-ea1-loongarch64.deb
  • 正式版: 稳定版本
    • 例如龙芯基于上游社区 SDK 6.0.105 版本发布的 LoongArch64 正式版本 deb 安装包名为: dotnet-sdk-6.0.105-1-loongarch64.deb
如何在LoongArch平台支持SkiaSharp?

由于SkiaSharp中包含平台相关代码,所以引用SkiaSharp的项目需要引用LoongArch版本的nupkg,同时一般还需要引用HarfBuzzSharp包。

支持的方法有如下两种。

配置龙芯Nuget源,添加包引用

参考龙芯Nuget源配置页面添加龙芯nuget源的配置。 在项目配置文件中添加对SkiaSharp和HarfBuzzSharp的引用,参考命令如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd project-src # 进入到项目源码目录中
dotnet add package SkiaSharp.NativeAssets.Linux --version 2.80.3
dotnet add package HarfBuzzSharp.NativeAssets.Linux --version 2.6.1

执行上述命令后,注意查看shell是否有从nuget.loongnix.cn下载nupkg包的输出,如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
info : Adding PackageReference for package 'SkiaSharp.NativeAssets.Linux' into project '/data2/loongson/example/example.csproj'.
info : Restoring packages for /data2/loongson/example/example.csproj...
info :   GET http://nuget.loongnix.cn:5000/v3/package/skiasharp.nativeassets.linux/index.json
info :   OK http://nuget.loongnix.cn:5000/v3/package/skiasharp.nativeassets.linux/index.json 48ms
info :   GET http://nuget.loongnix.cn:5000/v3/package/skiasharp.nativeassets.linux/2.80.3/skiasharp.nativeassets.linux.2.80.3.nupkg
info :   OK http://nuget.loongnix.cn:5000/v3/package/skiasharp.nativeassets.linux/2.80.3/skiasharp.nativeassets.linux.2.80.3.nupkg 54ms
...
info : Adding PackageReference for package 'HarfBuzzSharp.NativeAssets.Linux' into project '/data2/loongson/example/example.csproj'.
info : Restoring packages for /data2/loongson/example/example.csproj...
info :   GET http://nuget.loongnix.cn:5000/v3/package/harfbuzzsharp.nativeassets.linux/index.json
info :   OK http://nuget.loongnix.cn:5000/v3/package/harfbuzzsharp.nativeassets.linux/index.json 405ms
info :   GET https://api.nuget.org/v3-flatcontainer/harfbuzzsharp.nativeassets.linux/index.json
info :   GET http://nuget.loongnix.cn:5000/v3/package/harfbuzzsharp.nativeassets.linux/2.6.1/harfbuzzsharp.nativeassets.linux.2.6.1.nupkg
info :   OK http://nuget.loongnix.cn:5000/v3/package/harfbuzzsharp.nativeassets.linux/2.6.1/harfbuzzsharp.nativeassets.linux.2.6.1.nupkg 57ms

通过上述步骤即可完成。

手动下载,并复制到SDK目录

如果需要运行从其它平台(如x64)编译好的项目,则建议到龙芯Nuget源手动下载SkiaSharp和HarfBuzzSharp nupkg包,解压后将so文件复制到SDK目录下。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 下载nupkg包
wget http://nuget.loongnix.cn:5000/v3/package/skiasharp.nativeassets.linux/2.80.3/skiasharp.nativeassets.linux.2.80.3.nupkg
wget http://nuget.loongnix.cn:5000/v3/package/harfbuzzsharp.nativeassets.linux/2.6.1/harfbuzzsharp.nativeassets.linux.2.6.1.nupkg

# 解压
mkdir skiasharp harfbuzzsharp
unzip skiasharp.nativeassets.linux.2.80.3.nupkg -d skiasharp
unzip harfbuzzsharp.nativeassets.linux.2.6.1.nupkg -d harfbuzzsharp

# 以.NET 6.0.5默认路径为例:
# 复制libSkiaSharp.so和libHarfBuzzSharp.so到SDK目录下dotnet/shared/Microsoft.NETCore.App/6.0.5
sudo cp ./skiasharp/runtimes/linux-loongarch64/native/libSkiaSharp.so /usr/share/dotnet/shared/Microsoft.NETCore.App/6.0.5
sudo cp ./harfbuzzsharp/runtimes/linux-loongarch64/native/libHarfBuzzSharp.so /usr/share/dotnet/shared/Microsoft.NETCore.App/6.0.5
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-06-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
制作一个龙芯旧世界的 dotnet sdk docker 镜像
本文将和大家分享如何制作一个在龙芯旧世界上可跑的 dotnet sdk docker 镜像,以及我的踩坑过程
林德熙
2024/11/02
2530
龙芯下如何进行.NET Core程序开发部署
2022年4月,基础的运行时架构代码全部通过社区技术评审。.NET国际开源社区正式宣布支持LoongArch(龙架构),目前LoongArch64架构已出现在.NET社区主干分支上。
郑子铭
2023/08/30
7730
龙芯下如何进行.NET Core程序开发部署
修复 Debian 安装 dotnet 失败 depends on ca-certificates
本文记录我在 Debian 安装 dotnet 失败,报错信息是 packages-microsoft-prod depends on ca-certificates; however: Package ca-certificates is not installed.
林德熙
2024/03/01
3690
记 Kylin 麒麟系统安全中心拦截导致 dotnet sdk 找不到 OpenSsl 构建失败
我在龙芯机器上安装了 Kylin 麒麟系统,然后去下载龙芯的 dotnet sdk 安装,接着尝试构建一个简单应用,却发现构建失败。报错是 System.DllNotFoundException: Unable to load shared library ‘libSystem.Security.Cryptography.Native.OpenSsl’ or one of its dependencies
林德熙
2024/10/30
1990
记 Kylin 麒麟系统安全中心拦截导致 dotnet sdk 找不到 OpenSsl 构建失败
UOS LoongArch 上成功安装.NET Core 3.1
龙芯.NET团队正式发布了.NET Core 3.1 For LoongArch, 具体参见龙芯开源网站 http://www.loongnix.cn/index.php/Dotnet 。
张善友
2021/09/08
1.2K0
Mono 支持LoongArch架构
近期,著名的.NET开源社区Mono正式支持LoongArch(龙架构),目前LoongArch64架构已出现在.NET社区主干分支上。
张善友
2024/05/19
3080
Mono 支持LoongArch架构
龙芯发布.NET 6.0.100开发者测试版
龙芯在龙芯开源社区发布了LoongArch64-.NET-SDK-6.0.100开发者试用版 新闻 ,龙芯.NET基于上游社区 版本 适配支持龙芯平台架构。 目前支持LoongArch64架构和MIPS64架构,LoongArch64架构的.NET-SDK-3.1已完成,安装包下载地址LoongArch64-.NET Core 3.1,新年伊始 发布了 LoongArch64架构.NET-6.0.100的 开发者测试版,可email联系.NET负责人申请下载链接,具体看下图。
张善友
2022/03/28
5090
龙芯发布.NET 6.0.100开发者测试版
.NET LoongArch64 正式合并进入.NET
国内自主的龙芯,在做龙芯技术生态就把 .NET 作为其中一部分考虑进去,这也将对接下来国内.NET应用场景充满了期待。通过dotnet/runtime 可以知道现在龙芯版本的 .NET 已经合并到.NET 7 官方分支的工作已经完成了。LoongArch64架构合并进入.NET 7.0 已经安排了独立的Project进行管理:https://github.com/dotnet/runtime/projects/70, 这里面的所有工作都已经完成了。
张善友
2022/04/28
6280
.NET LoongArch64  正式合并进入.NET
测试龙芯 LoongArch .NET之 使用 FastTunnel 做内网穿透远程计算机
龙芯3A5000 已经上市,与龙芯3A5000配套的三大编译器GCC、LLVM、GoLang和三大虚拟机Java、JavaScript、.NET均已完成开发,从老伙计哪里搞来一台3A5000 机器,安装统信UOS。 使用体验上看还可以,就是软件生态急需建设,软件生态的建设上自然有我dotnet 的一份力量。 龙芯团队已经完成了LoongArch 的.NET Core 3.1版本的研发,目前还没有正式对外发布,从龙芯兄弟们哪里拿到了一份当前版本的SDK,开启UOS的开发者模式,我们安装好龙芯.NET SDK, 拿个复杂点的应用来验证一下龙芯 LoongArch的.NET 的成色如何,迫切的需求就是机器的内网穿透,因此写成这篇文章。
张善友
2021/07/29
1.4K0
测试龙芯 LoongArch .NET之 使用 FastTunnel 做内网穿透远程计算机
.NET 9 预览版6发布
微软发布了 .NET 9 的第 6 个预览版,此版本包括对运行时、SDK、.NET MAUI、ASP.NET Core 和 C# 的更新,预览版没有包含太多新的主要功能或特性,因为已接近 .NET 9 开发的最后阶段,该开发计划于 11 月全面发布。
张善友
2025/02/04
1490
.NET 9 预览版6发布
如何给 CI CD 服务器搭建上 .NET 5 构建和运行环境
在 2020.11.10 官方正式发布了 .NET 5 正式版。而我花了一周的时间进行踩坑和预研,本文将告诉大家如何在自动化服务器上搭建 dotnet 5 的构建和运行环境
林德熙
2020/11/23
1.1K0
如何给 CI CD 服务器搭建上 .NET 5 构建和运行环境
如何让 .NET 程序脱离系统安装的 .NET 运行时独立运行?除了 Self-Contained 之外还有更好方法!谈 dotnetCampus.AppHost 的工作原理
从 .NET Core 3 开始,.NET 应用就支持独立部署自己的 .NET 运行时。可以不受系统全局安装的 .NET 运行时影响,特别适合国内这种爱优化精简系统的情况……鬼知道哪天就被优化精简了一个什么重要 .NET 运行时组件呢!然而,如果你的项目会生成多个 exe 程序,那么他们每个独立发布时,互相之间的运行时根本不互通。即便编译时使用完全相同的 .NET 框架(例如都设为 net6.0),最终也无法共用运行时文件。
walterlv
2023/10/23
9600
如何让 .NET 程序脱离系统安装的 .NET 运行时独立运行?除了 Self-Contained 之外还有更好方法!谈 dotnetCampus.AppHost 的工作原理
盘点.NET支持的 处理器架构
在一个会议上,中国招投标协会的技术负责人居然当着很多领导的面说.NET不能在国产服务器上运行,可以说这个技术负责人非蠢即坏。
张善友
2025/02/04
1340
.NET周刊【11月第2期 2023-11-12】
https://www.cnblogs.com/Can-daydayup/p/17818557.html
InCerry
2023/11/22
3580
.NET周刊【11月第2期 2023-11-12】
ASP.NET Core | 笔记
将 [EnableCors] 属性与命名策略一起使用在限制支持 CORS 的终结点方面提供了最佳控制。 警告 UseCors 必须按正确的顺序调用 。 有关详细信息,请参阅 中间件顺序。 例如, UseCors 在使用 之前必须 UseResponseCaching 调用 UseResponseCaching 。
yiyun
2022/04/01
4.9K0
ASP.NET Core | 笔记
NetBeauty2:让你的.NET项目输出目录更清爽
NetBeauty2是一个开源的.NET依赖库整理工具,它的主要作用是在.NET项目独立发布时,对输出目录进行整理和优化。通过NetBeauty2,开发者可以轻松地将.NET运行时和依赖的dll文件移动到指定的目录,使得项目的输出目录更加清晰、易于管理。
沙漠尽头的狼
2024/03/21
2170
NetBeauty2:让你的.NET项目输出目录更清爽
.NET跨平台框架选择之一 - Avalonia UI
Avalonia UI文档教程:https://docs.avaloniaui.net/docs/getting-started
沙漠尽头的狼
2022/11/25
4.9K0
.NET跨平台框架选择之一 - Avalonia UI
.Net微服务实战之CI/CD
  在软件工程不少的思想、概念来源于建筑工程,大家也喜欢把开发软件比喻成建房子。那么如果说运维是软件的地基,那么框架就是承重墙。起房子就是先打地基,再建承重墙。地基打得越稳,房子才能起得更高。也等同于运维技术越扎实,系统才能更加健壮。
陈珙
2020/07/28
6030
.Net微服务实战之CI/CD
【翻译】.NET 5 Preview8发布
今天,.NET 5预览8发布了,对于.NET5.0的功能开发已经完成了,这必须要排除待处理的bug,预览8是最后一次预览版本。预计11月正式的.NET5.0版本发布之前还将发布两个正式之前的候选版本,这篇文章描述了.NET5.0版本中的一系列功能。 You can download .NET 5.0, for Windows, macOS, and Linux:
Jlion
2022/04/07
9060
【翻译】.NET 5 Preview8发布
在OpenCloudOS使用snap安装.NET 6
开源操作系统社区 OpenCloudOS 由腾讯与合作伙伴共同倡议发起,是完全中立、全面开放、安全稳定、高性能的操作系统及生态。OpenCloudOS 沉淀了多家厂商在软件和开源生态的优势,继承了腾讯在操作系统和内核层面超过10年的技术积累,在云原生、稳定性、性能、硬件支持等方面均有坚实支撑,可以平等全面地支持所有硬件平台。
张善友
2022/06/27
8990
推荐阅读
相关推荐
制作一个龙芯旧世界的 dotnet sdk docker 镜像
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验