读书频道 > 网站 > 网页设计 > Windows运行时编程权威指南
2.5 程序包的安装及注册
15-03-31    下载编辑
收藏    我要投稿   

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

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

前一节讨论了在用户的PC上部署程序包的多种方式。在本节中,我们讨论程序包如何与系统集成,以及如何允许用户激活程序包中的应用程序。具体而言,我们将讨论安装和注册。程序包被每台PC安装一次,并被每个用户配置文件注册一次。注意,从Windows应用商店下载的程序包被授权给用户的Microsoft账户,而被安装在用户PC上的账户。这通常是同一个账户,也即,用户已经将其PC账户与Microsoft账户进行了绑定。然而,这两个账户并非必须相同。实际上,用户可以进入应用商店应用,显示“设置”超级按钮>“账户”窗格,并对其用于从Windows应用商店下载程序包的Microsoft账户进行修改。笔者会在希望安装一个已经在其他家人的PC上(这个家庭成员以自己的账户登录)购买过的程序包时修改Microsoft账户。

安装会在Windows将程序包文件的内容解压缩至%ProgramFiles%\WindowsApps\PackageFullName目录时开始。你将注意到Windows使用的是程序包的全名,该名称包含了程序包的版本号。这允许系统在同一台PC的%ProgramFiles%\WindowsApps目录下并列地安装同一个应用程序的不同版本。由于该文件夹的内容是只读的,因此可以被PC上的所有用户共享。系统会保留程序包的旧版本,直到所有的用户都卸载或升级了旧版本。当程序包的某个特定版本被卸载时,这个程序包的子目录会被完全销毁,确保该程序包不会留下任何内存占用。

注册会在用户为自己安装了某个程序包时开始。在注册时,Windows会在注册表中为该程序包添加一个条目。例如,它会在这一项下添加程序包:

HKCU\Software\Classes\ActivatableClasses\Package\PackageFullName

这一项含有带有信息的子节点,例如程序包中应用的可执行文件和入口点的全路径。此外,Windows还会注册各应用程序声明的激活类型(协定)。所有的应用程序必须实现启动激活(Launch activation),而Windows在此处(如下所示)对其进行注册:

HKCU\Software\Classes\Extensions\ContractId\Windows.Launch

对于熟悉COM的读者,可发现其中一些概念是完全相通的。

在注册时,Windows也会为程序包的各用户状态创建一个目录。该目录被创建于如下位置:

%UserProfile%\AppData\Local\Packages\PackageFamilyName

程序包安装和存储文件夹将在第4章和第5章中讨论。与在安装时创建的%Program
Files%\WindowsApps\PackageFullName目录不同,该目录使用程序包系列名称而不是程序包全名。程序包系列名称不包含版本号。系统不需要程序包数据的版本号,因为用户每次只能使用一个程序包的一个版本。因此,虽然PC可以为不同用户同时安装一个程序包的多个版本,但一个用户只能为自己安装程序包的一个版本。这也意味着当用户升级到该程序包的一个新版本时,该用户在一个程序包中的数据会保留在PC上,并可以被该程序包的新版本访问。当然,如果用户卸载了某个程序包,这个程序包就会对该用户注销。这会引起该用户的各程序包数据和注册表中的设置完全被销毁,以确保该程序包不会对该用户留下内存占用。

如果你在部署、注册或者安装过程中遇到了问题,可以检查以下Windows事件日志位置:

应用程序和服务日志> Microsoft > Windows > AppXDeployment

应用程序和服务日志> Microsoft > Windows > AppXDeployment-Server

应用程序和服务日志> Microsoft > Windows > AppXPackagingOM

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

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