将桌面应用程序提交到Windowsapp store需要执行哪些操作?

我听说 Windows 10将允许开发人员将他们的桌面(非Metro)应用程序提交到Windowsapp store。 我正在使用C / C ++ / MFC和WinAPI进行开发。

将桌面应用程序提交到商店需要做什么? 有什么要求/收费?

你应该考虑看看//与John Sheehan 建立对话 。 它涵盖了商店中Win32应用程序的详细信息(代号为Project Centennial )。 第一个细节是“这个项目仍在开发中”(截至2015年5月)。

简而言之,您可以使用现有的基于MSI的应用程序,通过工具运行它来生成appx,然后您就完成了。 有些东西是行不通的(例如安装服务,自定义许可/ DRM或以管理员身份运行),但大多数普通的应用程序代码都可以运行。 显示的示例是Adobe PhotoShop Elements,除了许可检查(现在无论如何都可以由Store处理)之外,它完美地工作。

如果您不想参加由Peter Torr联系的2015年Build版演讲的一小时,这里是Project Centennial所需要的概要。 此外,正如已经指出的那样,这是一个初步的东西,仍在开发中(截至2015年5月)。

适用于Windows 10商店中列出的基于Win32 / .NET / COM的应用程序:

  • MSI是“邪恶的”。 请改用APPX软件包。

  • APPX全球:一键安装通过Windowsapp store,通过Windowsapp store自动更新应用程序(使用文件差异 – 无需重新下载包中的大型未更改文件。)

  • 微软将拥有一个自动转换工具:MSI到APPX。

  • MSI许可/ DRM不起作用:即无法查找CPU序列号,硬盘驱动器信息,网卡MAC地址等( 我的看法:商店应用程序将无法直接访问硬件。

  • 该应用程序将有一个实时磁贴和其他任何可以使用通用应用程序(或Metro风格应用程序)完成的工作。

  • 应用程序的AppxManifest.xml文件将定义应用程序的文件关联。

  • 该应用程序安装到具有随机路径的沙箱文件夹中,例如: C:\Program Files\WindowsApps\\ 。 每次发布新的应用程序版本时,此路径都会更改。

  • 应用程序的沙箱文件夹将包含Root\VFS子文件夹,其中包含以下重定向的子文件夹:

    • AppData
    • AppVSystem32Catroot
    • AppVSystem32Catroot2
    • Common AppData
    • ProgramFilesCommonX64
    • ProgramFilesCommonX86
    • System
    • SystemX86
    • Windows

例如,如果您的应用尝试访问C:\Windows ,它将无形地重定向到应用C:\Program Files\WindowsApps\\\Root\VFS\Windows

  • 该应用程序的包沙箱文件夹将具有该应用程序的Registry.dat文件(即注册表配置单元)。 您的应用程序对系统注册表的所有请求都将重定向到该文件,包括HKLMHKCU密钥。 换句话说,您的应用程序将无法修改任何共享系统注册表项。

  • 通过APPX软件包安装的应用程序无法共享其文件之间的依赖关系,也无法交叉加载其他应用程序的软件包内容。

  • 命名空间合并(在共享系统文件和包的Root\VFS文件夹文件之间):

在此处输入图像描述

  • 命名空间wrire重定向(写入共享系统注册表被重定向到您的应用程序的Registry.dat文件。同样在文件系统规模上,只有AppData文件夹被重定向到您的应用程序的Root\VFS\AppData文件夹):

在此处输入图像描述

  • 重定向的AppData文件夹将放置在非漫游位置。

  • 商店应用程序只能作为用户运行(他们称之为“ 完全信任 ”,在我的书中是用词不当)它无法运行提升,如果它试图调用显示UAC提示的 API,这样的API将默默地失败。

  • 商店应用程序无法安装或运行NT服务。

我相信有一种方法可以注册这个项目的任何更新。