读书频道 > 系统 > windows > Windows运行时编程权威指南
2.3 Windows应用商店应用程序包的构建
2015-03-31 15:00:10     我来说两句 
收藏    我要投稿   

本文所属图书 > Windows运行时编程权威指南

《Windows 运行时编程权威指南》分为两部分,共11章:第一部分(第1~3章)囊括了所有WinRT和Windows应用商店应用开发人员必须了解的重要概念,包括WinRT 类型系统及其设计原则、异步调用、程序包文件,以及应  立即去当当网订购

在对应用进行开发或者调试时,Visual Studio从项目的生成目录(build directories)(在本章的第2.7节中将详细讨论)中注册并运行你的应用。但是,当你准备发布一款应用时,必须创建程序包文件。在Visual Studio中,可以选择“项目菜单”(Project Menu)>“应用商店”(Store)>“创建应用程序包”(Create App Packages),或者使用Visual Studio Express,选择“应用商店菜单”(Store Menu)>“创建应用程序包”(Create App Packages)。Visual Studio向开发人员提供了选择,既可以创建手动发布的程序包,也可以创建上传到Windows应用商店的程序包。在创建准备上传到Windows应用商店的程序包时,Visual Studio会提示你将程序包与之前已经通过Windows应用商店仪表盘为其预留的应用名称进行关联。在第11章中,我们将看到为Windows应用商店创建应用的细节。

在“创建应用程序包”(Create App Packages)向导(如图2.5所示)中的下一个步骤为指定你的应用的程序包版本、其支持的一种或多种CPU体系结构,以及“调试”(Debug)或“发布”(Release)等解决方案配置。我们将在第2.3.2节“捆绑程序包文件的创建”中介绍“生成应用程序捆绑包”(Generate App Bundle)设置。



对于CPU体系结构,你可以在Neutral、x86、x64,以及ARM之间进行选择。C# Windows应用商店项目中默认为Neutral(Any CPU),使用这一设置构建的程序包在所有3种CPU体系结构上都能运行。然而,你的应用可能会涉及由.NET或者C++构建的其他Windows应用商店组件。如果你的应用中使用了为某种特定CPU体系结构而构建的组件,你必须构建一个或者多个特定于CPU的程序包。为x86构建的应用在x86和x64计算机上都可以运行。Windows应用商店使用体系结构信息为用户的PC筛选应用。因此,如果你的应用仅支持x86体系结构,使用Windows RT计算机(ARM处理器计算机)的用户在Windows应用商店应用中进行浏览时将无法看到你的应用。

“创建应用程序包”向导从清单文件中填充版本,通过修改数字来更新清单文件。如果你在向导中选择了多种体系结构,生成过程会创建多个应用程序包文件。请求包含公共符号的复选框用于通知向导为每个被选中的CPU体系结构创建一个额外的文件。当应用程序崩溃时,这些文件包含了公共符号信息,这些信息允许Microsoft在Windows应用商店仪表盘中向你提供更好的诊断结果。(更多信息请参阅第11章。)

当你单击向导的“创建”(Create)按钮时,生成过程会被启动,如图2.6所示。



其运行过程如下:

1.MSBuild任务使用XAML标记生成源代码文件,例如App.g.i.cs或者MainPage.g.i.cs。这一步骤没有出现在图2.6中。

2.C#编译器(CSC.exe)对你的源代码文件和动态生成的源代码文件进行编译,两者共同生成一个托管可执行程序集(exe文件)。对Windows应用商店应用的生成要求使用/target:appcontainerexe编译器开关。默认情况下,你的可执行文件能够在所有的CPU体系结构上运行,这是因为Visual Studio添加了/platform:anycpu32bitpreferred编译器开关。当在x64系统上运行时,可以使用/platform:anycpu开关以利用更多的地址空间。

3.你的应用程序所需要的其他文件,例如被引用的程序集文件和其他资源资产(例如图像、音乐、视频等),也被复制到了与.exe文件相同的目录下。你的XAML文件被编译为二进制格式,并作为扩展名为.xbf的文件而被添加到该目录。

4.MakePRI.exe实用工具会为字符串资源和其他资产文件创建一个包资源索引(.pri)文件。(细节请参阅http://msdn.microsoft.com/en-us/library/windows/apps/jj552947.aspx。)Windows应用商店应用会在运行时使用该.pri文件高效地载入资源。这一文件包含了你的应用中的字符串以及一组已编入索引的、应用程序的其他资源的文件路径。你的应用支持的所有语言对应于一个.pri文件。这个.pri文件也被写入到相同的目录。

5.最终的清单文件(AppxManifest.xml)与本章之前讨论过的项目的Package.appxmanifest文件几乎是相同的。然而,MSBuild可能会对文件中的某些值进行调整。

6.然后,MSBuild生成MakeAppx.exe,以便创建一个包含所有已生成文件的未签名.appx程序包文件。应用程序的程序包文件其实就是一个使用.appx作为文件扩展名的ZIP文件。该文件内部不能包含超过100?000个文件,同时其大小也不能超过8GB。

7.最后,MSBuild调用SignTool.exe,以便使用Visual Studio项目包含的证书对.appx文件进行签名。

此时,你拥有了一个单个.appx程序包文件,该文件包含了你的应用程序与其所需的一切资源,以便该程序包安装到用户的PC上时能够立即运行。在下一节中,我们将会看到.appx程序包文件的内容。


点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:2.2.3 应用(而不是包)的声明(扩展/协议)
下一篇:2.3.1 .appx程序包文件的内容
相关文章
图文推荐
3.4.4 进程生命期管
3.4.2 Windows应用商
3.4.1 Windows应用商
3.4 进程生命期管理
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站