63

Windows 8 アプリをデバッグしようとすると、この問題が発生し続け、コピーが別のユーザー アカウントに既にインストールされています。

DEP0700 : アプリの登録に失敗しました。別のユーザーが、このアプリのパッケージ バージョンを既にインストールしています。パッケージ化されていないバージョンでは、これを置き換えることはできません。競合するパッケージは {{{PackageName}}} であり、CN={{{Certificate Stuff}}} によって公開されました。(0x80073cf9)

場合によっては、ログインするか、他の人にマシンにログインしてアプリをアンインストールするよう依頼することができます。別の方法として、アプリケーションの名前/ID を変更することもできますが、1 つは常に可能であるとは限らず、もう 1 つは危険です (変更されたアプリケーション ID をソース管理にチェックインしたくありません)。

アンインストールする方法がいくつかあるはずです。おそらくPowerShellスクリプトですか?

4

15 に答える 15

25

上記の私のプロセスはまだ機能しますが、競合状態の問題を回避するだけで、Windows Update (はい、奇妙なことに十分です) が「ステージングされたパッケージ」を一掃します。

Microsoft によると、「その他の修正」-そして私はまだこの問題をバグと考えています-は次のとおりです。

問題の原因:

Windows Update (WU) は、お持ちのパッケージの新しいバージョンをダウンロードし、それらをローカル システムとして "ステージング" します。これにより、ストアに行ってアプリを更新するときに、更新プロセスができるだけ迅速になります。WU は最終的に、インストールされなかったステージング済みパッケージをクリーンアップします。

「ステージング」パッケージを使用すると、どのような影響がありますか?

  1. ステージングされたパッケージにより、その特定のパッケージを開発モードでインストールできなくなります

  2. ステージングされたパッケージはディスク容量を消費しますが、ハードリンクにより、この影響は軽減されます。パッケージの複数のバージョン間でファイルが同一である場合、appx 展開は、同じファイルの 2 つの個別のコピーを維持する代わりに、ファイルをハードリンクします。

「段階的」パッケージを見つけるにはどうすればよいですか?

  1. 管理者の powershell プロンプトで、次のコマンドを実行します。

    get-appxpackage -all

マシン上のすべてのパッケージを表示します。ステージングされたパッケージの場合、PackageUserInformation は {S-1-5-18 [Unknown user]: Staged} を表示します。

get-appxpackage -all |% {if ($_.packageuserinformation.installstate -eq "Staged"){$_.packagefullname}}

「ステージング」パッケージを削除するにはどうすればよいですか?

  1. psexecMark Russinovich によって書かれた sysinternals ツールからのダウンロード

  2. それらをすべて取り除くには、通常の管理者/昇格されたコマンド プロンプト (powershell ではない) で実行します。

psexec -s powershell -c "get-appxpackage | remove-appxpackage"

于 2013-01-18T20:15:32.403 に答える
21

それでもうまくいかない場合は、次のことも試してみてください。これは私の開発マシン用であり、通常のユーザーのマシン用ではないことに注意してください。したがって、非開発者にどのように影響するかはわかりません:-P

  1. フォルダー c:\Program Files\WindowsApps および C:\ProgramData\Microsoft\Windows\AppRepository の所有権を取得し、管理者にフル アクセスを付与します。TrustedInstaller にも変更権限があることを確認してください。あなたも所有権を取得しています。ご存じないかもしれませんが、これはそのフォルダーの [プロパティ] を介して行われます。

  2. [サービス] に移動し、Windows インストーラー サービスを停止します。

  3. C:\ProgramData\Microsoft\Windows\AppRepository\ を開き、PackageRepository.edb ファイルを削除します。

  4. Windows インストーラー サービスを再度開始します。

  5. 管理者として Visual Studio を起動します。

  6. アプリの起動を試みます。それはうまくいくはずです。

アプリを一度実行すると、VS をユーザー モードで再度実行できるようになります。

于 2013-01-15T14:39:21.147 に答える
12

現在のユーザーのアプリを削除する場合は、次を試してください。

Get-AppxPackage | where name -eq "APP.NAME" | Remove-AppxPackage

それは私を助けました。だからGet-AppxPackageなしがあります-all

于 2014-09-06T10:55:57.057 に答える
5

Windows ストア アプリを管理するための一連の PowerShell コマンドレットがあります。次のコマンドを管理者として実行すると、マシンにインストールされているすべてのユーザーのアプリを一覧表示できます。

Get-AppxPackage -AllUsers

ただし、別のユーザーのアプリをアンインストールする方法は見つかりませんでした。Remove-AppxPackage現在のユーザーに対してのみ機能します。アプリがインストールされているユーザーを削除すると、すべてがさらに興味深いものになります。少なくとも Windows 8 のプレリリース バージョンでは、これにより、彼がインストールしたアプリを削除できなくなりました。最終リリース以降、このような状況を回避することに成功したため、問題がまだ存在することを確認できません。つまり、ユーザー アカウントが削除されたときにアプリがアンインストールされません。

于 2012-12-15T05:42:05.803 に答える
2

何が私のために働いた

 1. Close VS
 2. Open Services
 3. Stop Appx Deployment Service
 4. Open C:\ProgramData\Microsoft\Windows\AppRepository\ and delete the PackageRepository.edb file.
 5. Start Appx Deployment Service
 6. Start VS & Debug - worked like charm
于 2015-04-29T06:44:02.753 に答える
0

私の場合、使用する必要がありました: Get-AppxProvisionedPackage -onlineとは対照的に Get-AppxPackage、それに応じて使用しますRemove-AppxProvisionedPackage -PackageName YourPackageNameHere -Online -AllUsers

于 2021-08-05T12:04:08.823 に答える
0

私の場合のように、他のすべてが失敗し、あなたが必死になっている場合(ユーザーが削除されたため)、これは少し危険ですが、私にとってはうまくいきました.

自己責任で行ってください。私のユーザーがマシン上で作成された最後のユーザーであることはわかっていました。

この回答は、上記の TAKEOWN に関する Auri Rahimzadeh の回答と、「DB Browser For SQLite」を使用して StateRepository-Machine.srd を変更する intika の回答の組み合わせです (ここでダウンロード: DB Browser for SQLite 3 )。唯一の違いは、1 つだけ編集したことです。事: PackageUserで、値User 3 (以前に削除されたユーザーの ID) を4 (最後に作成されたユーザーである私) に変更しました。

ユーザーテーブルをチェックして、あなたのケースでどのような値が機能するかを確認してください!

于 2017-11-07T08:59:41.017 に答える