• 日记: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那一栏是不是相对路径。

  • 相关阅读:
    美术馆预约小程序|基于微信小程序的美术馆预约平台设计与实现(源码+数据库+文档)
    利用反射对修饰符为final的成员变量进行修改
    CSS笔记——基本语法及相关知识
    【分布式计算:原理、算法和系统】第三章 逻辑时间【待补全】
    不同类型数据间的转换
    C.打牌的贝贝(卡特兰数)
    《爱的艺术》读书笔记
    mysql日志管理
    Request和Response介绍 [Tomcat][Servlet]
    JAVA图书管理练习
  • 原文地址:https://blog.csdn.net/white_night_SZTU/article/details/132797263