Avalonia项目打包安装包

这篇具有很好参考价值的文章主要介绍了Avalonia项目打包安装包。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Avalonia项目打包安装包

要将 Avalonia 项目打包成安装包,你可以使用 Avalonia 发布工具来完成

1.创建一个发布配置文件

在你的 Avalonia 项目中,创建一个发布配置文件。在项目文件夹中创建一个名为 publish.xml 的文件,并添加以下内容:

<?xml version="1.0" encoding="utf-8"?>
<Publish xmlns="https://github.com/avaloniaui">
  <Executables>
    <Executable Identifier="YourAppName"
                MainClass="YourAppName.Program"
                OutputName="YourAppName" />
  </Executables>
  <VersionInfo CompanyName="Your Company"
               Description="Your App Description"
               ProductName="Your App Name"
               AssemblyVersion="1.0.0"
               FileVersion="1.0.0" />
</Publish>

2.打开命令行工具,并导航到你的 Avalonia 项目的根目录。

3.运行以下命令来发布项目:

dotnet publish -c Release -r win-x64 /p:PublishSingleFile=true /p:PublishTrimmed=true /p:PublishReadyToRun=true /p:PublishReadyToRunShowWarnings=true /p:UseAppHost=true /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true /p:SelfContained=true --self-contained true

其中,-r 参数表示发布目标平台,win-x64 代表 Windows 64 位。你可以根据需要替换为其他平台。
dotnet publish:这是用于执行发布操作的 .NET CLI 命令。

  • dotnet publish:这是用于执行发布操作的 .NET CLI 命令。
  • -c Release:指定发布的配置为 Release 模式,这将优化应用程序的性能和大小。
  • -r win-x64:指定目标运行时为 Windows x64 平台,发布输出将为该平台准备。
  • /p:PublishSingleFile=true:设置发布输出为单个可执行文件,将应用程序和其依赖项打包为一个文件。
  • /p:PublishTrimmed=true:启用发布优化,删除未使用的依赖项和代码来减小应用程序的大小。
  • /p:PublishReadyToRun=true:使用 ReadyToRun 编译器进行发布,可以提高应用程序的启动性能。
  • /p:PublishReadyToRunShowWarnings=true:在使用 ReadyToRun 编译器进行发布时显示警告信息。
  • /p:IncludeNativeLibrariesForSelfExtract=true:包含本机库以支持自解压功能,以便在运行时自动提取依赖项。

4.运行结果

运行成功后,你可以在输出目录中找到发布的文件。默认情况下,它们位于 bin\Release\netcoreapp3.1\publish 目录中。

5.查看打包地址

运行TerraMours.Chat.Ava.exe,即可启动程序。

6.报错分析

通过以上的命令生成的exe可以直接运行,但是我遇到了调用三方接口时的报错。如下:

报错的内容如下:

System.NotSupportedException: Thedeserialization constructor for typeOpenAI.ObjectModels .RequestModels.ChatMessage' containsparameters with null names . This might happen because theparameter names have been trimmed by ILLink. Consider using the source generated serializer instead

1.分析原因

错误消息表明,在类型的反序列化构造函数中存在具有空名称的参数。这可能是因为参数名称被 ILLink(一个.NET工具链)剪裁导致的。ILLink通过剪裁未使用的代码和元数据来减小应用程序的大小,但它可能会在处理构造函数参数名称时出现问题。

2.修改命令

从错误中可以看出是少了数据,是打包时候被剪裁掉了,应该是/p:PublishTrimmed=true 启用了发布优化,删除未使用的依赖项和代码来减小应用程序的大小,那么我们优化下发布命令,删掉/p:PublishTrimmed=true ,优化后的命令如下:

dotnet publish -c Release -r win-x64 --self-contained true /p:PublishSingleFile=true /p:PublishTrimmed=false /p:PublishReadyToRun=true /p:IncludeNativeLibrariesForSelfExtract=true

这样打包时就不会删除依赖项,新的打包成果,接口调用正常:

3.生成程序对比

不过对应的程序大小会不同。下面是前后两次的打包的程序大小的对比

发布优化:

不优化:

程序大小的对比还是很明显的,/p:PublishTrimmed=true 会大大的优化程序大小。所以在程序发布时可以优先开启发布优化,如果遇到问题,再关闭,毕竟程序越小越好。

7.项目介绍

本项目是基于Avalonia的智能AI会话项目。采用的是最新稳定版本11.0.0-rc1.1。希望通过该项目了解和学习Avalonia开发的朋友可以在我的github上拉取代码,同时希望大家多多点点star。

https://github.com/raokun/TerraMours.Chat.Ava

V1.0版本

下载地址:V1.0版本win64下载地址

目前可用的第一个版本
功能:

  • 最全的接口参数配置
  • 支持反向代理
  • 支持聊天记录的数据本地化存储
  • 支持填写SystemMessage

8.技术总结记录

目前打包只发布了Win64的安装包,后续测试linux安装包的发布。目的是在国产国产麒麟系统中运行本程序。

面目技术总结记录在我的博客中

基于Avalonia 11.0.0+ReactiveUI 的跨平台项目开发1-通用框架

基于Avalonia 11.0.0+ReactiveUI 的跨平台项目开发2-功能开发

Avalonia项目打包安装包

阅读如遇样式问题,请前往个人博客浏览: www.raokun.top

拥抱ChatGPT:https://ai.terramours.site

开源项目地址:https://github.com/raokun/TerraMours.Chat.Ava文章来源地址https://www.toymoban.com/news/detail-592062.html

到了这里,关于Avalonia项目打包安装包的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Docker教程———安装(Ubuntu)+打包项目

    Docker是一款开源的容器化平台,它可以让开发者将应用程序及其依赖项打包到一个可移植的容器中,从而实现轻松部署、运行和管理应用程序。Docker的容器技术可以将一个应用程序运行所需的所有软件、库和配置文件打包到一个容器中,然后将该容器发布到任何支持Docker的服

    2024年01月20日
    浏览(52)
  • jenkins安装,打包,部署java项目

    一、安装 下载地址 :https://www.jenkins.io/zh/download/ 选择 CentOS/Fedora/Red Hat版本 安装命令如下: 至此 不出意外 安装已经结束 启动 Jenkins 记得打开8080防火墙 如果出现 Build step ‘Execute shell’ marked build as failure 权限不够 解决方法,将Jenkins运行用户改为root,默认Jenkins用户 JENKINS

    2024年02月02日
    浏览(34)
  • VisualStudio打包项目文件为.exe安装包

    使用扩展:install Projects  注意事项:打包项目前,确保项目能正常运行,不然打包毫无意义。 打开vs软件-扩展-管理扩展-搜索install Projects-安装-重启软件 2.1、添加setup项目 右击项目的解决方案-添加-新建项目-搜索setup,找到setup Project-点击下一步 2.2、配置setup项目 设置项目名

    2024年02月12日
    浏览(34)
  • Vue 项目打包为 exe 可安装程序

    使用 Electron 和 Inno Setup 将 vue项目打包为 exe 可安装程序 1 )、Electron 下载安装方式 官网地址 git仓库下载地址 运行成功后界面 2 ) 、 Inno Setup 下载安装方式 无脑下一步即可 官网地址 各大应用商城下载(如:电脑管家、360等) 路径必须修改为 \\\"./\\\" ,不然可能造成页面空白或加

    2024年02月12日
    浏览(72)
  • nvm、node、vue安装、vue项目创建打包

    nvm作用: 可以管理多个版本的node , 切换node版本 , 下载node 。 参 考:https://zhuanlan.zhihu.com/p/519270555 下载地址:https://github.com/coreybutler/nvm-windows/releases 前面下载安装 一、2 一、3 把路径配置到PATH中 经过测试,应该把 环境变量 配置 到全局模块 即可: D:DevelopAppNodeNvmAllN

    2024年02月09日
    浏览(76)
  • 基于Avalonia 11.0.0+ReactiveUI 的跨平台项目开发1-通用框架

    Avalonia是.NET的一个跨平台UI框架,提供了一个灵活的样式系统,支持广泛的操作系统,如Windows、Linux、macOS,并对Android、iOS和WebAssembly提供了实验性支持。 之前已经了解了基于Avalonia的项目在国产麒麟系统中运行的案例。正是Avalonia在跨平台的出色表现,学习和了解Avalonia这个

    2024年02月16日
    浏览(55)
  • 基于Avalonia 11.0.0+ReactiveUI 的跨平台项目开发2-功能开发

    项目简介 :目标是开发一个跨平台的AI聊天和其他功能的客户端平台。目的来学习和了解Avalonia。将这个项目部署在openKylin 1.0 的系统上。 为什么使用Avalonia :之前已经了解了基于Avalonia的项目在国产麒麟系统中运行的案例。正是Avalonia在跨平台的出色表现,学习和了解Avalon

    2024年02月17日
    浏览(55)
  • c# 项目文件 打包成exe安装包 (vs2015)

    1 Visual Studio 2015 必须有相关的打包组件; 2 Visual Studio的打包组件有 InstallShield 和 Visual Studio Installer Projects (安装包:VSI_bundle)组件; 3 Visual Studio Installer Projects还可在VS软件中下载,下载方式如下: a)点中菜单栏的“工具”选项,并选中“扩展和更新”; b)在搜索框输入

    2024年02月05日
    浏览(47)
  • 【Linux】Nginx安装使用负载均衡及动静分离(前后端项目部署),前端项目打包

             Nginx 是一款高性能的 Web 服务器和 反向代理服务器 ,也可以充当负载均衡器、HTTP 缓存和安全防护设备。它的特点是内存占用小、稳定性高、并发性强、易于扩展,因此在互联网领域得到了广泛的使用。 总结出以下三点: 负载均衡 :流量分摊 反向代理 :处理外

    2024年02月06日
    浏览(44)
  • pycharm 项目打包制作安装包教程(pyinstaller/nuitka + nsis)

    目录 1.pycharm + pyinstaller + nsis(zip方式) 2.pycharm + nuitka + nsis + VNISEdit (目前使用) 一.在pycharm使用pyinstaller打包项目 先准备好要打包的python项目 将项目文件在terminal中打开 安装 pyinstaller pip install pyinstaller 输入pyinstaller的相关打包指令 我们选用 pyinstaller -D start.py start.py是启动入口

    2024年02月07日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包