PowerShell将Windows store应用程序安装为开发者模式
2017-10-18 19:51
211 查看
原文: PowerShell将Windows store应用程序安装为开发者模式
在本地部署Windows 商店应用程序时,我们会遇到Add-AppDevPackage.ps1脚本,这个脚本和所在安装包都是visual studio 生成的。应用程序安装完毕后为:非开发者模式。我们可以用PowerShell简单验证下:
但是我们在visual studio 中直接通过F5调试应用程序时,App会被安装在debug目录下面的某个appx目录,并且安装方式为开发者模式。
那如何指定开发者模式和非开发者模式呢?关键在于Add-AppxPackage的参数使用。比如下面这个方式会安装为非法者模式,Add-AppDevPackage.ps1使用的就是这种方式。
另一种安装为开发者模式的方式为:
而且使用注册的方式,文件夹的结构必须类似:
appx目录结构
那如果别人给了我们一个visual studio 生成的标准的安装包呢,形如:
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步:
在脚本所在的目录下查找appxbundle文件
解压 appx 文件,将包内容复制到APPData目录下
调用Add-AppxPackage将app安装包安装在开发者模式下
当然交付给最终用户部署时,我们还得考虑用户是否是以管理员权限运行,用户的机器上有没有有效的微软开发者许可证,如果没有引导它获取一个。整个一个流程自动化下来,也得百来十行code。我分享一个自己针对某特定app安装包写的定制版安装脚本:Install-AppPackage.ps1
在本地部署Windows 商店应用程序时,我们会遇到Add-AppDevPackage.ps1脚本,这个脚本和所在安装包都是visual studio 生成的。应用程序安装完毕后为:非开发者模式。我们可以用PowerShell简单验证下:
PS C:\WINDOWS\system32> Get-AppxPackage -Name 88697998-99a4-4d0d-af2d-e3465acd3c20 Name : 88697998-99a4-4d0d-af2d-e3465acd3c20 Publisher : CN=lay Architecture : X86 ResourceId : Version : 1.0.5.0 PackageFullName : 88697998-99a4-4d0d-af2d-e3465acd3c20_1.0.5.0_x86__r60hmjdgart72 InstallLocation : C:\Program Files\WindowsApps\88697998-99a4-4d0d-af2d-e3465acd3c20_1.0.5.0_x86__r60hmjdgart72 IsFramework : False PackageFamilyName : 88697998-99a4-4d0d-af2d-e3465acd3c20_r60hmjdgart72 PublisherId : r60hmjdgart72 IsResourcePackage : False IsBundle : False IsDevelopmentMode : False Dependencies : {Microsoft.NET.CoreRuntime.1.1_1.1.25305.1_x86__8wekyb3d8bbwe, Microsoft.VCLibs.140.00.Debug_14.0.2 5547.0_x86__8wekyb3d8bbwe} IsPartiallyStaged : False
但是我们在visual studio 中直接通过F5调试应用程序时,App会被安装在debug目录下面的某个appx目录,并且安装方式为开发者模式。
PS C:\WINDOWS\system32> Get-AppxPackage -Name 88697998-99a4-4d0d-af2d-e3465acd3c20 Name : 88697998-99a4-4d0d-af2d-e3465acd3c20 Publisher : CN=lay Architecture : X86 ResourceId : Version : 1.0.5.0 PackageFullName : 88697998-99a4-4d0d-af2d-e3465acd3c20_1.0.5.0_x86__r60hmjdgart72 InstallLocation : C:\Users\lay\source\repos\App2\App2\bin\x86\Debug\AppX IsFramework : False PackageFamilyName : 88697998-99a4-4d0d-af2d-e3465acd3c20_r60hmjdgart72 PublisherId : r60hmjdgart72 IsResourcePackage : False IsBundle : False IsDevelopmentMode : True Dependencies : {Microsoft.NET.CoreRuntime.1.1_1.1.25305.1_x86__8wekyb3d8bbwe, Microsoft.VCLibs.140.00.Debug_14.0.2 5547.0_x86__8wekyb3d8bbwe} IsPartiallyStaged : False
那如何指定开发者模式和非开发者模式呢?关键在于Add-AppxPackage的参数使用。比如下面这个方式会安装为非法者模式,Add-AppDevPackage.ps1使用的就是这种方式。
Add-AppxPackage -Path $DeveloperPackagePath.FullName -ForceApplicationShutdown
另一种安装为开发者模式的方式为:
$manifestFile = "$packagePath\AppxManifest.xml" Add-AppxPackage -Register $manifestFile -ForceApplicationShutdown
而且使用注册的方式,文件夹的结构必须类似:
appx目录结构
那如果别人给了我们一个visual studio 生成的标准的安装包呢,形如:
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步:
在脚本所在的目录下查找appxbundle文件
解压 appx 文件,将包内容复制到APPData目录下
调用Add-AppxPackage将app安装包安装在开发者模式下
当然交付给最终用户部署时,我们还得考虑用户是否是以管理员权限运行,用户的机器上有没有有效的微软开发者许可证,如果没有引导它获取一个。整个一个流程自动化下来,也得百来十行code。我分享一个自己针对某特定app安装包写的定制版安装脚本:Install-AppPackage.ps1
相关文章推荐
- apple个人开发者证书无线发布app的实现 (不通过App Store,在iOS设备上直接安装应用程序)
- 关闭Chrome安装第三方插件之后反复提示“请停用以开发者模式运行的扩展程序”
- 2008R2core模式下安装PowerShell[为企业部署Windows Server 2008系列十一]
- Chrome浏览器安装开发者模式的扩展程序方法
- SM-G9008V Root,google框架安装 设置开发者模式
- PowerShell远程安装应用程序
- 安装Windows 7的XP模式
- MSN9.0 2009安装时应用程序配置不正确的解决方法
- 装饰模式在Intermec CK1应用程序中通讯模块的应用
- Spring boot 为Java开发者准备的安装指南
- 安装IIS之后运行aspx 显示“服务器应用程序不可用” 解决办法
- CA安装模式及一般使用场景
- 关于vmware fusion安装centos后桥接模式无法上网
- Linux命令行模式安装VMware Tools 详解
- 无法激活服务,因为它不支持 ASP.NET 兼容性。已为此应用程序启用了 ASP.NET 兼容性。请在 web.config 中关闭 ASP.NET 兼容性模式或将 AspNetCompatibili
- 论应用程序商店:软件销售模式的变革
- Android应用程序安装过程源代码分析(4)
- 问题:“ios 模拟器” 未能安装此应用程序
- 第二篇 :微信公众平台开发实战Java版之开启开发者模式,接入微信公众平台开发
- android2.2应用程序未安装问题解决方案