一个月前微软发布了桌面应用程序转换器(Desktop Application Converter),让我们可以把现有的桌面应用程序(.NET 4.6.1 或 Win32)轻松转换成 通用 Windows 平台 (UWP) 的程序。

这实际上为开发者带来了巨大的机会。目前已经看到许多开发商主动开始这个过程并成功转换,发布到了 Windows 应用商店。 有些应用只需要少量或者不需要做代码修改,最快的一周就可以把自己的桌面应用程序带到Windows 10 应用商店里面。目前有超过3 亿 5000 万的设备正在运行 Windows 10,这种转换为有价值的桌面应用程序提供了前所未有的易于展现和购买的渠道。

不过,在这个过程中,我也注意到有两个常见的问题︰

A. 我成功转换此应用程序,它运行得相当好,但似乎没有办法直接发布到 Windows 商店?

B. 真是太酷了! 但是转换需要下载很大的image (3.5GB+) 和安装特定环境,我还没空尝试。。。。.

当然也有其他的问题,比如一些细节的准备工作,如何添加一些代码来在传统桌面程序里面使用 UWP API,有其它参考链接对此做了详细解释,在这里我主要回答上面两个问题:

关于问题 A,当决定转换并通过Windows应用商店发布自己的桌面应用程序时(不管会不会转换)都可以通过微软官方链接提交请求 (这个表格目前还是英文,但不难理解, 在提交的时候请注明来自国家地区,并附上本文博客链接)︰

https://developer.microsoft.com/en-us/windows/projects/campaigns/desktop-bridge

微软应用咨询团队(包括我在内)将帮助这个过程,包括解决转换中的技术问题,创建一个用来发布应用程序的特定开发者帐户。我们需要在这里特定开发者帐户,是因为转换后的应用程序,需要"runFullTrust",这就是转换后的程序不能直接将其发布的原因。

关于 B 的问题,我开发创建了"Desktop Bridge Online" 的Azure 服务,它可以帮助开发人员上传和转换的应用程序(写了个调用DAC的 windows 服务) 在线快速 (几个点击和文件名输入)︰

https://bridge10.azurewebsites.net

这项服务可能没有涵盖所有极端复杂的安装转换场景,但会满足大多数转换需求。

结果将是一个 zip 文件包含转换后的Appx程序包、测试证书和 程序包的分析文件。目前的应用程序安装程序文件大小仅限于 500 MB。如果您的安装程序超过上面的文件大小,鼓励安装本地转换环境。这里是主要的用户界面︰

转换选项如下所示参数的含义参考 https://msdn.microsoft.com/en-us/windows/uwp/porting/desktop-to-uwp-run-desktop-app-converter

希望上面的信息和新的在线工具可以让我们更好地协助需要转换桌面应用程序的开发人员。任何反馈随时让我知道。

来自Windows 应用程序咨询团队其它有益的参考:

https://blogs.msdn.microsoft.com/appconsult/2016/10/13/desktop-bridge-the-bridge-between-win32-apps-and-the-universal-windows-platform/

https://blogs.msdn.microsoft.com/appconsult/2016/10/17/desktop-bridge-converting-an-installer/

Thanks!

Freist Li

行动起来:转换传统桌面应用程序到UWP 并发布到Windows 应用商店!的更多相关文章

  1. Rafy 领域实体框架示例(1) - 转换传统三层应用程序

    Rafy 领域实体框架发布后,虽然有帮助文档,许多朋友还是反映学习起来比较复杂,希望能开发一个示例程序,展示如何使用 Rafy 领域实体框架所以,本文通过使用 Rafy 领域实体框架来改造一个传统的三 ...

  2. 突破短板,传统桌面程序 使用webapi 扩展迎合web和移动端融合的需求

    传统桌面程序不能完全被web和移动端替代,但是需要改造.这里要说的是巧用webapi把以前用dll和com组件,ocx等方式做接口,做分布式开发的方式,改成restful 风格api的方式实现跨平台, ...

  3. 适用于Windows桌面应用程序的.NET Core 3

    介绍 9月,微软发布了新版.NET Core,用于构建Windows桌面应用程序,包括WPF和Windows Forms.从那时起开发人员可以将传统的nfx桌面应用程序(和控件库)迁移到.NET Co ...

  4. c#实现windows远程桌面连接程序

    c#实现windows远程桌面连接程序 使用winform制作windows远程桌面连接程序,windows自带了远程桌面连接,我们需要将远程桌面连接集成 到自己的winform程序,并实现管理远程主 ...

  5. c#实现windows远程桌面连接程序代码

    使用winform制作windows远程桌面连接程序,windows自带了远程桌面连接,我们需要将远程桌面连接集成 到自己的winform程序,并实现管理远程主机的配置. 远程桌面核心类库 windo ...

  6. Visual C++ Windows 桌面应用程序样例(摘抄)

    //================================== //Windows应用程序框架结构(例子) //参考:<Visual C++宝典>陈国建等编著 //======= ...

  7. 杂项-桌面应用程序:Windows Live Writer(WLW)

    ylbtech-杂项-桌面应用程序:Windows Live Writer(WLW) Windowslive Writer 即(WLW) 是一个免费的桌面应用程序,您可以使用它轻松发布丰富的内容到您的 ...

  8. electron之Windows下使用 html js css 开发桌面应用程序

    1.atom/electron github: https://github.com/atom/electron 中文文档: https://github.com/atom/electron/tree ...

  9. PHP-GTK 扩展(用PHP编写桌面应用程序)

    PHP能做什么? PHP-GTK (构建桌面应用程序在PHP中使用PHP-GTK) 普及一下知识php如何做桌面客户端 [PHP技术]PHP开发Windows桌面应用程序实例 实战PHP/GTK 哪位 ...

随机推荐

  1. spring-boot-starter-actuator(健康监控)配置和使用

    在生产环境中,需要实时或定期监控服务的可用性.Spring Boot的actuator(健康监控)功能提供了很多监控所需的接口,可以对应用系统进行配置查看.相关功能统计等. 集成: <depen ...

  2. PKU 3667 Hotel (线段树,区间合并,最长连续区间)

    题意:宾馆有N个房间(1~N),M个操作,a=1,输入b,表示N间房是否有连续的b间房.有输出最左边的房编号 没有输出0.a=2,输入b,c表示房间b到c清空. 模仿了大神的代码,敲了一遍,有些地方还 ...

  3. Centos 7 Apache编译安装

    1.安装apache ./configure --prefix=/usr/local/apache2 --enable-rewrite --enable-so --enable-headers --e ...

  4. 七、备忘录模式Memento(行为型模式)

    其目的是,在不违反封装原则的前提下.採集和备份一个对象的内部状态以便这个对象能够在以后恢复到之前的某个状态. 在Memento模式中,有例如以下角色: 1.Memento (备忘录) * 存储Orig ...

  5. iOS开发-植入广告(iAd, Admob实例)

    应用中植入广告是一种非常好的盈利手段. 以下介绍主流的两种方法.iAd, Admob 先mark一个非常具体的pdf.   http://pan.baidu.com/share/link?sharei ...

  6. vim入门级使用

    1.刚进入是 command mode 命令行模式 2.i  进入插入 insert  mode 模式 在插入模式下只能 输入内容,如果要删除内容,需要切换到命令行模式,移动光标进行删除. 3.esc ...

  7. Flash--元件和实例

    1.元件简述: 元件在Flash影片中是一种特殊的对象.在Flash中仅仅须要创建一次,然后能够在整部电影中重复使用而不会显著添加 文件大小. 事实上在使用元件时,我们一般使用的是该元件的实例,所以说 ...

  8. 把ANSI格式的TXT文件批量转换成UTF-8文件类型

    把ANSI格式的TXT文件批量转换成UTF-8文件类型 Posted on 2010-08-05 10:38 moss_tan_jun 阅读(3635) 评论(0) 编辑 收藏 #region 把AN ...

  9. ※归并排序(merge sort)

    /** 归并排序:通常以递归的方式来实现,它反复将所处理的数组分成两半,并分别对这两半进行排序, 最后再把经过排序的数组归并在一起. */ 归并排序的伪代码实现: 将数组分为两半 对左半部分排序 对右 ...

  10. ES6详解八:模块(Module)!--各种导入导出方法

    [-] 基本用法 命名导出named exports 默认导出 命名导出结合默认导出 仅支持静态导入导出 各种导入和导出方式总结   modules是ES6引入的最重要一个特性. 所以以后再写模块,直 ...