首页 > 系统相关 >Avalonia 运行在Ubuntu20.04上,记录发布到运行的过程,已解决默认字体问题

Avalonia 运行在Ubuntu20.04上,记录发布到运行的过程,已解决默认字体问题

时间:2024-03-29 11:58:05浏览次数:34  
标签:Ubuntu20.04 sudo setting dotnet new 安装 public 运行 Avalonia

目录

1.安装.NET 8.0 环境

2.发布Avalonia程序

3.默认字体问题解决


Demo程序下载(开箱即用):https://download.csdn.net/download/rotion135/89048937

1.安装.NET 8.0 环境

下载微软dotnet安装脚本:sudo wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh

运行此脚本之前,请确保授予此脚本作为可执行文件运行的权限:

sudo chmod +x ./dotnet-install.sh

接下来是安装命令:

默认最新安装:sudo ./dotnet-install.sh --version latest

安装运行时(非SDK):sudo ./dotnet-install.sh --version latest --runtime aspnetcore

制定版本安装:sudo ./dotnet-install.sh --channel 8.0

我使用的是制定版本安装,红框内是安装的目录,后面设置环境变量需要.

重要环节:设置系统环境变量

1.对所有用户生效要使环境变量对所有用户有效,可以修改profile文件:sudo vim /etc/profile

2.当前用户 : sudo vim $HOME/profile

$HOME-- 一般就是路径 /home/用户名/ 

不同的Shell,对应不同的配置文件,自行对应

  • Bash Shell: ~/.bash_profile 或 ~/.bashrc
  • Korn Shell:~/.kshrc 或 .profile
  • Z Shell:~/.zshrc 或 .zprofile

在文件中末尾添加两行:

此变量设置为 .NET 安装到的文件夹,如 $HOME/.dotnet:

export DOTNET_ROOT=$HOME/.dotnet

PATH

此变量应同时包含 DOTNET_ROOT 文件夹和 DOTNET_ROOT/tools 文件夹:

export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools

最后保存,重启/注销 即可生效。

测试安装是否正确,命令行输入:dotnet 命令试试,运行程序也是使用 : dotnet 程序名

2.发布Avalonia程序

发布配置:

得到配置包,并上传到Ubuntu系统:

上传使用工具即可,如NxShell、Xftp等等

3.默认字体问题解决

Linux默认字体非中文,如果没有处理默认字体的问题,则会出现以下报错:

Default font family can't be null or empty

如何解决?

只需要增加默认字体的设置即可

项目添加字体文件,并设置为资源:

增加两个类文件:

FontSettings

FontBuilderExtensions

    public class FontSettings
    {
        public string DefaultFontFamily = "fonts:MyDesignFontFamilies#Alibaba PuHuiTi 2.0";
        public Uri Key { get; set; } = new Uri("fonts:MyDesignFontFamilies", UriKind.Absolute);
        public Uri Source { get; set; } = new Uri("avares://LS.AvaloniaClient.Desktop/Assets/Fonts/AliBaba", UriKind.Absolute);
    }
 public static class FontBuilderExtensions
 {
     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)));
     }
 }

然后在Program.cs中调用:

标签:Ubuntu20.04,sudo,setting,dotnet,new,安装,public,运行,Avalonia
From: https://blog.csdn.net/rotion135/article/details/137132432

相关文章

  • 使用Django和FastCGI管理长时间运行的过程
    问题背景:有一个Django+FastCGI的应用程序,需要修改以执行长时间的计算(可能长达半小时或更久)。需要在后台运行计算,并返回“您的作业已启动”类型的响应。在进程运行期间,进一步访问该URL应返回“您的作业仍在运行”,直到作业完成,此时应返回作业结果。以后任何对该URL的访问都......
  • 【SQL】1661. 每台机器的进程平均运行时间 (四种写法;自连接;case when;窗口函数lead();)
    前述Sql窗口分析函数【lead、lag详解】Hive分析函数lead、lag实例应用lag:用于统计窗口内往上第n行值lead:用于统计窗口内往下第n行值lead(列名,1,0)over(partitionby分组列orderby排序列rowsbetween开始位置precedingand结束位置following)lag和lead......
  • 数据库设计_6.数据库实施和运行维护
    1.数据库实施    根据逻辑和物理设计的结果,在计算机上建立起实际的数据库结构,数据加载(或称装入),进行试运行和评价的过程,叫作数据库的实施(或称实现)。1.1建立实际的数据库结构    用DBMS提供的数据定义语言(DDL)编写描述逻辑设计和物理设计结果的程序(一般称为数......
  • 在window10或window11 上运行带有签名的.msix 文件。
    1)、单击有签名的.msix文件》属性》    ok,这样就可以成功安装了 ......
  • 【异常】IDEA运行单元测试覆盖率统计时,出现运行 整个项目(4)时出错,配置按模块工作目录
    一、报错内容运行整个项目(4)时出错:配置按模块工作目录时将禁用‘覆盖’。只指定一个工作目录,或将测试范围更改为一个模块。二、报错说明这段文字描述了一个在运行整个项目时遇到的错误。错误信息提示说,在配置按模块工作目录时,将禁用’覆盖’。为了解决这个问题,建议......
  • Ubuntu20.04安装openCV+contrib报错:fatal error: boostdesc_bgm.i: No such file or d
    把文件前面的数字去掉,改成boostdesc_bgm.i,不可用!!!!文件可能没有下载成功!!当时可能会编译成功,但是之后还是会报错下载缺少的相关依赖https://pan.baidu.com/s/17XhXX_cLz46bsj9ZWRkNIg提取码:p50x最好在本地解压后压缩成zip格式的,否则直接解压rar格式的会报错; 如果继续出现以......
  • open_llama_7b_v2 本地运行尝鲜
    open_llama_7b_v2https://github.com/openlm-research/open_llamaauto多卡时,显存共906M+3870M+3870M+762M==9408M,大概率是tfcuda驱动的问题cuda:2单卡时,显存共13266MPython3.9.16torch2.0.1transformers4.39.1import......
  • 【Flutter 面试题】 Dart 是不是单线程模型?是如何运行的?
    【Flutter面试题】Dart是不是单线程模型?是如何运行的?文章目录写在前面口述回答补充说明示例:异步编程示例:使用Isolates处理计算密集型任务总结写在前面......
  • 运行.sh脚本文件
    linux中.sh文件是脚本文件(shell脚本)它可以将不同的命令组合起来,并按确定的顺序自动连续地执行。脚本文件是文本文件,用户可使用文本编辑器来创建脚本文件。eg.我利用vim编写了如下内容:echo我来了echo我走了echo这是test.shecho是一个Shell内建命令,用来在终端输出字......
  • docker-运行tomcat服务
    环境说明linux系统版本:lsb_release-a  docker版本:docker-v  不同的操作系统以及软件版本,可能会遇到不一样的问题,一定要注意版本问题。 .1.tomcat镜像版本选择。进入docker官网搜索8-jdk8  自己选择的版本如下  dockerpulltomcat:8-jdk8 ......