Metro App生命周期之打包、部署安装与卸载[转]
记得之前刚试用Win 8开发者预览版那会,VS12编译完Metro App工程后,想直接双击exe运行,却弹出个警告框,提示该程序只能结合App容器启动运行。那如何去部署和启动Metro App呢?后来随着对Win 8的了解有了答案。
当我们在VS2012中编译我们的代码并F5执行后,你会发现Metro桌面已经生成了该程序的快捷方式了,VS帮我们一条龙做了程序的编译,安装和部署,之后你也可以在Metro桌面启动该程序。其实这只是VS做的一些有便于开发的额外工作,跟真正Metro程序的安装部署还是有区别的。首先,VS并没有打包Metro程序(何谓打包,后面会说明),其次它并没有把程序安装到系统环境中,你运行的只是你VS工程中编译后的可执行文件。
那实际Metro程序又是怎么执行安装部署等操作的呢?
首先,Metro程序不需要像桌面程序那样制作安装程序(如.msi等),类似Android和ios,MS也推出了windows app store,也就是说开发者需要把应用上传到App Store,经过审核通过,用户则从App Store下载需要的应用程序包来直接安装。这里首先涉及到一个打包的概念,怎么打包Metro程序呢?
上图所示,VS菜单【项目】-【应用商店】-【创建应用程序包】中提供了一种打包程序的功能,其向导中会需要选择是希望创建上传至App Store的程序包还是本地使用的程序包,上传至应用商店的话需要注册一个Windows账户,一步一步跟着做就是了,由于平时更多的还是先部署在本地进行试用或测试,所以以下会着重介绍本地部署的一些操作。通过VS的这个功能打包本地使用的Metro程序后会输出一个应用程序包(路径在打包中会有设置),看一个CSharp程序打包后的文件一览:
然后就可以开始在本地安装这个应用了,如上程序包中有个.ps1的文件,右击该文件,选择Run with PowerShell:
中间可能会需要属于管理员权限用户的密码,根据提示一路Yes后,安装成功:
这时在Metro桌面能找到你安装的应用。注意,如果你VS下运行过该程序的话,VS会帮你部署工程中的程序到系统中,你需要先把它卸载,才能如上所示安装成功,否则会出错,并提示你该应用已安装。
那该应用被安装到哪里去了呢?一般都在以下路径:
C:\Program Files\WindowsApps
注意,默认情况下WindowsApps是个隐藏文件,而且没有权限打开,需要查看的话先要设置显示隐藏文件和文件夹,然后双击后根据提示修改文件夹所有人为当前用户后,就可以正常访问了,我的WindowsApps文件夹内容如下,都是一个个安装后的Metro应用:
任意打开一个,其中有如下文件,可以看到该应用的可执行文件,配置文件等都在其中:
最后再简单说说如何卸载已安装的Metro程序,右击Metro桌面中你希望卸载的程序,屏幕下方会弹出一个菜单,点击Uninstall就可以卸载程序了,此时你会发现上面WindowsApp文件夹中相关的这个程序就被删除掉了。但是有一点需要注意,如果当前设备中有多个用户安装了此应用,那只有在所有用户都卸载该应用后才会真正从WindowsApp文件夹中删除。