常见问题(FAQ)
1. 龙芯NuGet源的配置方法
在龙芯NuGet源上,可以找到一些包含 LoongArch64 架构平台相关文件的 nupkg 包。
添加龙芯NuGet源的配置方式有两种,一种是使用dotnet cli命令,一种是手动配置NuGet.Config文件。
使用dotnet cli命令添加nuget源
# 对于.NET SDK 8.0及以下
dotnet nuget add source "https://nuget.loongnix.cn/v3/index.json" -n "nuget.loongnix.cn" --protocol-version 3
# 对于.NET SDK 9.0及以上
dotnet nuget add source "https://nuget.loongnix.cn/v3/index.json" -n "nuget.loongnix.cn" --protocol-version 3 --allow-insecure-connections
手动配置NuGet.Config
修改本地 ~/.nuget/NuGet/NuGet.Config 配置文件,添加龙芯 NuGet 源。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget.loongnix.cn" value="https://nuget.loongnix.cn/v3/index.json" protocolVersion="3" allowInsecureConnections="true" />
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
</packageSources>
</configuration>
2. NuGet配置包源映射
Avalonia应用在LoongArch平台运行时,经常会遇到nuget引用问题,尤其是关于SkiaSharp.NativeAssets.Linux的引用问题。
.NET SDK引用时默认从nuget.org站点下载,而该站点早期版本中不包含linux-loongarch64版本的 libSkiaSharp.so 文件,进而导致应用运行时报找不到libSkiaSharp.so的错误。
该问题可通过在NuGet.Config中配置packageSourceMapping指定nuget包获取来源引用正确的nuget包即可解决。配置可参考如下,请根据实际需要进行调整。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget.loongnix.cn" value="https://nuget.loongnix.cn/v3/index.json" protocolVersion="3" allowInsecureConnections="true" />
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
</packageSources>
<packageSourceMapping>
<packageSource key="nuget.loongnix.cn">
<package pattern="*linux-loongarch64*" />
<package pattern="HarfBuzzSharp.NativeAssets.Linux" />
<package pattern="SQLitePCLRaw.*" />
<package pattern="SkiaSharp.NativeAssets.Linux" />
</packageSource>
<packageSource key="nuget.org">
<package pattern="*" />
</packageSource>
</packageSourceMapping>
</configuration>
3. LoongArch平台支持SkiaSharp哪些版本?
当前LoongArch架构支持的SkiaSharp是由龙芯研发人员适配制作而成,目前支持的SkiaSharp版本比较有限。
所有支持的版本可通过龙芯nuget源SkiaSharp页面和HarfBuzzSharp页面获得,建议根据您的Avalonia版本进行匹配选择。
在项目或解决方案中添加SkiaSharp的引用可使用dotnet cli命令进行配置,参考如下:
# 进入解决方案或者项目目录后执行
dotnet add package SkiaSharp.NativeAssets.Linux --version 2.88.9
4. 龙芯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.111 版本发布的 LoongArch64 正式版本 deb 安装包名为: dotnet-sdk-6.0.111-1-loongarch64.deb
5. 如何查看SDK版本号
更多有关 .NET 的使用方法,请参阅 .NET在线文档
$ dotnet --info
.NET SDK (反映任何 global.json):
Version: 6.0.111
Commit: b3bb659a9d
运行时环境:
OS Name: loongnix-server
OS Version: 8
OS Platform: Linux
RID: linux-loongarch64
Base Path: /usr/share/dotnet/sdk/6.0.111/
global.json file:
Not found
Host:
Version: 6.0.111
Architecture: loongarch64
Commit: 7fd8b735b6
.NET SDKs installed:
6.0.111 [/usr/share/dotnet/sdk]
.NET runtimes installed:
Microsoft.AspNetCore.App 6.0.11 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 6.0.11 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Download .NET:
http://www.loongnix.cn/zh/api/dotnet
Learn about .NET Runtimes and SDKs:
https://aka.ms/dotnet/runtimes-sdk-info
Loongson's .NET version:
6.0.111-1
6. 运行.NET SDK出现报错 cannot execute: required file not found
可检查系统内核版本:
- 如果内核版本为4.x,那么本站点发布的SDK可在该机器上运行。
- 如果内核版本为6.x或更高,那么您需要到 GitHub loongson/dotnet 发布页面 获取.NET SDK版本。
# 检查系统内核版本(示例)
$ uname -r
4.19.0-19-loongson-3
$ uname -r
6.17.10+deb14-loong64