yotiky Tech Blog

とあるエンジニアの備忘録

HoloLens へアプリを配置する際に「DEP0600」のエラーが出て失敗する場合の対処法

問題

Visual Studio から HoloLens へアプリを配置しようとした際に、下記のエラーが出て失敗してしまう。

DEP0600: 配置が失敗しました。新しい配置パイプラインを通して配置できませんでした。

f:id:yotiky:20200622082847p:plain

詳細なエラーは次のようにDeployFilesAsyncsでタイムアウトが起きるようです。

29.3% コピー中: C:\Data\Users\DefaultAccount\AppData\Local\DevelopmentFiles\Sample.CalibrationVS.Release_ARM64.hoge\Data\globalgamemanagers
29.5% コピー中: C:\Data\Users\DefaultAccount\AppData\Local\DevelopmentFiles\Sample.CalibrationVS.Release_ARM64.hoge\Data\globalgamemanagers.assets
29.5% コピー中: C:\Data\Users\DefaultAccount\AppData\Local\DevelopmentFiles\Sample.CalibrationVS.Release_ARM64.hoge\Data\Resources
RemoteDeployClient-DeployFilesAsync: END (Failure, 0:01:25.363)
TimeoutException: タイムアウト期間が経過したため、この操作は終了しました。 (HRESULT からの例外:0x800705B4)
   場所 Microsoft.Tools.Connectivity.RemoteDevice.ExceptionHandler(COMException ex, String message)
   場所 Microsoft.Tools.Connectivity.RemoteFile.Put(String localFileName, Boolean overwrite)
   場所 Microsoft.Tools.Deploy.SshFileDeployOp.SshFileDeployOpWorker.DoPutFile(PutFileParams fileParams, SshFileDeployOp fdo)
   場所 Microsoft.Tools.Deploy.SshFileDeployOp.SshFileDeployOpWorker.UnsafeFileOperation(SshFileDeployOp fileDeployOperation)
   場所 Microsoft.Tools.Deploy.SshFileDeployOp.SshFileDeployOpWorker.Run(Object threadContext)
   場所 Microsoft.Tools.Deploy.SshFileDeployOp.<>c__DisplayClass10_0.<Initialize>b__0()
   場所 Microsoft.Tools.Deploy.RemoteDeployClientHelper.<>c__DisplayClass6_0.<ProvisionAsyncTaskWithErrorHandling>b__0()
   場所 System.Threading.Tasks.Task.InnerInvoke()
   場所 System.Threading.Tasks.Task.Execute()
--- 直前に例外がスローされた場所からのスタック トレースの終わり ---
   場所 Microsoft.Tools.Deploy.RemoteDeployClientHelper.<>c__DisplayClass6_0.<ProvisionAsyncTaskWithErrorHandling>b__1(Task parent)
   場所 System.Threading.Tasks.ContinuationTaskFromTask.InnerInvoke()
   場所 System.Threading.Tasks.Task.Execute()
(省略)

確認した環境

  • Unity
    • 2019.2.7f.2
    • 2019.3.15f1
    • 2019.4.2f1
  • Visual Studio 2019
    • 16.6.2
    • 16.6.3
  • HoloLens 2
  • USBケーブル
    • 純正
    • Anker製

原因

現時点では、原因も根本的な解決方法もわかっていません。 アプリケーションのサイズが増えると起きるという書き込みもあります。

確かにアセット追加して機能増やしたあたりで全くデプロイできなくなったケースもあります。 逆にAzure Remote Renderingのチュートリアルをそのままデプロイしようとして全くデプロイできないケースがあり、HoloLens2を初期化してOSのバージョンを下げたらデプロイできたケースもあります。 サイズに関しても80MBくらいはデプロイできたりするので、環境のバージョンの組み合わせで多少現象に差がありそうにも思えています。

対処法

対処法1

  1. HoloLens のUSBを抜いて指し直す、または再起動する

状況によってはこれで解決するケースがあります。 1回タイムアウトが発生するとDevice Portal 含めUSBでの接続がおかしくなるようです。抜き差しすることで復活します。

対処法2

  1. 配置のターゲットをデバイス(USB経由)からリモートコンピューター(ネットワーク経由)に変更する

プロジェクトのプロパティにデバッグの設定でコンピュータ名を指定できるので、ここでHoloLensのIPアドレスを入力してあげればOKです。

f:id:yotiky:20200716000843p:plain

より詳細な手順は以下のページを参照してください。

docs.microsoft.com

対処法3

  1. Visual Studio でアプリケーションのパッケージを作成する
  2. Device Portal からインストールする

Visual Studio から100%失敗するアプリケーションでもこの方法は大丈夫です。 MRTK の Build Window からもパッケージを作成できますが、いつからか内容が更新されず古い状態のアプリケーションがパッケージされる現象が起きており、現状おすすめはできないです。

パッケージの出力先が Build Window を使った場合と同じ(Builds\WSAPlayer\AppPackages)であれば、 Build Window にパッケージが読み込まれるので、ここからインストールすることが可能だったりはします。