MRが楽しい

MRやVRについて学習したことを書き残す

アプリパッケージでhololensにアプリをインストールする

本日は hololens の技術調査枠です。
前回、hololensのアプリパッケージの作成方法を学びました。
bluebirdofoz.hatenablog.com

今回はそのアプリパッケージを用いて hololens にアプリをインストールする手順をまとめます。

アプリパッケージを出力したフォルダは以下のようなファイル構成になっています。
f:id:bluebirdofoz:20170901021550j:plain
Add-AppDevPackage.resources:インストール用パワーシェルの文言ファイル
Dependencies:各プロセッサアーキテクチャで必要なパッケージファイル群(X86、X64、ARM)
Add-AppDevPackage.ps1:インストール用パワーシェル
HandPositionTest_1.0.0.0_x86.appxbundle:アプリパッケージファイル
HandPositionTest_1.0.0.0_x86.cer:セキュリティ証明書

hololens へのローカルインストールではパワーシェルを利用しないため、必要なのは以下の2つです。
Dependencies/x86X86プロセッサアーキテクチャで必要なパッケージファイル群
HandPositionTest_1.0.0.0_x86.appxbundle:アプリパッケージファイル

例えば Dependencies/x86 配下には以下のファイルが存在します。
f:id:bluebirdofoz:20170901021611j:plain

appxbundle と合わせて、以下のようにまとめればインストールに必要なファイルは全てです。
f:id:bluebirdofoz:20170901021622j:plain

少し余談ですが。
前回のパッケージ作成のウィンドウで「はい」を選び、ストアへの提出パッケージを作成した場合
これらのファイルは全て appxupload パッケージという一つのファイルにまとまられるそうです。
Windows 10 のユニバーサル Windows アプリをパッケージ化する
 https://msdn.microsoft.com/ja-jp/library/windows/apps/hh454036.aspx
ローカル配布の場合でもまとめてくれればいいのに。何か意図があるのでしょうか。


ともあれ。先ほどのファイルを用いてインストールを行います。
アプリのインストールを行う hololens の DevicePortal を開きます。
f:id:bluebirdofoz:20170901021635j:plain

メニューから「App」をクリックして AppManager を開きます。
f:id:bluebirdofoz:20170901021646j:plain

「App package」に .appxbundle ファイルのアプリパッケージを指定します。
Dependency」に .appx ファイルのプロセッサアーキテクチャで必要なパッケージを指定します。
全て選択したら「Go」ボタンをクリックします。
f:id:bluebirdofoz:20170901021654j:plain

実行したら「Failed to start deployment. Failure text: Install failed. Please contact your software vendor.
(0x80073cf9)」というエラーが出て失敗しました。
f:id:bluebirdofoz:20170901021703j:plain

何故?……と、少し調べたら原因が分かりました。
・Packaging and Sideload - Windows Mixed Reality Developer Forum
 https://forums.hololens.com/discussion/694/packaging-and-sideload

要は同じアプリが既にインストールされていると失敗します。
今回、アプリパッケージの作成に既存の HandDraggble プロジェクトを流用したのが原因でした。

hololens にインストールしていたアプリを一旦アンインストールしてもう一度試します。
f:id:bluebirdofoz:20170901021724j:plain
今度は「Done!」が表示されました。成功です。

hololens 内のアプリ一覧からアプリを起動すると、以下の通り、動作を確認できました。
f:id:bluebirdofoz:20170901021732j:plain