グリッド アプリ (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 メソッドはプロジェクションであるため、簡単に逆アセンブルしたり、「失敗する可能性がある」理由を突き止めたりすることはできません。
この問題の原因、またはデバッグや解決方法を知っている人はいますか?