【问题标题】:How to remotely deploy UWP to W10 IOT device (like VS17 does)如何将 UWP 远程部署到 W10 IOT 设备(就像 VS17 一样)
【发布时间】:2018-12-02 15:23:24
【问题描述】:

我正在尝试设置 CI/CD 管道,其中我的 UWP 应用程序代码位于 VSTS 中,我需要将其部署到具有 W10 IOT (17134) 的 Raspberry PI。我已经在我的开发 PC 上设置了一个构建/发布代理,以便该代理可以通过网络与 Pi 通信。

我尝试使用 Copy Files 任务(成功),然后运行 ​​Powershell 脚本来安装包。一切正常,但它安装在管理员帐户下,而在 Win10 IOT 中,如果您希望它能够运行,则需要为 DefaultAccount 帐户安装它。

现在我很茫然;我只是不知道如何将我的应用程序远程部署到我的设备上,以便它由 DefaultAccount 运行和拥有。但是,我知道我可以从 Visual Studio 部署它(但我不希望这样,我希望它自动从 VSTS 构建/部署代理部署)。我不知道 VS2017 是如何部署它的(without credentials, I may add!)。我也可以通过设备门户上传包,它安装得很好,但那将是手动的。我试图回溯从设备门户发出的请求并偶然发现Device Portal Core API,但我不知道如何仅使用来自 VSTS 的包进行 POST 调用。我尝试使用将在部署代理(与 Pi 相同的网络,并且可以从 VS2017 部署的同一台机器)上运行的发布后 Powershell 脚本,但我无法创建成功提交多部分的 Invoke-Method形式。我只能找到返回文件已损坏错误的黑客(如herehere)(充其量,它通常甚至没有收到文件)。

所以,问题是;我可以模仿 VS2017 的功能来远程部署 UWP 应用吗?我该怎么做呢?

【问题讨论】:

  • 关于如何访问 DefaultAccount 我会联系相关工程师并尽快更新。以管理员账户安装应用时,您有遇到什么问题吗?
  • 嗨丽塔,谢谢!我刚刚发现了如何实现我的目标,我现在会发布答案:)

标签: visual-studio powershell uwp azure-devops windows-10-iot-core


【解决方案1】:

所以,我想通了!如果你想将 UWP 部署到 Pi,你需要有你的私有构建/部署代理,但你不应该将文件复制到设备然后通过 PowerShell 安装。

我发现了 WinAppDeployCmd 工具,因此在我的发布定义中,我现在运行以下 PowerShell:

$location =  "$(System.DefaultWorkingDirectory)\*\*\*\"

cd $location

$filename = dir *.appxbundle
$file = [string]$filename[0].Name

& 'C:\Program Files (x86)\Windows Kits\10\bin\10.0.17134.0\x86\WinAppDeployCmd.exe' @('install','-file',$file, '-ip', '192.168.0.xxx')

我在 PowerShell 中远非英雄,所以我知道它并不漂亮,但它很有效:)

【讨论】:

    猜你喜欢
    • 2018-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-10
    相关资源
    最近更新 更多