web-dev-qa-db-ja.com

Windows 10 UWPアプリが起動してすぐに消える

問題

Windows 1903で特定の プロビジョニングされたWindowsアプリ を実行しようとすると、アプリが開いてすぐに消えるように見える-これが問題です。

トラブルシューティング

Event ViewerApplicationログを調べると、Event ID 1000イベントがログに記録されました。さらに、Event Viewerの検査時に| Application and Services Logs | Microsoft | Windows | AppsおよびMicrosoft-Windows-TWinUI/Operationalログ、ありEvent ID 5961イベントがログに記録されました。

イベントビューアのエラーコード

  • イベントID:1000:例外コード:0xc000027b
  • イベントID:5961:エラーコード:不明なHResultエラーコード:0x80040904。アクティベーションフェーズ:COMアプリのアクティベーション

私が試したことの一部

以下のPowerShellを実行して、この問題のあるアプリケーションを再インストールしようとしましたが、エラーなしで実行されているように見えますが、問題は引き続き発生します。

$wAppPath = (Get-AppxPackage -Name "*Calc*").InstallLocation;
Add-AppxPackage -Path "$wAppPath\Appxmanifest.xml" -Register -DisableDevelopmentMode;

詳細

この問題は 自動ログオン として構成されたアカウントでのみ発生するようです。これらのアカウントは、シャットダウン時にプロファイルが削除され、起動時に両方とも(両方ともはい)、 DelProf2 メソッドを使用して削除されます。

イベントビューアの詳細

イベントID 1000

Faulting application name: Calculator.exe, version: 10.1812.1901.4008, time stamp: 0x5c304989
Faulting module name: Windows.UI.Xaml.dll, version: 10.0.18362.356, time stamp: 0x0825b5b0
Exception code: 0xc000027b
Fault offset: 0x0000000000712cf0
Faulting process id: 0x1518
Faulting application start time: 0x01d568dbe3b0f42c
Faulting application path: C:\Program Files\WindowsApps\Microsoft.WindowsCalculator_10.1812.10048.0_x64__8wekyb3d8bbwe\Calculator.exe
Faulting module path: C:\Windows\System32\Windows.UI.Xaml.dll
Report Id: 23d86f95-8eec-407b-b52c-86043d6d0426
Faulting package full name: Microsoft.WindowsCalculator_10.1812.10048.0_x64__8wekyb3d8bbwe
Faulting package-relative application ID: App
  • enter image description here

イベントID 5961

Activation for Microsoft.WindowsCalculator_8wekyb3d8bbwe!App failed. Error code: Unknown HResult Error code: 0x80040904. Activation phase: COM App activation
  • enter image description here
2
Pimp Juice IT

この問題を解決する1つの方法は、該当するUWP プロビジョニングされたWindowsアプリ 、およびそれらの各アプリケーションの依存関係を登録することです。以下は、ログインスクリプトなどを使用して、問題が発生しているユーザーアカウントとしてログオンしているときに実行され、問題を修正するPowerShellロジックです。

注:これは、他の人のためにこの問題を解決するために一度だけ実行する必要がある場合があります。私の状況は、通常よりも固有の側面にある場合があります。

このPowerShellソリューションは、少なくとも2つのUWPアプリ(の例:CalcとPhotos)でこれを修正することを確認しました。 GitHub hereProgram.csのロジックの一部を確認した後、PowerShellを見つけました。そこにあるRegAllAppX.exeも問題を解決します。

私の場合、GitHubでのその実行可能ファイルの実行には時間がかかりすぎます。少なくとも、問題のあるアカウントのログオンごとに実行する必要があるため、Windows 10に自動的にログオンするたびに新しいプロファイルを取得します。私は DelProf2 がプロファイルを適切にワイプして問題を引き起こしていないと思いますが、よりネイティブな解決策は今のところバックバーナーにありますが、将来的には来るかもしれません。

Program.cs コードのロジックの一部を調べて、同等のPowerShellロジックを調べ、テストし、同等のPowerShellロジックに変換して、特定のUWPアプリを対象とするより的を絞った効率的な方法で同様の操作を実行できます。問題。

パワーシェル

$Apps = @("WindowsCalculator","Photos");

$base   = @();
$depend = @();
$Apps | %{
    $base   += $base   = (Get-AppxPackage -Name "*$_*").InstallLocation;
    $depend += $depend = (Get-AppxPackage -Name "*$_*").Dependencies.InstallLocation;
    };

$Apps = (($base + $depend) | Sort -Unique);
$Apps | %{Add-AppxPackage -Path "$_\Appxmanifest.xml" -Register -DisableDevelopmentMode};

サポートリソース

  • 配列
  • ForEach-Object

    標準 エイリアス foreach-Object:the '% '記号、ForEach

  • Get-AppxPackage

  • Add-AppxPackage

    • Registerパラメーターを使用して、Windows®Storeアプリの開発中にパッケージ化されていないファイルのフォルダーからインストールできます

    • DisableDevelopmentModeを使用して、StagePackageAsyncAPIによってステージングされたアプリケーション、無効にされたアプリケーション、またはテスト中に破損したアプリケーションを登録できます。

  • 代入演算子について

    +=:指定した値だけ変数の値を増やすか、指定した値を既存の値に追加します

  • 並べ替えオブジェクト

    標準 エイリアス セットエイリアスの場合:sort

  • PackageManagerクラス
2
Pimp Juice IT