将桌面应用程序提交到Windows应用商店需要执行哪些操作?

时间:2015-05-04 01:51:39

标签: c++ c winapi mfc windows-store-apps

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

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

2 个答案:

答案 0 :(得分:2)

你应该考虑和John Sheehan一起观看this //build talk。它涵盖了商店中Win32应用程序的详细信息(代号为 Project Centennial )。第一个细节是"这个项目仍在开发中#34; (截至2015年5月)。

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

答案 1 :(得分:0)

如果您不希望坐在this Build 2015 presentation附近的Peter Torr小时,请点击 Project Centennial 所需的内容。此外,正如已经指出的那样,这是一个初步的东西,仍在开发中(截至2015年5月。)

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

  • MSIs" evil"。请改用APPX软件包。

  • APPX全球:一键安装通过Windows应用商店,通过Windows应用商店自动更新应用程序(使用文件差异' - 无需重新下载大型未更改的文件包裹。)

  • Microsoft将拥有一个自动转换工具:MSI to APPX。

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

  • 该应用将有一个实时瓷砖&使用Universal App(或Metro风格应用程序)

  • 可以完成的任何其他事情
  • 该应用程序的AppxManifest.xml文件将定义应用程序的文件关联。

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

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

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

例如,如果您的应用尝试访问C:\Windows,它将被无形地重定向到C:\Program Files\WindowsApps\<GUID>\<Package Name>\Root\VFS\Windows该应用。

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

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

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

enter image description here

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

enter image description here

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

  • 商店应用只能作为用户运行(他们称之为&#34; 完全信任&#34;在我的本书用词不当无法运行提升,如果它尝试调用显示UAC prompt的API,则此类API将无声地失败。

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

我相信有sign up方法可以获得此项目的任何更新。