桌面应用迁移UWP注意事项
桌面应用转 UWP 的流程,真的有点门槛。尤其是你习惯了 Windows 传统开发方式,第一次碰 UWP 那一堆限制,多少有点懵。不过只要摸清套路,其实还挺顺的。这篇干货文章就帮你把坑提前填好,像只读目录、注册表限制、不能起外部进程这些,全都讲得明明白白。
UWP 的安装目录是只读的
,所以你没法像以前那样随便往程序目录写日志、配置。这时候就得用ApplicationData.Current
相关的路径来保存用户数据,像LocalFolder
、RoamingFolder
,都挺实用的。
还有一个比较坑的是注册表限制
。UWP 其实是个沙盒环境,HKEY_LOCAL_MACHINE
根本动不了,只能在HKEY_CURRENT_USER
下玩点小动作。而且你要是想跨用户用注册表来搞点共享,那基本凉了,得换方案。
不能调用外部进程也是个大坑。像之前用cmd.exe
、PowerShell
跑批的做法直接不能用了。现在得靠后台任务或者 Windows Runtime API,绕一圈能搞定,但得提前规划好。
你要是用过 Windows 服务做常驻逻辑,那 UWP 只能靠Background Tasks
来实现。用AppxManifest.xml
加上Extension
声明,就能绑定触发器,比方说网络变化、推送事件啥的,效果还不错。
数据共享方面也得注意,AppData 只能自用,你别指望把数据写进去还能被别的 UWP App 读出来。这个限制主要是为了安全,虽然麻烦,但也能理解。
还有安装过程必须静默
,没弹窗、没确认,全自动才行。你用Desktop App Converter
打包的时候,得把许可证确认、组件勾选这类东西提前,不然会翻车。
提醒一句:别启动 PowerShell 和 Cmd.exe。你要是非得执行命令行逻辑,可以试试 Windows Runtime Component 做个桥接,效果还挺稳的。
微软官方文档也挺全的,有空可以翻翻:将桌面应用移植到 Windows 10、Desktop Bridge这些都挺靠谱。
如果你准备把老项目搬上 Windows Store,早点熟悉这些坑,后面开发流程会顺多。