問題 §
Visual StudioからUWPを実行しようとすると、以下のようなエラーが出て配置できない。別ユーザーでインストールした覚えはない。
エラー DEP0700: アプリケーションの登録に失敗しました。[0x80073CFB] 他のユーザーが、このアプリのパッケージ化されていないバージョンを既にインストールしています。現在のユーザーがこれをパッケージ化されたバージョンに置き換えることはできません。競合するパッケージは 113C124A.MegaPictures、その発行元は CN=0BA2A2B6-830F-4C1C-A8C4-4FEF2BE596C1 です。 MegaPics1
原因 §
UWPのデータベースに確かに別ユーザーのIDでデータが登録されてしまっている。
get-appxpackage -name 113C124A.MegaPictures -AllUsersで取得できる登録されているユーザーのSIDはローカルにもドメインにも存在しない謎のユーザーのもの。
解決 §
remove-appxpackageを実行する際に-AllUsersオプションを付ける。
たとえば、以下のような手順で操作する。
- PowerShellを管理者権限で開く
- get-appxpackage -name 113C124A.MegaPictures -AllUsersのようなコマンドで目的のパッケージの詳細情報を調べる (113C124A.MegaPicturesは目的のアプリの名前)
- PackageFullNameを控える。(この場合は113C124A.MegaPictures_2.0.1.0_x64__vbbj8gnvrzd92だった)
- remove-appxpackage -package [PackageFullName] -AllUsersを実行してデータベースから削除を行う。[PackageFullName]の部分は調査済みの名前に置き換える。 (たとえば、remove-appxpackage -package 113C124A.MegaPictures_2.0.1.0_x64__vbbj8gnvrzd92 -AllUsersとする)
感想と考察 §
明らかなに存在しないユーザーのSIDで登録されていたので、Visual Studioないし起動するツールにバグがあって希に存在しないSIDでデータベースに登録してしまうか、あるいは運悪く誤動作が発生して存在しないSIDを書き込んでしまった可能性もある。
解決方法は最初からこれが有効だったのかはっきりしないが、取りあえずremove-appxpackageを-AllUsersで実行するというノウハウは覚えておいて損はないだろう。UWPのインストール情報はユーザーごとに完全に分離されているわけではなく、他の利用者がインストールしてしまったアプリは同じアプリの別バージョンを扱えない場合があるようだ。