• 日记:WinUI3打包成.msix


    来源网站:WinUI3打包成.msix – WhiteNight's Site

    2023年5月17日

    服了,这玩意怎么能这么难搞。

    又是证书又是什么“向开发者获取安装包”,还有什么缺依赖什么什么的鬼问题,真的就只能供本地开发的时候测试用呗。

    我觉得这就是一种自信。

    总结:我劝你别用。不如直接Unpacked运行然后发压缩包给别人来的方便。真的要用的话我大致试了下,你Unpackaged运行的时候也可以选择生成一个.msix的安装包,这玩意只需要客户安装证书就能运行了。

    更正:我后来发现,WinUI3要运行需要一个.net 6.0 runtime的依赖,建议把这玩意的安装包一起发给你的用户,让用户自行安装。

    好吧,证书其实挺好弄的,发布的时候用同一个证书就好了。记得让用户把证书保存到那个什么“受信任的根证书”目录下。

    真正难搞的是各种dll的依赖,大部分安装你应用的人都不会特意去安装什么相关的依赖环境,除非对面和你一样之前在电脑上搞过WinUI3的开发,那倒是还比较有戏可以直接点开运行。

    但是大部分人没有,所以以我的观点来看,建议不要选择Package运行,也不要去打包或者发布。

    我现在个人目前觉得,选不打包的方式,然后去项目目录下找bin文件夹里带exe的那个文件夹,只要你点击exe能运行那就说明你找对文件夹了。

    把这个文件夹打包发给用户即可,完事。省的为缺各种各样的依赖费心。

    忘了说了,最重要的是这个问题。

    举个例子,我自己最近在写学校里头数字图像处理的大作业。用的是WinUI3.其中有个功能是调用客户端本地计算机的Matlab命令行,然后执行一些函数啥的对图像进行处理。

    这里有个问题,你需要去引用一个Matlab的MWArray.dll依赖,相信如果你写过相关程序的话应该知道这个。它功能就是做些数据转换,还有最重要的功能之一–给你提供MathWorks这个命名空间,让你能去调用matlab的命令行和一些方法。

    所以如果你把源代码整个打包发给用户,发现对面在调试的时候没有MathWorks这个命名空间,是很正常的。因为这玩意,如果你直接去matlab的源文件下引用,那么最后你程序引用这个包的时候,用的是绝对路径。

    问题出在哪?显而易见,用户的电脑上不一定和你有相同的matlab安装路径,当然极大情况下它们的路径都和你不一样。

    所以不要直接去matlab源文件下引用。先复制一份到你项目的文件夹下,至少要在你的入口文件.sln的文件夹之后,然后再去添加引用。

    有没有用绝对路径可以去.csproj里搜下MWArray,看看Path那一栏是不是相对路径。

  • 相关阅读:
    Centos开机网卡自启动失败
    部署ELK,收集nginx日志
    Linux应急响应排查
    在 Azure AKS 上部署 EMQX MQTT 服务器集群
    [云原生k8s] k8s管理工具kubectl详解(一)
    vivado时序分析-3时序分析关键概念
    深聊全链路压测之:第二十四讲 | 分布式调度平台的选型与落地。
    【Python入门基础2】关于print()函数 及 格式化输出
    【Node.js】Windows环境安装配置NVM和Node.js
    P1540 [NOIP2010 提高组] 机器翻译(模拟)
  • 原文地址:https://blog.csdn.net/white_night_SZTU/article/details/132797263