最近把开源项目重构并从 NET Framework 4.8 升级到了 .NET6 ,开发体验良好。尤其是发布 exe 的时候很轻松。
原本 NET Framework 4.8 发布 Exe 包的时候,需要打包一系列的 dll 文件
如图,.NET6 可以打包为一个 10MB 的单 exe 应用,非常方便 portable 版本的发布:
不过今天尝试发布为 msix 并更新到 Microsoft Store ,就遭到了背刺 :(
如下图,NT48 发布的包只需要 10 MB 左右,而 .NET6 发布的包则达到了惊人的 70 多 MB 。
我推测 .NET6 发布打包时默认以 self-contained
形式把 .NET6 运行时也打包到了应用里面。
现在搜索一圈也没找到怎么以 依赖框架
的形式发布 msix 包。
并且这个问题应该是从 NET CORE 时代一直延续至今的:
虽然能理解“为了隔离各个应用,所以给每个应用都打包好自己的运行时”这种做法,但 .NET6 作为微软自家的运行时,居然也要被隔离,不知道过几年 Windows 要是预装了 .NET6 运行时,那么微软商店中的软件是否还需要自带一份运行时呢?
话说回来,反正用户不管怎么样都要下载 70MB 的安装包了,那我干嘛不用 Electron 写桌面应用,虽然用户用着慢,但写 UI 快啊
吐槽完了,求个 star https://github.com/1Remote/PRemoteM
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.