如何远程部署 UWP 到 W10 IOT 设备(就像 VS17 一样)
How to remotely deploy UWP to W10 IOT device (like VS17 does)
我正在尝试设置 CI/CD 管道,其中我的 UWP 应用程序代码位于 VSTS 中,我需要将其部署到 Raspberry PI 和 W10 IOT (17134)。我已经在我的开发 PC 上设置了一个 build/release 代理,以便代理可以通过网络与 Pi 通信。
我尝试使用复制文件任务(成功),然后 运行 Powershell 脚本来安装包。一切正常,但它安装在管理员帐户下,在 Win10 IOT 中,如果您希望它能够 运行.
,则需要为 DefaultAccount 帐户安装它
现在我很茫然;我只是不知道如何将我的应用程序远程部署到我的设备,以便它 运行 并归 DefaultAccount 所有。但是,我知道我可以从 Visual Studio 部署它(但我不希望这样,我希望它自动从 VSTS build/deploy 代理部署)。我无法弄清楚 VS2017 如何部署它 (without credentials, I may add!). I can also upload the package via the Device Portal and it installs just fine, but that would be manual. I tried to backtrace what requests was being made from the device portal and stumbled upon the Device Portal Core API, but I have no idea how to make a POST call with just the package from VSTS. I tried to use a post-release Powershell script that would run on the deployment agent (same network as the Pi, and from the same machine a can deploy from VS2017) but I am unable to create a Invoke-Method that successfully submits a multipart form. I can only find hacks (like here and ) 返回文件已损坏的错误(充其量,它通常甚至没有收到文件)。
所以,问题是;我可以模仿 VS2017 的功能来远程部署 UWP 应用程序吗?我该怎么做呢?
所以,我想通了!如果你想将 UWP 部署到 Pi,你需要有你的私人 build/deploy 代理,但你不应该将文件复制到设备然后通过 PowerShell 安装它。
我发现了 WinAppDeployCmd 工具,所以在我的发布定义中,我现在 运行 以下 PowerShell:
$location = "$(System.DefaultWorkingDirectory)\*\*\*\"
cd $location
$filename = dir *.appxbundle
$file = [string]$filename[0].Name
& 'C:\Program Files (x86)\Windows Kits\bin.0.17134.0\x86\WinAppDeployCmd.exe' @('install','-file',$file, '-ip', '192.168.0.xxx')
我在 PowerShell 中远非英勇,所以我知道它并不漂亮,但它确实有效:)
我正在尝试设置 CI/CD 管道,其中我的 UWP 应用程序代码位于 VSTS 中,我需要将其部署到 Raspberry PI 和 W10 IOT (17134)。我已经在我的开发 PC 上设置了一个 build/release 代理,以便代理可以通过网络与 Pi 通信。
我尝试使用复制文件任务(成功),然后 运行 Powershell 脚本来安装包。一切正常,但它安装在管理员帐户下,在 Win10 IOT 中,如果您希望它能够 运行.
,则需要为 DefaultAccount 帐户安装它现在我很茫然;我只是不知道如何将我的应用程序远程部署到我的设备,以便它 运行 并归 DefaultAccount 所有。但是,我知道我可以从 Visual Studio 部署它(但我不希望这样,我希望它自动从 VSTS build/deploy 代理部署)。我无法弄清楚 VS2017 如何部署它 (without credentials, I may add!). I can also upload the package via the Device Portal and it installs just fine, but that would be manual. I tried to backtrace what requests was being made from the device portal and stumbled upon the Device Portal Core API, but I have no idea how to make a POST call with just the package from VSTS. I tried to use a post-release Powershell script that would run on the deployment agent (same network as the Pi, and from the same machine a can deploy from VS2017) but I am unable to create a Invoke-Method that successfully submits a multipart form. I can only find hacks (like here and
所以,问题是;我可以模仿 VS2017 的功能来远程部署 UWP 应用程序吗?我该怎么做呢?
所以,我想通了!如果你想将 UWP 部署到 Pi,你需要有你的私人 build/deploy 代理,但你不应该将文件复制到设备然后通过 PowerShell 安装它。
我发现了 WinAppDeployCmd 工具,所以在我的发布定义中,我现在 运行 以下 PowerShell:
$location = "$(System.DefaultWorkingDirectory)\*\*\*\"
cd $location
$filename = dir *.appxbundle
$file = [string]$filename[0].Name
& 'C:\Program Files (x86)\Windows Kits\bin.0.17134.0\x86\WinAppDeployCmd.exe' @('install','-file',$file, '-ip', '192.168.0.xxx')
我在 PowerShell 中远非英勇,所以我知道它并不漂亮,但它确实有效:)