表2.4显示了Visual Studio的“创建应用程序包”向导生成的文件。你可以将这些文件复制到另一台PC并通过运行Add-AppxDevPackage.ps1PowerShell脚本来安装这个程序包。该脚本执行以下操作:
1.提示用户通过运行Show-WindowsDeveloperLicenseRegistrationPowerShell脚本来获取开发人员许可证(如果还没有安装)。
2.通过运行CertUtil.exe实用工具,将程序包的证书(.cer文件)安装到PC的“受信任人”存储中。
3.通过运行Add-AppxPackage PowerShell脚本,将程序包的内容(及其所有依赖框架程序包)解压缩至用户PC上的一个目录中。
开发人员许可证是免费的,但是为了获取一个许可证,计算机必须具有网络连接,同时用户必须拥有Microsoft账户。另外,开发人员许可证会过期(大约每30天到90天),因此其必须被定期续订,以便已安装的程序包持续工作。获取开发人员许可证的提示显式地提及了你只能将该许可证用于应用的开发、测试和评估。当开发人员许可证过期时,要求该许可证的程序包将无法运行。在开始屏幕上,一个小十字会被显示在应用程序磁贴的右下角。
在第二个步骤中,程序包的证书被安装在PC的“受信任人”存储中。PowerShell会提示你,这蕴含着严重的安全风险,因为此后系统会信任使用该证书签名的所有程序包。当该证书过期时,Windows也会阻止程序包在用户的PC上运行。
在最后一个步骤中,系统将.appx文件的内容解压至%ProgramFiles%\WindowsApps下的一个目录中。该目录的名称与程序包的全名匹配,而全名中包含程序包的版本号。这意味着,同一个程序包的不同版本可以被并列安装在同一台PC上。如果这台PC上的某个用户希望运行版本1.2.3.4而另一个用户仍然使用版本1.0.0.0,这将是十分有用的。
WindowsApps目录是一个隐藏目录,其安全设置会阻止你对其进行浏览。然而,安全设置却允许你查看WindowsApps的子目录的内容。例如,你可以导航至%ProgramFiles%\WindowsApps\Microsoft.Bing_1.2.0.137_x64__8wekyb3d8bbwe并查看该程序包中解压缩后的内容。另外,Wintellect的程序包浏览器桌面应用(将在以后讨论)能够枚举当前用户安装的所有程序包。
至此,程序包已被安装并被集成到操作系统。用户可以进入开始屏幕或者应用程序视图屏幕,并启动程序包中的应用程序,直到开发人员许可证或者程序包的证书过期。