0

グリッド アプリ (XAML) テンプレートを使用して、新しい Windows ストア アプリ プロジェクトを作成しました。コードを 1 行も変更せずに、プロジェクトを (デバッグ モードで) 実行しました。実行中に Visual Studio に戻りSuspend、ツールバーのボタンをクリックしました。

この時点で、アプリは SuspensionManagerException をスローしました。例外の詳細はあまり役に立ちませんでした。メッセージはSuspensionManager failed. (これまでのところ)役に立たない HResult があり-2146233088ます。また、同じように役に立たない InnerException もあります。そのメッセージはError HRESULT E_FAIL has been returned from a call to a COM component.であり、その HResult は であり-2147467259、外側の例外の HResult よりもさらに悪いです。

例外をスローするコード行はSuspensionManager、これもプロジェクト テンプレートの一部です。これが行です:

StorageFile file = await ApplicationData.Current.LocalFolder.CreateFileAsync(sessionStateFilename, CreationCollisionOption.ReplaceExisting);

例外をトリガーする部分はLocalFolder.CreateFileAsync(…). CreateFileAsync メソッドの MSDN ドキュメントには、次のような「備考」セクションがあります。If you try to create a file in a virtual folder like a library or a file group, this method may fail.

それでおしまい。失敗する可能性がある理由、失敗する可能性のある条件、またはそれに対して何ができるかについての説明はありません。

たまたま、失敗した場合でも、実際にファイルが作成されます。問題のファイルは呼び出され_sessionState.xml、 にありC:\Users\<username>\AppData\Local\Packages\<package_id>\LocalStateます。ファイルを削除してアプリを再中断すると、例外が再びスローされ、ファイルが再作成されます。

高低を検索しましたが、決定的なものは見つかりませんでした。CreateFileAsync メソッドはプロジェクションであるため、簡単に逆アセンブルしたり、「失敗する可能性がある」理由を突き止めたりすることはできません。

この問題の原因、またはデバッグや解決方法を知っている人はいますか?

4

1 に答える 1