首页 > 其他分享 >Avalonia开发(二)项目结构解析

Avalonia开发(二)项目结构解析

时间:2023-09-20 15:11:35浏览次数:40  
标签:文件 AppBuilder 项目 Windows 开发 cs 解析 Avalonia

一、前言

Avalonia开发(一)环境搭建 文章中介绍了Avalonia的介绍、开发环境的搭建、项目创建,以及项目FirstAvaloniaApp项目结构的介绍。本篇文章将介绍各平台的项目介绍。

二、Desktop项目结构

FirstAvaloniaApp.Desktop项目中默认生成的只有两个文件:Program.csapp.manifest(程序文件清单)

Program.cs 主要是Main函数,指定程序运行的一些条件

看一下BuildAvaloniaApp()函数,使用的是lambda表达式,里面用到了类为AppBuilder,后面的为几个静态方法

  • Configure<T>AppBuilder中的静态方法,用于生成一个AppBuilder的实例。

  • UsePlatformDetect:静态扩展方法,用于加载平台需要的一些基础内容,如渲染等。位于Avalonia.Desktop.dll类库中

  • WithInterFont:静态扩展方法,用于加载字体的相关处理,位于Avalonia.Fonts.Inter.dll库中

  • LogToTrace:静态扩展方法,用于一些日志信息的输出,位于Avalonia.Controls.dll库中。

项目完成编译后,对于Windows平台的话,直接生成对应的exe程序。

三、Android项目结构

FirstAvaloniaApp.Android 项目内包括Android需要的 Properties\AndroidManifest.xmlResourcesIcon.pngMainActivity.cs几个文件/文件夹。在这里我们主要讲的是MainActivity.cs

MainActivity继承自AvaloniaMainActivity<TApp>类,并实现虚方法CustomizeAppBuilder。此虚方法主要是执行加载字体,在父类中存在执行了用于加载Android系统相关资源的一些东西,如果想继续研究的话,可以参考Avalonia的源代码,这里不再详细赘述。

MainActivity类上面添加了Activity属性,指定主题、图标、启动页等相关内容。

项目完成编译后,如果不使用模拟器或者真机运行的话不会生成apk文件,只是简单的生成了对应dll文件。

连接真机,并打开调试功能,可以将apk程序安装到手机上运行。

三、iOS项目结构

FirstAvaloniaApp.iOS 项目内包含的基础文件(夹)比较多,如:Asset CatalogsResourcesAppDelegata.csEntitlements.plistInfo.plistMain.cs。因没有开发过iOS的应用,某些文件(夹)具体作用不得而知。

Main.cs:入口函数,传入了AppDelegata.cs的类型

AppDelegata.cs继承自AvaloniaAppDelegate<TApp>类,并实现虚方法CustomizeAppBuilder,执行一些平台的相关内容。

Entitlements.plist是权限相关的内容

Info.plist是对程序的一些内容的设置。

是否能运行,未验证。

四、Browser项目结构

目前还处于早期阶段,尚未准备好用于生产
FirstAvaloniaApp.Browser 项目内包含的PropertiesAppBundleProgram.csruntimeconfig.template.json

Program.cs:定义一个主函数。

看一下BuildAvaloniaApp()函数,使用的是lambda表达式,里面用到了类为AppBuilder,后面的为几个静态方法

  • Configure<T>AppBuilder中的静态方法,用于生成一个AppBuilder的实例。

可以在浏览器中运行。

五、发布

5.1 Desktop发布

发布选择文件夹,执行到最后,会生成一个Properties\PublishProfiles\FolderProfile.pubxml文件,
经过本人的测试,对于WindowsLinuxoxs三个平台的桌面程序均可以正常发布(使用的单文件发布),Windows平台程序可以正常运行,对于其他两个系统的程序,因没有机器,未进行验证。

Windows发布后的文件列表

Linux发布后的文件列表

oxs发布后的文件列表

5.2 Android发布

选择了文件夹选项,不能正常发布生成apk程序。

5.3 iOS发布

选择了文件夹选项,在Windows平台上不能正常发布程序。

5.4 Browser发布

选择了文件夹选项,在Windows平台上可以发布,但是在publish文件夹中没有文件。

结果分析

五、总结

各个平台的程序都使用了AppBuilder这个类,主要用于构建初始化特定平台的初始化服务工作。

目前,Avalonia的某些内容还不成熟,对于特定平台的需求,选择还是要谨慎一些。

Avalonia系列文章

1、 Avalonia开发(一)环境搭建

标签:文件,AppBuilder,项目,Windows,开发,cs,解析,Avalonia
From: https://www.cnblogs.com/sesametech-dotnet/p/17715260.html

相关文章

  • RK3568开发板SG90 舵机模块的功能实现-迅为电子
     1模块说明SG90舵机模块如下图所示:   常见的舵机转向角度有0-90度,0-180度,0-360度,可以用在垃圾桶项目开盖用,智能小车的全比例转向,摄像头云台,机械臂等。 2接线说明SG90舵机模块上三条线,三条线定义如下:棕线:GND红线:VCC4.8V-7.2V黄线:脉冲输入 3程序测试......
  • 当敏捷开发遇上固定交付……
    假设一个固定交付的项目,这个开发项目是构建一个应用程序,时间表是一年。在项目进行期间可能出现什么问题?一、什么是固定交付?一个固定交付的项目意味着它具有固定的范围、固定的时间表和固定的成本。长期以来,传统的项目管理方式侧重于由项目范围、预算和时间表组成的“三重约束”,这也......
  • iOS开发证书发布证书,推送证书,描述文件的生成总集(一)
    iOS开发证书发布证书,推送证书,描述文件的生成总集(一)一.开发证书发布证书制作1.进入(Launchpad),找到  (我的是在其他里面找到的),运行后再左上角2.存储在桌面就好了,然后就完成退出钥匙串工具就可以了。注册项目的BundleID。到这里就算注册完成了。二.推送证书制作Snip20161214_2.png.......
  • 苹果app开发流程详解
    苹果app开发流程详解 苹果AppStore上传应用流程详解,在向AppStore提交应用之前,开发者首先要成为苹果iOS开发者项目的成员,每年向苹果缴纳99美元或199美元的费用(具体申请方法后期更新)。免688开发IOS应用,根据apple的规定,不支付688,可以开发IOS应用,但是不支持提交审核,推送,支付和apple登......
  • iOS开发证书、bundle ID、App ID、描述文件、p12文件,及企业证书打包发布详述
    引言  此操作手册用于提供客户进行企业发布299美金的账户发布非AppStore的app程序的CSR证书,distribution证书以及p12证书导出用。2.iOS开发证书,描述文件,bundleID的关系苹果为了控制应用的开发与发布流程,制定了一套非常复杂的机制。这里面的关键词有:个人开发者账号,企业开发者账......
  • 如何最简洁的使用iOS 开发证书 和 Profile 文件
    如果你想在iOS设备(iPhone/iPad/iTouch)上调试,需要有iOS开发证书和Profile文件。在你拿到这两个文件之后,该如何使用呢?证书使用说明:1. iOS开发证书:开发证书(DevelopmentCertificate)是一个后缀为.p12 的文件(Certificates.p12); 在Mac系统下,双击这个文件,这个证书会自动导......
  • 如何使用iOS 开发证书 和 Profile 文件
    如果你想在iOS设备(iPhone/iPad/iTouch)上调试,需要有iOS开发证书和Profile文件。在你拿到这两个文件之后,该如何使用呢?证书使用说明:1. iOS开发证书:开发证书(DevelopmentCertificate)是一个后缀为.p12 的文件(Certificates.p12); 在Mac系统下,双击这个文件,这个证书会自动导......
  • 每个.NET开发都应掌握的C#异常处理知识点
    上篇文章讲述了C#集合知识点,本文将介绍C#异常处理知识点。异常处理是.NET开发中至关重要的一部分,它允许开发者在程序出现错误或不正常情况时采取适当的措施,从而提高应用程序的稳定性和可靠性。本文将介绍C#异常处理知识点,异常的基本概念略过,请查看官网。1、自定义异常开发者可以......
  • 最新苹果开发者账号添加设备UDID
    苹果开发时,只有在开发者后台添加过UDID的设备,其信息才能包含在.mobileprovision配置文件中,才能配合证书进行真机调试。开发者后台-Devices管理页面一、单个添加UDID 点击添加按钮⊕,在注册单个设备区域填写设备信息并依次完成Continue→Register→Done即可。添加设备页面.png......
  • Flutter开发桌面应用的一些探索
    引言在移动应用开发领域,Flutter已经赢得了广泛的认可和采用,成为了跨平台移动应用开发的瑞士军刀。然而,Flutter的魅力并不仅限于移动平台,它还可以用于开发桌面应用程序,为开发人员提供了一种全新的选择。本文将深入探讨Flutter在桌面应用开发中的应用,以及目前国内新颖的跨端开发技......