avalonia打包deb安装到ubuntu

1. 相关依赖安装

  • 全局安装打包工具

win+R 输入cmd 输入下面命令

dotnet tool install --global dotnet-deb

 

71c16c68b40c08cadc0538a71c223ea2.png

  • 工程中安装相关打包依赖

项目目录下cmd,或者命令行定位到项目路径,不是解决方案命令

dotnet deb install

 

db0369824539a4fa9df844c72d6f1738.png

 

afc09d92aace3a9d6675ed2ee2a3f490.png

2. 打包前操作

  • 项目路径创建desktop文件以及软件logo文件(png格式)

 

97955695bf7fb8a7653d24f28da3c71b.png

  • 修改项目文件(.csproj)添加下方代码

 

a0b7d9633996a47050fd2feed7abbaac.png

<Content Include="DebDemoProject.png" CopyToPublishDirectory="PreserveNewest">
	<LinuxPath>/usr/share/icons/DebDemoProject.png</LinuxPath>
</Content>
<Content Include="DebDemoProject.desktop" CopyToPublishDirectory="PreserveNewest">
	<LinuxPath>/usr/share/applications/DebDemoProject.desktop</LinuxPath>
</Content>

这里面各个字段含义:
Include:图标文件的相对路径
CopyToPublishDirectory:图标文件复制方式:如果较新则复制
LinuxPath:安装包在Linux安装后,图标文件的路径

  • desktop文件内容进行修改如下:

 

bd426794c00da258eba8f96e1d24b811.png

Exec与Icon里面的路径都是安装完deb包之后会自动生成的默认路径,Exec的路径只可改动工程名字,

Icon为图标文件所在位置,与解决方案里面的一样。

[Desktop Entry]
Name=TestSoftware
Name[zh_CN]=测试软件
Type=Application
Terminal=false
Categories=Applicaltion;
Exec=/usr/share/DebDemoProject/DebDemoProject %U
Icon=/usr/share/icons/DebDemoProject.png
comment[zh_CN]=测试软件
  • 使用Notepad修改文件编码为UTF-8

 

4de3c3c6bcbf6cf745f55061b00041f0.png

  • 右下角结尾改成LF,不要使用CRLF

 

6f74b1e82715ea0126a9594acae5b0ce.png

  • 项目Program文件添加linux系统的字体方案,防止因为字体不能运行,然后编译运行试一下。

 

7ba86bbc68110fc34f61fa9f213af22e.png

public static AppBuilder BuildAvaloniaApp()
{
    FontManagerOptions options = new();
    if (OperatingSystem.IsLinux())
    {
        options.DefaultFamilyName = "Noto Sans CJK SC";
    }

    return AppBuilder.Configure<App>()
        .UsePlatformDetect()
        .LogToTrace()
        .With(options);
}

3. 打包deb文件

  • 还原工程 ,使用命令dotnet restore -r linux-x64
  • 进行打包,使用命令dotnet msbuild DebDemoProject.csproj /t:CreateDeb /p:TargetFramework=net8.0 /p:RuntimeIdentifier=linux-x64 /p:Configuration=Release

根据自己的.Net版本填写

 

ff32397a3bd14bb4b552600bb95f9bb6.png

  • 根据上面的提示路径下获取到deb包,然后拷贝到llinux系统下

 

46116414f7787840ce5ee5d404e39539.png

4. Ubuntu系统下安装deb包

  • 使用命令sudo dpkg -i DebDemoProject.1.0.0.linux-x64.deb

 

c42a7a9643b10b3823c94d44879e3a90.png

  • 安装完后/usr/share会有相应的项目包,desktop文件以及图标文件

 

8ad49c9c51d5c7598983868049fc664e.png

 

dc0c221ed37fa0c2fdefcb468829d390.png

 

23d7cd33382baa713c0178f05bd92a79.png

  • 系统一般自带这个字体,这个时候可以直接通过应用程序打开,

 

116b00c6149369fd103be1ea6324c87a.png

 

9deb0daf8bb7c0371b2e9f608b4e3752.png

  • 能运行不用看这个,由于我第一次下载了一个字体fonts-noto-cjk,并卸载了字体,删除了依赖,演示时候打开软件显示字体问题,我又重新装了这个字体可以运行了

 

a7259b57925acfa06d030be4d8f71c66.png

 

022eec29acc63705464b54e950125fa4.png

  • 如果上面的操作都没有问题,运行软件没有反应,应该是没有安装.net的原因,这里没有截图,不管应该会出现这样的问题
You must install .NET to run this application.
App: /usr/share/DebDemoProject/DebDemoProject Architecture: x64 App host version: 8.0.10 .NET location: Not found
Learn more: https://aka.ms/dotnet/app-launch-failed
Download the .NET runtime: https://aka.ms/dotnet-core-applaunch?missing_runtime=true&arch=x64&rid=linux-x64&os=ubuntu.18.04&apphost_version=8.0.10 

这个原因是没有.Net运行时,因此运行不了软件,这个时候需要下载.Net8运行时,按照提示网页去下载。

  • 下载.Net8SDK,因为.Net运行时没有Linux版本的,那我们就下载64位的SDK,SDK里面包含有桌面运行时,下载要大于上面提示的8.0.10版本的运行时,下载完毕后拷贝到Linux系统中。

 

3f8ea1fa4787cfb8f6a18743e8922705.png

  • Ubuntu配置.net8的环境我是参考的这篇文章,具体步骤看他的即可,我是没有截图,就是一个解压文件的操作。下面介绍一下,

1、使用创建目录命令创建目录

sudo mkdir -p /home/sdk/net/dotnet

2、解压.net包到指定路径

sudo tar zxf dotnet-sdk-8.0.404-linux-x64.tar.gz -C /home/sdk/net/dotnet

 

d6ff168e0009e2d3cb7e12ec6339bed6.png

3、修改系统环境变量,针对所有用户的环境变量配置文件在 /etc/profile ,使用Vim进行修改 sudo vim /etc/profile,添加最后两行话,这两行话与官方文档里面稍微有些出入,但是不影响。

 

15bc4032bf2bf6d7cac2d4ea69bdff03.png

 

70e375fab2a337611cec6b91da1f2c59.png

4、重启电脑或者执行命令source /etc/profile

5、查看.Net是否安装成功dotnet --version

6、安装成功的话可以去试一下软件能否运行

5. 注意

  • desktop文件一定要打包成deb文件之前设置为utf-8编码,以及结尾改为LF,如果没改编码,Ubuntu系统安装完deb包之后,应用程序显示乱码,这个时候再通过命令修改编码以及结尾就不顶用了。

6. 引用

Avalonia UI程序打包为deb安装包_avalonia 如何在开发平台打包成det文件-优快云博客

Avalonia跨平台入门第三十五篇之制作安装包_avalonia 安装包-优快云博客

Ubantu配置net8.0环境_ubuntu 安装dotnet 8.0-优快云博客

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值