迁移桌面程序到MS Store(1)——通过Visual Studio创建Packaging工程
之前跑去做了一年多的iOS开发,被XCode恶心得不行。做人呢,最重要的是开心。所以我就炒了公司鱿鱼,挪了个窝回头去做Windows开发了。
UWP什么的很久没有正儿八经写了,国内的需求非常少。传统的桌面开发倒是因为人越来越少了,需求还在,有少量还不错的职位。现在在做WPF的项目,公司层面倒是很愿意迁移到UWP,但是迁移起来会有很多的困难和限制。同时有这方面热情,且知道怎么去做的人就更少了。
接下来会通过几个短篇来介绍如何通过Desktop Bridge来迁移桌面程序到MS Store,这块的学习我还没有深入,祈祷一下不会很快就太监了……
其实如果仅仅是要求把exe打包成appx的话,权限方面并没有什么特殊的要求。但是默认情况下,如果需要提交商店并通过审核的话,应用程序需要能够运行在Windows 10 S模式下。MSDN的原话是
All apps submitted to the Microsoft Store must be compatible with Windows 10 S. Apps that aren't compatible won't be accepted in the store.
这个就比较严格了,简单举例如下:
- APP不能要求admin权限
- APP不能包含Windows Service
- APP不能像exe程序那样直接在运行目录写文件
- APP不能直接运行另一个exe程序
以上这些在传统桌面程序中算是常见了,所以只要稍微复杂一点的exe程序,在迁移的时候就会遇到各种各样的问题。
今天的第一篇我们首先来处理一下最简单的情况,即移植一个标准的,同时符合商店权限要求的WPF程序。
第一步我们先创建一个空的WPF工程。运行起来是一个空白的窗体。工程文件结构也很简单,见Solution Explorer。
接下来我们要创建一个Packaging工程来对WPF工程进行打包,最终通过Packaging工程来生成APPX文件。可以在Windows Universal目录下找到Windows Application Packaging Project。
点击OK创建完成后,记得要在Applications中添加对WPF工程的引用。同时我们还可以看到Images文件夹下对应的图片,是转换完成后的磁贴图标。不更新的话在开始菜单里就是默认的方块叉图标。
通过Visual Studio添加Packaging工程的优点是,我们可以方便的调试原来的WPF程序。这里我们将启示项目Startup Project设置为SimpleWpfAppPackaging后,按F5运行是可以直接调试SimpleWpfApp工程的。我们可以加个断点试试,体验可以说是无缝链接必须好评了。成功运行程序后,你会在开始菜单中发现SimpleWpfAppPackaging。
再接着就是创建APPX等文件提交商店了。Packaging工程上通过右键菜单Store -> Create App Packages… 再往后的流程就是和纯的UWP工程一模一样了。
假设我们给APPX的名字也命名为SimpleWpfAppPackaging,那么我们可以得到以下APPXUPLOAD文件。这个文件就是提交到商店进行审核的最终文件。
本篇先做了一个最基本的介绍,希望能留下对迁移工程的初步印象,后面我们会接着讨论一般情况下,迁移工作可能会遇到的问题和解决方案。
本篇相关代码地址: