国产操作系统

实现信创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模板 

Install | Avalonia Docs

安装最新版: 

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安装微软雅黑字体

 Linux安装微软雅黑字体-CSDN博客

执行命令

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 脚本文件中,以便一键执行。以下是创建和使用这样的脚本的步骤:

  1. 打开文本编辑器(如 vimnano 或 gedit)。

  2. 输入以下内容:

#!/bin/bash
dotnet app.dll

这里的 #!/bin/bash 是一个叫做 shebang 的东西,它告诉系统这个脚本应该用什么解释器来执行。

  1. 保存文件,并给它一个合适的名字,比如 runapp.sh

  2. 为了让这个脚本可执行,您需要在命令行中运行以下命令:

chmod +x runapp.sh
  1. 现在您可以通过在命令行中输入 ./runapp.sh 来执行您的脚本了。

可以在脚本中添加 cd 命令来切换到正确的目录。例如:

#!/bin/bash
cd /path/to/your/app
dotnet app.dll

实例: 

#!/bin/bash
dotnet ConsoleApp1.dll

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

开放麒麟

openKylin系统安装指南 | openKylin文档平台

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值