【Avalonia】Avalonia 如何发布Linux应用程序

Avalonia 11.0.0 + Centos 7 + VS2022 + Net6.0

第一步,先安装环境

首先,先配置.net6环境

添加 Microsoft 包存储库

安装 .NET 之前,请运行以下命令,将 Microsoft 包签名密钥添加到受信任密钥列表,并添加 Microsoft 包存储库。 打开终端并运行以下命令:

sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm

安装 SDK

.NET SDK 使你可以通过 .NET 开发应用。 如果安装 .NET SDK,则无需安装相应的运行时。 若要安装 .NET SDK,请运行以下命令:

sudo yum install dotnet-sdk-6.0

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

dotnet --list-sdks

 

第二步,发布应用程序

选中项目右键发布,然后点击更多设置,可以选择独立或者依赖框架,也可以勾选独立文件,这样会打包成一个可执行文件。

第三步,将应用程序复制到Linux系统下,我使用的是Centos 7的桌面版本

1.双击直接运行,报错不能打开

 2.使用控制台运行 ./CommandSample 报了一下错误

Unhandled exception. System.Invalid0perationException: Default font family name can't be null or empty.

修改Program.cs

复制代码
 public static AppBuilder BuildAvaloniaApp()
        {
            FontManagerOptions options = new();
            options.DefaultFamilyName = "SimHei";
            options.FontFallbacks = new[] {
                    new FontFallback
                    {
                        FontFamily=new FontFamily("avares://CommandSample/Assets/Fonts/simhei.ttf#SimHei")
                    }
                };
            // No need to set default for Windows
            return AppBuilder.Configure<App>()
                           .UsePlatformDetect()
                           .LogToTrace()
                           .UseReactiveUI()
                           .With(options);
        }
复制代码

 

其中SimHei是字体名,这个可以自己选一个字体,并且放到/Assets/Fonts/simhei.ttf 路径,然后设置为AvaloniaResource 

FontForge

自己下载的字体可能不知道名字,可以通过FontForge查看。

 

首先选中字体右键用FontForge打开

 

 到这一步之后,Default font family name can't be null or empty.就消失了。

3.但是又出现了新的问题

Unhandled exception. System.InvalidOperationException: Could not create glyphTypeface.

目前就找到了这个解决方案:

拷贝自己所用的字体到如下路径:(需要管理员权限)

/usr/share/fonts/chinese/simhei.ttf

运行fc-cache -f -v 命令,更新字体缓存

    fc-cache -f -v

然后再回到控制台运行 ./CommandSample

目前双击直接运行好像起不来,只能控制台运行,不知道是不是系统问题。

posted on   梦琪小生  阅读(1231)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示