Avalonia桌面应用发布到Ubuntu22.04

avalonia创建的桌面应用在部署到linux系统时,需要进行一些指令处理和桌面入口配置,不像windows程序可以直接发送快捷键到桌面。

1、发布为linux-x64程序

发布配置如下,选择的是linux-x64,如果是嵌入式树莓派等选择linux-arm64

因为我的项目名称为AvaloniaApplication1.Desktop,后缀没有参考意义,找项目名称就行了,当时通常我们创建的跨平台程序,Avalonia模板都会包含.Desktop

2、Ubuntu22.04 中配置应用程序

2.1、配置文件

拷贝到Ubuntu系统中**/home/.local/share/applications/** 目录下,可以创建一个新的文件夹myapp。

此时我们需要新建一个入口文件:myapp.desktop文件,以及一个程序图标文件myapp.png

cs 复制代码
/home/.local/share/applications/myapp/
目录下:
AvaloniaApplication1.Desktop //可执行文件 程序
myapp.desktop   //程序入口文件
myapp.png       //程序图标

myapp.desktop内容如下:

cs 复制代码
[Desktop Entry]
Version=1.0
Type=Application
Name=AvaloniaApp
Comment=这是一个测试应用
Exec=/home/.local/share/applications/myapp/AvaloniaApplication1.Desktop
Icon=/home/.local/share/applications/myapp/myapp-icon.png
Categories=Utility;
Terminal=false

2.1、注册软件

做好上述文件配置之后,在myapp文件夹右键打开终端:

bash 复制代码
//告诉系统这个文件是一个可以执行的程序入口
chmod +x myapp.desktop

//使用系统自带的 desktop-file-validate工具检查文件的语法是否正确
desktop-file-validate myapp.desktop

//手动更新数据库让其生效
update-desktop-database ~/.local/share/applications/

之后你就会在开始菜单看到自己的应用程序图标

相关推荐
invicinble3 小时前
对linux形成认识
linux·运维·服务器
小Pawn爷3 小时前
14.VMmare安装ubuntu
linux·运维·ubuntu
半桔3 小时前
【IO多路转接】高并发服务器实战:Reactor 框架与 Epoll 机制的封装与设计逻辑
linux·运维·服务器·c++·io
engchina4 小时前
WSL Ubuntu で Kubernetes v1.34.2 + Docker 環境を構築する
ubuntu·docker·kubernetes
HABuo4 小时前
【linux文件系统】磁盘结构&文件系统详谈
linux·运维·服务器·c语言·c++·ubuntu·centos
Howrun7774 小时前
关于Linux服务器的协作问题
linux·运维·服务器
小白同学_C5 小时前
Lab3-page tables && MIT6.1810操作系统工程【持续更新】
linux·c/c++·操作系统os
十年磨一剑~6 小时前
Linux程序接收到sigpipe信号崩溃处理
linux
geshifei6 小时前
Sched ext回调3——select_cpu(linux 6.15.7)
linux·ebpf
代码游侠6 小时前
C语言核心概念复习——网络协议与TCP/IP
linux·运维·服务器·网络·算法