windows 商店应用程序安装包

PowerShell将Windows store应用程序安装为开发者模式


在本地部署Windows 商店应用程序时,我们会遇到Add-AppDevPackage.ps1脚本,这个脚本和所在安装包都是visual studio 生成的。应用程序安装完毕后为:非开发者模式。我们可以用PowerShell简单验证下:

PS> Get-AppxPackage -Name Microsoft.BingFinance
...
Name : Microsoft.BingFinance
IsDevelopmentMode : False
...

但是我们在visual studio 中直接通过F5调试应用程序时,App会被安装在debug目录下面的某个appx目录,并且安装方式为开发者模式

PS> Get-AppxPackage -Name e8c4dded-e6ac-41b8-a814-fa5cf6b47106
...

Name : e8c4dded-e6ac-41b8-a814-fa5cf6b47106
InstallLocation : C:\Users\非苔\Downloads\App1\App1\App1.Windows\bin\Debug\AppX
IsDevelopmentMode : True

 

那如何指定开发者模式和非开发者模式呢?关键在于Add-AppxPackage的参数使用。比如下面这个方式会安装为非法者模式,Add-AppDevPackage.ps1使用的就是这种方式。

Add-AppxPackage -Path $DeveloperPackagePath.FullName -ForceApplicationShutdown

另一种安装为开发者模式的方式为:

$manifestFile = "$packagePath\AppxManifest.xml"
Add-AppxPackage -Register $manifestFile -ForceApplicationShutdown

而且使用注册的方式,文件夹的结构必须类似:

appx目录结构

appx目录结构

那如果别人给了我们一个visual studio 生成的标准的安装包呢,形如:

windows 商店应用程序安装包

windows 商店应用程序安装包

我们想把这个包安装在开发者模式下, 应当怎么做呢?

Add-AppDevPackage.ps1肯定不行的。如果我们有一个appx目录就可以使用-register参数来调用Add-AppxPackage了。能把标准的安装包转换成appx目录吗?

HubApp.Windows_1.0.0.2_AnyCPU_Debug.appx文件其实就是一个zip包,我们只需将它重命名为zip后缀名,里面即为appx目录。而且有的安装包可能包含了一个后缀名为appxbundle的文件,它也是一个zip包,里面也会包含一个appx包。

如果使用PowerShell将这种Windows store应用程序的标准安装包安装在开发者模式下,只需3步:

  1. 在脚本所在的目录下查找appxbundle文件
  2. 解压 appx 文件,将包内容复制到APPData目录下
  3. 调用Add-AppxPackage将app安装包安装在开发者模式下

当然交付给最终用户部署时,我们还得考虑用户是否是以管理员权限运行,用户的机器上有没有有效的微软开发者许可证,如果没有引导它获取一个。整个一个流程自动化下来,也得百来十行code。我分享一个自己针对某特定app安装包写的定制版安装脚本:Install-AppPackage.ps1

本文链接: https://www.pstips.net/install-appx-package-under-development-mode.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

关于 Mooser Lee

我是一个Powershell的爱好者,创建了PowerShell中文博客,热衷于Powershell技术的搜集和分享。本站部分内容来源于互联网,不足之处敬请谅解,并欢迎您批评指正。

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注