实现信创Linux麦克风摄像头录制(源码,银河麒麟、统信UOS)_摄像头录制 信创-CSDN博客
C#跨平台开发桌面程序(Avalonia)_c# avalonia-CSDN博客
手把手教程:在VMware虚拟机中安装Kylin银河麒麟操作系统_vmware安装麒麟操作系统-CSDN博客
银河麒麟桌面操作系统V10SP1 2403 下载地址_银河麒麟v10镜像iso下载-CSDN博客
麒麟系统搭建C#开发框架_麒麟下 rider 试用版-CSDN博客
Linux之Ubuntu与银河麒麟(内核Ubuntu)操作系统上部署ansible+awx_麒麟操作系统和ubuntu-CSDN博客
使用Avalonia
Avalonia TreeDataGrid 示例代码-CSDN博客
开发端
第一步:安装donet 6.0 sdk
下载 .NET 6.0 SDK (v6.0.425) - Windows x64 Installer
第二步:安装Avalonia模板
安装最新版:
dotnet new install Avalonia.Templates
安装net6.0或更早版本
dotnet new --install Avalonia.Templates
卸载
dotnet new -u Avalonia.Templates
或
dotnet new uninstall Avalonia.Templates
结果如下:
C:\Users\san>dotnet new install Avalonia.Templates
将安装以下模板包:
Avalonia.Templates
成功: Avalonia.Templates::11.1.0 已安装以下模板:
模板名 短名称 语言 标记
----------------------------------- ------------------------- ------- -----------------------------------------
Avalonia .NET App avalonia.app [C#],F# Desktop/Xaml/Avalonia/Windows/Linux/macOS
Avalonia .NET MVVM App avalonia.mvvm [C#],F# Desktop/Xaml/Avalonia/Windows/Linux/macOS
Avalonia Cross Platform Application avalonia.xplat [C#],F# Desktop/Xaml/Avalonia/Browser/Mobile
Avalonia Resource Dictionary avalonia.resource Desktop/Xaml/Avalonia/Windows/Linux/macOS
Avalonia Styles avalonia.styles Desktop/Xaml/Avalonia/Windows/Linux/macOS
Avalonia TemplatedControl avalonia.templatedcontrol [C#],F# Desktop/Xaml/Avalonia/Windows/Linux/macOS
Avalonia UserControl avalonia.usercontrol [C#],F# Desktop/Xaml/Avalonia/Windows/Linux/macOS
Avalonia Window avalonia.window [C#],F# Desktop/Xaml/Avalonia/Windows/Linux/macOS
程序发布:
不能选择生成单个文件,否则无法运行

参考:
Avalonia开发笔记(2024/5/20更新) - wzwyc - 博客园
Visual studio
C#跨平台桌面端程序(Avalonia),国产银河麒麟v10亲测有效_c# avalonia-CSDN博客
VS安装扩展
客户端(麒麟系统)
在银河麒麟系统安装Avalonia
dotnet new -i Avalonia.Templates
示例:
root@sanzk-pc:~# dotnet new -i Avalonia.Templates
将安装以下模板包:
Avalonia.Templates
成功: Avalonia.Templates::11.1.0 已安装以下模板:
模板名 短名称 语言 标记
------------------ ------------------------- ------- -----------------------------------------
Avalonia .NET App avalonia.app [C#],F# Desktop/Xaml/Avalonia/Windows/Linux/macOS
Avalonia .NET M... avalonia.mvvm [C#],F# Desktop/Xaml/Avalonia/Windows/Linux/macOS
Avalonia Cross ... avalonia.xplat [C#],F# Desktop/Xaml/Avalonia/Browser/Mobile
Avalonia Resour... avalonia.resource Desktop/Xaml/Avalonia/Windows/Linux/macOS
Avalonia Styles avalonia.styles Desktop/Xaml/Avalonia/Windows/Linux/macOS
Avalonia Templa... avalonia.templatedcontrol [C#],F# Desktop/Xaml/Avalonia/Windows/Linux/macOS
Avalonia UserCo... avalonia.usercontrol [C#],F# Desktop/Xaml/Avalonia/Windows/Linux/macOS
Avalonia Window avalonia.window [C#],F# Desktop/Xaml/Avalonia/Windows/Linux/macOS
root@sanzk-pc:~#
运行程序:dotnet ConsoleApp1.dll
sanzk@sanzk-pc:/data/usershare/app2$ dotnet ConsoleApp1.dll
Hello, World!
C#跨平台桌面端程序(Avalonia),国产银河麒麟v10亲测有效_c# avalonia-CSDN博客
在 Debian 上安装 .NET - .NET | Microsoft Learn
.net6 在中标麒麟下的安装和部署过程_实用技巧_脚本之家
麒麟系统搭建C#开发框架_麒麟下 rider 试用版-CSDN博客
银河麒麟服务器v10 sp1 部署 Net6.0 项目_dhf 工具 麒麟系统-CSDN博客
.net sdk安装和卸载:
银河麒麟服务器 v10 sp1 安装 .Net6.0_银河麒麟v10 安装netcore环境-CSDN博客
linux命令:
Linux 常用命令最全总结大全【推荐收藏】_linux常用命令-CSDN博客
查询麒麟系统对应的Ubuntu的版本号:
cat /proc/version
sanzk@sanzk-pc:~$ cat /proc/version
Linux version 5.10.0-9-generic (buildd@localhost) (gcc (Ubuntu 9.4.0-1kylin1~20.04.2) 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #7~v10pro-KYLINOS SMP Tue Mar 19 08:29:14 UTC 2024
新建文件夹
1. 新建文件夹
mkdir folder_name
切换root账户
sudo -i
银河麒麟系统的默认root用户密码是Kylin123123
linux 列出目录
在Linux中,您可以使用ls命令列出目录内容。以下是一些常用的ls命令选项:
-
-l: 以长格式显示文件和目录的详细信息。 -
-a: 显示所有文件,包括隐藏文件(文件名以.开头的文件)。 -
-h: 与-l一起使用,以易读格式显示文件大小(例如,以K、M、G显示)。 -
-R: 递归显示所有子目录内容。
示例代码:
ls # 列出当前目录下的文件和目录
ls -l # 长格式显示当前目录下的文件和目录
ls -a # 显示所有文件,包括隐藏文件
ls -lh # 长格式显示,且文件大小易读
ls -R # 递归显示当前目录及所有子目录下的文件和目录
在home目录新建文件夹
第一步:在home文件夹内打开终端
第二步:输入sudo -i 切换到管理页权限
第三步:输入mkdir test 创建test文件夹
root@sanzk-pc:/home# ls -l
总用量 4
drwx------ 33 sanzk sanzk 4096 9月 25 08:49 sanzk
root@sanzk-pc:/home# mkdir test
root@sanzk-pc:/home# mkdir dotnet
root@sanzk-pc:/home# ls -l
总用量 12
drwxr-xr-x 2 root root 4096 9月 25 09:26 dotnet
drwx------ 33 sanzk sanzk 4096 9月 25 08:49 sanzk
drwxr-xr-x 2 root root 4096 9月 25 08:58 test
第五步: 移动文件
root@sanzk-pc:/# mv /data/usershare/dotnet-sdk-6.0.425-linux-x64.tar.gz /home/dotnet
移动文件
mv [选项] 源文件 目标文件
mv /path/to/source/file.txt /path/to/destination/
需要在根目录下移动:
root@sanzk-pc:~# cd ..
root@sanzk-pc:/# ls -l
总用量 148
lrwxrwxrwx 1 root root 7 4月 7 14:37 bin -> usr/bin
drwxr-xr-x 4 root root 4096 9月 24 10:50 boot
drwxr-xr-x 2 root root 4096 9月 24 10:49 cdrom
drwxrwxrwt 7 root root 4096 9月 25 10:08 data
drwxr-xr-x 17 root root 4260 9月 25 11:32 dev
drwxr-xr-x 178 root root 12288 9月 25 14:03 etc
drwxr-xr-x 5 root root 4096 9月 25 09:26 home
lrwxrwxrwx 1 root root 7 4月 7 14:37 lib -> usr/lib
lrwxrwxrwx 1 root root 9 4月 7 14:37 lib32 -> usr/lib32
lrwxrwxrwx 1 root root 9 4月 7 14:37 lib64 -> usr/lib64
lrwxrwxrwx 1 root root 10 4月 7 14:37 libx32 -> usr/libx32
drwx------ 2 root root 16384 9月 24 10:48 lost+found
drwxr-xr-x 3 root root 4096 9月 24 10:52 media
drwxr-xr-x 2 root root 4096 4月 7 14:37 mnt
drwxr-xr-x 17 root root 4096 9月 24 15:43 opt
dr-xr-xr-x 395 root root 0 9月 25 2024 proc
drwx------ 11 root root 4096 9月 25 10:57 root
drwxr-xr-x 36 root root 1040 9月 25 11:32 run
lrwxrwxrwx 1 root root 8 4月 7 14:37 sbin -> usr/sbin
drwxr-xr-x 3 root root 4096 4月 7 14:50 sbuild-nonexistent
drwxr-xr-x 2 root root 4096 4月 7 14:37 srv
dr-xr-xr-x 14 root root 0 9月 25 11:32 sys
drwxrwxrwt 25 root root 12288 9月 25 14:08 tmp
drwxr-xr-x 16 root root 4096 4月 7 15:01 usr
drwxr-xr-x 12 root root 4096 9月 24 10:53 var
root@sanzk-pc:/# mv /data/usershare/MSYH.TTC usr/share/fonts/msyh
root@sanzk-pc:/#
删除文件夹
rm -r foldername
这个命令会递归删除指定的文件夹及其内部的文件和子文件夹。需要注意的是,rm命令是不可逆的,删除后无法恢复。
rmdir foldername
这个命令用于删除空文件夹,如果文件夹内部包含文件或子文件夹,则无法删除。
返回上层目录
cd ..
Linux安装微软雅黑字体
执行命令
cd /usr/share/fonts/msyh
sudo mkfontscale
sudo mkfontdir
fc-cache
fc-list :lang=zh
运行时会报字体错误
sanzk@sanzk-pc:/data/usershare/app1$ ./runapp.sh
Unhandled exception. System.InvalidOperationException: Could not create glyphTypeface. Font family: $Default (key: ). Style: Normal. Weight: Normal. Stretch: Normal
at Avalonia.Media.Typeface.get_GlyphTypeface()
at Avalonia.Rendering.Composition.Compositor.get_DiagnosticTextRenderer()
at Avalonia.Rendering.Composition.Compositor.CreateCompositionTarget(Func`1 surfaces)
at Avalonia.Rendering.Composition.CompositingRenderer..ctor(IRenderRoot root, Compositor compositor, Func`1 surfaces)
at Avalonia.Controls.TopLevel..ctor(ITopLevelImpl impl, IAvaloniaDependencyResolver dependencyResolver)
at Avalonia.Controls.WindowBase..ctor(IWindowBaseImpl impl, IAvaloniaDependencyResolver dependencyResolver)
at Avalonia.Controls.WindowBase..ctor(IWindowBaseImpl impl)
at Avalonia.Controls.Window..ctor(IWindowImpl impl)
at Avalonia.Controls.Window..ctor()
at AvaloniaApplication1.MainWindow..ctor() in E:\Gitee项目\项目38_Avalonia跨平台\AvaloniaApplication1\AvaloniaApplication1\MainWindow.axaml.cs:line 7
at AvaloniaApplication1.App.OnFrameworkInitializationCompleted() in E:\Gitee项目\项目38_Avalonia跨平台\AvaloniaApplication1\AvaloniaApplication1\App.axaml.cs:line 18
at Avalonia.AppBuilder.SetupUnsafe()
at Avalonia.AppBuilder.Setup()
at Avalonia.AppBuilder.SetupWithLifetime(IApplicationLifetime lifetime)
at Avalonia.ClassicDesktopStyleApplicationLifetimeExtensions.StartWithClassicDesktopLifetime(AppBuilder builder, String[] args, Action`1 lifetimeBuilder)
at AvaloniaApplication1.Program.Main(String[] args) in E:\Gitee项目\项目38_Avalonia跨平台\AvaloniaApplication1\AvaloniaApplication1\Program.cs:line 12
./runapp.sh:行 2: 11763 已放弃 (核心已转储)dotnet AvaloniaApplication1.dll
解决办法:
解决WPF+Avalonia在openKylin系统下默认字体问题 - 踏平扶桑 - 博客园
Avaloia 实现国产麒麟系统中文显示界面_avalonia-CSDN博客
AvaloniaApplication1.Desktop/Program.cs · kesshei/AvaloniaDemo - Gitee.com
关键代码:
using Avalonia;
using Avalonia.Media;
using Avalonia.Media.Fonts;
using System;
using System.Diagnostics.CodeAnalysis;
using System.Threading;
namespace AvaloniaApplication1
{
internal class Program
{
// Initialization code. Don't use any Avalonia, third-party APIs or any
// SynchronizationContext-reliant code before AppMain is called: things aren't initialized
// yet and stuff might break.
[STAThread]
public static void Main(string[] args) => BuildAvaloniaApp()
.StartWithClassicDesktopLifetime(args);
// Avalonia configuration, don't remove; also used by visual designer.
public static AppBuilder BuildAvaloniaApp()
=> AppBuilder.Configure<App>()
.UsePlatformDetect()
.WithInterFont()
.UseFontAlibaba()
.LogToTrace();
private static void SilenceConsole()
{
new Thread(() =>
{
Console.CursorVisible = false;
while (true)
Console.ReadKey(true);
})
{ IsBackground = true }.Start();
}
}
public static class AvaloniaAppBuilderExtensions
{
public static AppBuilder UseFontAlibaba([DisallowNull] this AppBuilder builder, Action<FontSettings>? configDelegate = default)
{
var setting = new FontSettings();
configDelegate?.Invoke(setting);
return builder.With(new FontManagerOptions
{
DefaultFamilyName = setting.DefaultFontFamily,
FontFallbacks = new[]
{
new FontFallback
{
FontFamily = new FontFamily(setting.DefaultFontFamily)
}
}
}).ConfigureFonts(manager => manager.AddFontCollection(new EmbeddedFontCollection(setting.Key, setting.Source)));
}
public class FontSettings
{
public string DefaultFontFamily = "fonts:AvaloniaApplication1FontFamilies#Alibaba PuHuiTi";
public Uri Key { get; set; } = new Uri("fonts:AvaloniaApplication1FontFamilies", UriKind.Absolute);
public Uri Source { get; set; } = new Uri("avares://AvaloniaApplication1/Assets/Fonts", UriKind.Absolute);
}
}
}
已解决

其他参考:
Could not create glyphTypeface · Issue #11133 · AvaloniaUI/Avalonia · GitHub
银河麒麟系统
银河麒麟的.desktop文件开机自启动_银河麒麟desktop文件编写-CSDN博客
银河麒麟桌面操作系统 V10 没有激活系统,输入命令经常提醒权限不够, 银河麒麟桌面操作系统无法通过管理员安装软件或运行有执行权限的脚本怎么办?
打开终端执行命令:sudo setstatus softmode -p 即可解决(是默认开了安全导致,可用命令解除安全限制)。
替换授权文件提示权限不足?
可使用命令替换,在授权文件的目录下,打开终端,依次执行命令:sudocp .kyinfo /etc/.kyinfo,sudo cp LICENSE /etc/LICENSE。
安装.net6.0过程
先传安装包
解压安装包
设置环境变量
设置环境变量:
rroot@sanzk-pc:/# cd etc
root@sanzk-pc:/etc# vim profile
编辑/etc/profile增加以下两行
export DOTNET_ROOT=/home/dotnet
export PATH=$PATH:/home/dotnet
保存vim并退出
ESC //按ESC
:wq //输入 冒号+wq 保存并退出
重新加载配置文件
source /etc/profile
或
root@sanzk-pc:/etc# source profile
查看.net安装信息
dotnet --info
安装成功:
root@sanzk-pc:/etc# source profile
root@sanzk-pc:/etc# dotnet --info
.NET SDK:
Version: 6.0.425
Commit: fcce060d9f
运行时环境:
OS Name: kylin
OS Version: v10
OS Platform: Linux
RID: linux-x64
Base Path: /home/dotnet/sdk/6.0.425/
global.json file:
Not found
Host:
Version: 6.0.33
Architecture: x64
Commit: 6c636980f7
.NET SDKs installed:
6.0.425 [/home/dotnet/sdk]
.NET runtimes installed:
Microsoft.AspNetCore.App 6.0.33 [/home/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 6.0.33 [/home/dotnet/shared/Microsoft.NETCore.App]
Download .NET:
https://aka.ms/dotnet-download
Learn about .NET Runtimes and SDKs:
https://aka.ms/dotnet/runtimes-sdk-info
root@sanzk-pc:/etc#
运行程序
dotnet app.dll
通过sh脚本文件运行程序
可以将 dotnet app.dll 命令放入一个 shell 脚本文件中,以便一键执行。以下是创建和使用这样的脚本的步骤:
-
打开文本编辑器(如
vim,nano或gedit)。 -
输入以下内容:
#!/bin/bash
dotnet app.dll
这里的 #!/bin/bash 是一个叫做 shebang 的东西,它告诉系统这个脚本应该用什么解释器来执行。
-
保存文件,并给它一个合适的名字,比如
runapp.sh。 -
为了让这个脚本可执行,您需要在命令行中运行以下命令:
chmod +x runapp.sh
- 现在您可以通过在命令行中输入
./runapp.sh来执行您的脚本了。
可以在脚本中添加 cd 命令来切换到正确的目录。例如:
#!/bin/bash
cd /path/to/your/app
dotnet app.dll
实例:
#!/bin/bash
dotnet ConsoleApp1.dll

经过 chmod +x runapp.sh 授权后,双击runapp.sh可以直接运行程序。




3283

被折叠的 条评论
为什么被折叠?



