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

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

PS C:\WINDOWS\system32> Get-AppxPackage -Name -99a4-4d0d-af2d-e3465acd3c20

Name : -99a4-4d0d-af2d-e3465acd3c20
Publisher : CN=lay
Architecture : X86
ResourceId :
Version : 1.0.5.0
PackageFullName : -99a4-4d0d-af2d-e3465acd3c20_1.0.5.0_x86__r60hmjdgart72
InstallLocation : C:\Program Files\WindowsApps\-99a4-4d0d-af2d-e3465acd3c20_1.0.5.0_x86__r60hmjdgart72
IsFramework : False
PackageFamilyName : -99a4-4d0d-af2d-e3465acd3c20_r60hmjdgart72
PublisherId : r60hmjdgart72
IsResourcePackage : False
IsBundle : False
IsDevelopmentMode : False
Dependencies : {Microsoft.NET.CoreRuntime..1_1.1.25305.1_x86__8wekyb3d8bbwe, Microsoft.VCLibs.140.00.Debug_14.0.2
.0_x86__8wekyb3d8bbwe}
IsPartiallyStaged : False

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

PS C:\WINDOWS\system32> Get-AppxPackage -Name -99a4-4d0d-af2d-e3465acd3c20

Name : -99a4-4d0d-af2d-e3465acd3c20
Publisher : CN=lay
Architecture : X86
ResourceId :
Version : 1.0.5.0
PackageFullName : -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 : -99a4-4d0d-af2d-e3465acd3c20_r60hmjdgart72
PublisherId : r60hmjdgart72
IsResourcePackage : False
IsBundle : False
IsDevelopmentMode : True
Dependencies : {Microsoft.NET.CoreRuntime..1_1.1.25305.1_x86__8wekyb3d8bbwe, Microsoft.VCLibs.140.00.Debug_14.0.2
.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步:

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

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

PowerShell将Windows store应用程序安装为开发者模式的更多相关文章

  1. Unity3D开发Windows Store应用程序 注意事项

    原地址:http://blog.csdn.net/jbjwpzyl3611421/article/details/12704491 针对最近在移植window store项目中遇到的问题,我整理了官方 ...

  2. Windows Store可以下载安装Windows Terminal (Preview)

    Windows Terminal (Preview)已经可以在Windows Store下载安装. Windows Terminal (Preview)运行要求为: Windows 10 版本 183 ...

  3. 安装、部署... Windows服务 .net程序 安装 命令

    @echo offInstallutil.exe 程序目录 F:\test\TestWindows.exe 服务程序目录@sc start "服务名称"@sc config &qu ...

  4. Windows桌面.exe程序安装、卸载、升级测试用例

    一.安装 1) 系统:XP.win 7.win 8.win 10 2)安全类型软件:360杀毒.360安全卫士.金山毒霸.百度杀毒.腾讯电脑管家等. 3)同类型软件兼容 4)用户名称:中文用户.英文用 ...

  5. Unity干中学——如何实现类似Windows Store 应用程序和Android Toast的通知?

    要实现通知中心功能,首先要创建一个游戏物体,在上面挂载GUITeture和GUIText脚本.注意GUITexture和GUIText脚本的顺序,GUITexture在前,GUIText在后,否则GU ...

  6. Windows下的Hadoop安装(本地模式)

    时隔许久的博客.. 系统为Windows 10,Hadoop版本2.8.3. 虽然之前已经在Linux虚拟机上成功运行了Hadoop,但我还是在Windows上编码更加习惯,所以尝试了在Window上 ...

  7. 适用于Windows桌面应用程序的.NET Core 3

    介绍 9月,微软发布了新版.NET Core,用于构建Windows桌面应用程序,包括WPF和Windows Forms.从那时起开发人员可以将传统的nfx桌面应用程序(和控件库)迁移到.NET Co ...

  8. Windows Store App 应用程序安装目录

    前面介绍了如何对本地应用存储空间中的文件以及文件夹进行操作,在应用中除了可以对本地应用存储空间进行操作之外,还可以对应用程序安装目录进行相关操作.本节将通过一个示例,详细讲解如何对应用程序安装目录中的 ...

  9. Scoop - 在Windows命令行上进行程序安装

    2019-01-28  22:49:21 资料来源自Scoop官方网站以及github上的帮助文档 如果有疑惑或者觉得文章有错误请留言以帮助改正 补充内容(2019-04-09 21:11:36):不 ...

随机推荐

  1. Matlab Tricks(二十五)—— plot 属性

    marker: 边缘:'MarkerEdgeColor', [],(RGB 配色) 填充:'MarkerFaceColor', [](RGB 配色)

  2. 新技能 get —— 使用 python 生成词云

    什么是词云(word cloud)呢?词云又叫文字云,是对文本数据中出现频率较高的"关键词"在视觉上的突出呈现,形成关键词的渲染形成类似云一样的彩色图片,从而一眼就可以领略文本数据 ...

  3. [Erlang 0057] Erlang 排错利器: Erlang Crash Dump Viewer

    http://www.cnblogs.com/me-sa/archive/2012/04/28/2475556.html Erlang Crash Dump Viewer真的是排错的天兵神器,还记得我 ...

  4. 【NOIP2012提高组】国王游戏 贪心 + 高精度

    题目分析 题目答案不具有单调性,所以不可以二分,转而思考贪心.因为无法确定位置,所以考虑如何才能让对于每一个$1 ~ i$使得$i$的答案最大,即$1 ~ i$最后一个最优.若设对于位置$i$,$a[ ...

  5. cocos2d-x 3.0学习游戏笔记的例子《卡塔防》第五步---开始建立游戏界面

    /* 说明: **1.本次游戏实例是<cocos2d-x游戏开发之旅>上的最后一个游戏,这里用3.0重写并做下笔记 **2.我也问过木头本人啦,他说:随便写.第一别全然照搬代码.第二能够说 ...

  6. 正割函数(sec)

    1. 定义 正割与余弦互为倒数,余割与正弦互为倒数.即: ⎧⎩⎨⎪⎪⎪⎪secθ=1cosθcscθ=1sinθ 也即在几何上,设 △ABC,∠C=90°,AC=b,BC=a,AB=c, 正割函数:s ...

  7. 继承之重写prototype

    function Ff(){} //undefined Ff.prototype={a:"ss"} //Object {a: "ss"} var f1= new ...

  8. Parallel file system processing

    A treewalk for splitting a file directory is disclosed for parallel execution of work items over a f ...

  9. Solid-state storage management

    Solid-state storage management for a system, the management including establishing, externally to a ...

  10. Delphi 获取外部程序句柄与发送消息

    --记录下来备以后用 [打开外部程序.消息.句柄],技术有限,希望不要误人子弟了. 源码unit Unit1; interface uses Windows, Messages, SysUtils, ...