迁移传统桌面程序到MS Store的另一种方式是使用Desktop App Converter工具。虽然本篇标题包含了Desktop App Converter(以下简称DAC),实际上我是来劝你别用DAC的……
  首先我简单介绍下DAC,DAC可以转换传统桌面程序,将其打包成APPX文件。虽然名字里有Converter字样,实际这是一个打包程序,并不会真正去修改用来打包的源程序。
  为了使用DAC,你需要1607版本以上的Windows 10 Pro。我想也没有人会闲的蛋疼用Win7去打包APP进商店才对。
  另外使用DAC的一个好处是,你不需要Visual Studio,如果这也算好处的话。但是相对的,你需要安装Windows 10 的SDK。
  接着你就可以去MS Store去下载Desktop App Converter了。其实DAC本身就是一个通过Desktop Bridge转制的APP。

  使用DAC需要Admin权限,运行起来之后,是类似CMD的窗口。

  

  接下来就是通过一些难记的命令行参数来打包桌面程序,都8102年了,啧啧啧……
  为什么我不推荐使用DAC呢,大概有以下几点:

  • DAC其实是用在没有源代码的情况下,直接打包installation或者exe文件的。很难想象连代码都没有的情况下,还需要去转换程序进商店。
  • 其次打包生成的是APPX文件,不是APPXUpload文件。这其中区别还是蛮大的。
    • APPX:这个是提交MS Store的应用,最早的扩展名啦。现在APPX仅推荐用于测试,还有一种叫做sideloaded的方式来安装使用。sideloaded我们后面再讲。反正就是不再推荐直接提交APPX文件。
    • APPXBUNDLE:可以理解为包含了好几个APPX的捆绑包,比如一个APPXBUNDLE可以同时包含了x86,x64,ARM版本的APPX。
    • APPXUPLOAD:这个是现在推荐的提交格式,是在APPXBUNDLE的基础上,再包含了一个可以对APP做性能分析的文件,提交商店的应用,可以在Dashboard页面下载日志文件,应该就是APPXUPLOAD额外提供的功能了。
  • 不能方便的对打包的程序做修改,需要额外的工具如MakeAppx啥的。而使用Visual Studio的话,就直接在Packaging工程里修改appxmanifest.xml文件就可以了,比如换个磁贴图标啥的,简直就是一键生成。

  

  本篇简单介绍了DAC的用法及不足之处,阻止了你在错误的道路上越走越远的趋势。同时科普了一下APPX,APPXBUNDLE和APPXUPLOAD三种文件的区别。
  转制这种事情其实大家都不想的啦,如果有个愿意投钱的傻老板和愿意从1.0版本重头用起的憨用户,自然还是完全的重写真·UWP的好。后续我会转到从代码角度,把WPF程序迁移到真·UWP的讨论上。

  感谢各位看到这里,我们不定期更新哈^_^

迁移桌面程序到MS Store(2)——Desktop App Converter的更多相关文章

  1. 迁移桌面程序到MS Store(9)——APPX With Desktop Extension

    在<迁移桌面程序到MS Store(8)——通过APPX下载Win32Component>中我们讨论了通过APPX来下载Service部分的安装包.但是纯UWP的客户端并不能自动运行下载的 ...

  2. 迁移桌面程序到MS Store(1)——通过Visual Studio创建Packaging工程

    之前跑去做了一年多的iOS开发,被XCode恶心得不行.做人呢,最重要的是开心.所以我就炒了公司鱿鱼,挪了个窝回头去做Windows开发了.        UWP什么的很久没有正儿八经写了,国内的需求 ...

  3. 迁移桌面程序到MS Store(8)——通过APPX下载Win32Component

    在上一篇<迁移桌面程序到MS Store(7)——APPX + Service>中,我们提到将desktop application拆分成UI Client+Service两部分.其中UI ...

  4. 迁移桌面程序到MS Store(10)——在Windows S Mode运行

    首先简单介绍Windows 10 S Mode,Windows在该模式下,只能跑MS Store里的软件,不能通过其他方式安装.好处是安全有保障,杜绝一切国产流氓软件.就像iOS一样,APP进商店都需 ...

  5. 迁移桌面程序到MS Store(14)——APPX嵌入WCF Service以Admin权限运行

    Windows10 1809版本开始,微软又对UWP开放了新的Capability:AllowElevation. 通过这个新的Capability,UWP APP能够在运行时向用户请求Admin权限 ...

  6. 迁移桌面程序到MS Store(5)——.NET Standard

    接下来的几篇,我想讨论下迁移桌面程序到MS Store,可以采用的比较常见.通用性比较强的实施步骤和分层架构. 通常商业项目一般都是不断的迭代,不太可能突然停止更新现有的桌面版本,然后花很长时间从头来 ...

  7. 迁移桌面程序到MS Store(12)——WPF使用UWP InkToolbar和InkCanvas

    我们在<迁移桌面程序到MS Store(4)——桌面程序调用Win10 API>提到了对Win10 API的调用,但仍存在无法在WPF中使用UWP控件的问题,虽然都是XAML控件,但却是两 ...

  8. 迁移桌面程序到MS Store(13)——动态检查Win10 API是否可用

    假设我们现有一个WPF程序,需要支持1903以前的Windows 10版本.同时在1903以后的版本上,额外多出一个Ink的功能.那么我们就可以通过ApiInformation.IsApiContra ...

  9. 迁移桌面程序到MS Store(3)——开机自启动

    迁移桌面程序的时候,有可能你会遇到这么个需求——开机自启动.Windows传统桌面程序的传统陋习.不论什么奇葩软件都想要开机自启动,默认就给你打开,一开机哐哐哐什么雷,什么企鹅都蹦出来,也不管你用不用 ...

随机推荐

  1. walsh矩阵

    矩阵A(1) 1 矩阵A(2) 1 1 1 -1 矩阵A(2n) 由上一级矩阵组合,即用上一级矩阵的一行生成本级矩阵的一行. 生成规则是 A(2n)[k] = { A(n)[k],  A(n)[k] ...

  2. 消息中间件及WebSphere MQ入门(转载)

    消息队列技术是分布式应用间交换信息的一种技术.消息队列可驻留在内存或磁盘上,队列存储消息直到它们被应用程序读走.通过消息队列,应用程序可独立地执行--它们不需要知道彼此的位置.或在继续执行前不需要等待 ...

  3. 前端之 js的介绍和javascript的基础使用

    一 javasvript的介绍 JavaScript概述 1 JavaScript发展史 1.1 1992年Nombas开发出C-minus-minus(--)的嵌入式的脚本语言(最初绑定在CEnvi ...

  4. mybatis分页插件Mybatis_PageHelper 简单案例

    源码地址(官网,文档) 使用条件: 支持mybatis 3.1.0+ sql 解析工具(jsqlparser.jar) 下载 Mybatis_PageHelper  版本随意,反正我用的5.0.0 m ...

  5. Linux关机操作

    正确的关机流程为:sync > shutdown > reboot > halt 关机指令为:shutdown ,你可以man shutdown 来看一下帮助文档. 例如你可以运行如 ...

  6. C++STL stack

    stack栈 先进后出 stack<int> s ; s.push();//元素入栈 //出栈 while(!s.empty()){ int tmp = s.top(); s.pop(); ...

  7. MFC连接MySQL

    其实,以前弄过sql,mysql应该是顺理成章很简单的事情,但很无奈,傻傻地弄了很久,还请教了别人,别人告诉我的跟我在网上查到的都是一样的,但还是不行,归根接地就是“mysql-connector-o ...

  8. mysql 查询中文字段 没有结果的解决方法

    代码如下: $conn = new mysqli('localhost', 'root', '', 'excel');$sql = "select 中信一级行业 from excel gro ...

  9. 微信小程序之下拉加载和上拉刷新

    微信小程序下拉加载和上拉刷新两种实现方法 方法一:onPullDownRefresh和onReachBottom方法实现小程序下拉加载和上拉刷新 首先要在json文件里设置window属性       ...

  10. C#的委托与Java的自定义接口的异曲同工的同步操作

    C#的委托(以WinForm为例) 在子窗体(ChildFrm)中定义一个委托 this.CaptureListener(callback);//子窗体触发委托事件,以告诉调用的窗体 /// < ...