本地共享应用程序包(Windows 应用商店应用程序)
开发 Windows 应用商店应用程序后,可能要在一台或多台本地计算机上安装它,以使您或其他人可测试它。必须先创建应用程序包并运行 Windows PowerShell 脚本,然后才能在其他计算机上安装 Windows 应用商店应用程序。
创建应用程序包
在安装应用程序之前,必须先创建应用程序包。有关如何创建包的信息,请参见Creating an app package。
您创建的应用程序包位于为程序包位置指定的输出文件夹中,且名为“PackageName_Test”。该文件夹包含一个 .appx 文件、一个安全证书、一个 Windows PowerShell 脚本和其他文件。
安装用于测试的应用程序包
在 Visual Studio 输出目录中,在您的 .appx 文件旁边找到 AppDevPackage PowerShell 脚本。
在 Add-AppDevPackage.ps1 文件的快捷菜单上,选择**“使用 PowerShell 运行”**。
重要
如果您是本地计算机上的“Administrators”安全组的成员,但您无权访问 AppDevPackage.ps1 文件所在的网络共享,则可能会出现指示脚本文件不存在的错误消息。若要解决访问问题,请在运行该脚本之前,将输出文件夹的内容复制到您的本地计算机上。
该脚本将执行以下步骤:
显示有关脚本将安装的证书的信息。该脚本还显示有关更改您的本地计算机上的执行策略所带来的风险的警告消息。执行策略有助于阻止您不信任的脚本。如果您更改执行策略,则您可能会面临 about_Execution_Policies 描述的安全风险。
备注
如果您直接从 PowerShell 启动脚本而不是使用快捷菜单启动脚本,则不会显示任何有关更改执行所带来的风险的警告,并且脚本将失败。若要解决此问题,请手动更改执行策略,然后重新运行该脚本。
您必须通过输入 Y 确认您需要更改执行策略。如果您输入 N,则将跳过此操作并继续下一个操作。如果您输入 S,则将暂停当前管道并返回到命令提示。如果您输入单词 exit,则管道将恢复。
验证你是否具有开发人员许可证。如果该脚本未找到许可证或您的当前许可证已过期,则系统会提示您获取一个许可证。
若要获取开发人员许可证,你必须具有 Microsoft 帐户。有关详细信息,请参见获取开发人员许可证(Windows 应用商店应用程序)。
验证应用程序包和任何所需的证书是否存在。如果缺少这些项目,则在安装此开发人员包之前,会显示一条消息,要求您安装它们。例如,如果本地计算机上缺少开发人员证书,则将提示您安装它。此外还会警告您,将数字证书安装到您计算机的受信任人证书存储中会带来严重安全风险,并且您应仅在信任此数字证书的发信方时这样做。使用此应用程序完成操作后,应从计算机的“受信任人”证书存储区中手动删除关联的数字证书。有关如何删除证书的信息,请参见如何使用证书控制台。必须确认是否继续。
签名证书必须包含以下值:
增强型密钥用法:代码签名(必需)
基本约束:Subject Type=End Entity(必需)
生存时间签名 EKU(可选)
任何其他 EKU 将使证书无效。如果脚本找不到所需的值,则将出现错误。
验证是否存在任何所需的依赖项包。
安装所有依赖项包,然后安装应用程序包。
在安装应用程序包后,将显示“您的开发人员包已成功安装”。
在“开始”屏幕上,选择显示应用程序名称的磁贴。
应用程序将启动。
安全说明 |
---|
如果 PowerShell 脚本未运行,并且没有错误消息指示原因,则可能已更改了计算机上的用户访问控制 (UAC)。默认 UAC 设置为“仅当应用尝试更改我的计算机时通知我(默认)”,但可将其更改为“从不通知”。如果使用标准用户帐户登录其 UAC 设置为“从不通知”的计算机,则自动拒绝需要管理员权限的任何更改。在这些情况下,PowerShell 脚本可启动,但需要管理权限才能继续运行。不显示 UAC 对话框,并且 Windows 自动阻止脚本作出更改。要解决此问题,请以管理员身份更改 UAC 设置或运行脚本。 |
运行 Add-AppDevPackage.ps1 PowerShell 脚本时,Visual Studio 使用 Get-AuthenticodeSignature 函数确定其是否应安装 TEST Visual Studio Certification Authority 测试签名证书。如果节点**“证书 – 当前用户”>“受信任的根证书颁发机构”>“证书”中已安装测试签名证书,则函数返回一个值,指示签名有效。但是,部署软件包仍将失败,因为 Windows 不信任该证书。要使 Windows 信任该证书,该证书必须位于“证书(本地计算机)”>“受信任的根证书颁发机构”>“证书”节点或“证书(本地计算机)”>“受信任人”>“证书”节点中。只有这两个位置的证书可在本地计算机的上下文中验证是否信任该证书。否则,显示一条错误消息,其内容类似于以下字符串:“Add-AppxPackage : Deployment failed with HRESULT: 0x800B0109, A certificate chain processed, but terminated in a rootcertificate which is not trusted by the trust provider.(Exception from HRESULT: 0x800B0109)error 0x800B0109: The root certificate of the signature in the app package must be trusted.”。如果显示此错误,则将测试签名证书移至刚刚介绍的两个“证书(本地计算机)”**节点中的任意一个。有关如何移动证书的信息,请参见如何使用证书控制台。