簡體   English   中英

我的 Windows 8 Store 應用程序在應用程序認證工具包中崩潰,我該如何找出原因?

[英]My Windows 8 Store app crashes in App Certification Kit, how can I found out why?

因此,當我創建應用程序 Package 時, Windows App Certification Kit失敗並顯示:

崩潰和掛起 • 發現錯誤:崩潰和掛起測試檢測到以下錯誤:◦Windows 錯誤報告檢測到應用程序 47878User.MyApp_1.0.0.3_neutral__a2qvk4qzttz7j 並遇到崩潰或掛起。

在我的事件日志中,我看到以下內容:

應用程序:MyApp.exe 框架版本:v4.0.30319 描述:進程因未處理的異常而終止。 異常信息:System.Exception 堆棧:在 System.Threading.WinRTSynchronizationContext+Invoker.b__0(System.Object) 在 System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(System.Object) 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 System .Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, 布爾值) 在 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Z497031794414A5524BZAC3B54BZ, 布爾值) Boolean) 在 System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() 在 System.Threading.ThreadPoolWorkQueue.Dispatch() 在 System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

和:

錯誤應用程序名稱:MyApp.exe,版本:1.0.0.0,時間戳:0x50546b92 錯誤模塊名稱:KERNELBASE.dll,版本:6.2.9200.16384,時間戳:0x5010ac2f
異常代碼:0xe0434352
故障偏移量:0x00014b32
錯誤進程 ID:0x1894
錯誤應用程序啟動時間:0x01cd933a183ece6a
錯誤的應用程序路徑:C:\Program Files\WindowsApps\47878User.MyApp_1.0.0.3_neutral__a2qvk0qzyyn7m\MyApp.exe
Faulting module path: C:\Windows\SYSTEM32\KERNELBASE.dll Report Id: 6b9e9db3-ff2d-11e1-be8d-001c42ac6e2f Faulting package full name: 47878User.MyApp_1.0.0.3_neutral__a2qvk0qzyyn7m

問題是我無法在我的一生中重現任何崩潰,無論是在調試模式、發布模式、強制掛起/重新激活事件等。

當 Windows 應用程序認證工具包第 6 次(或第 7 次)運行我的應用程序時,我的初始屏幕會短暫顯示,然后我的應用程序就會消失(可能會崩潰)。
WAPK 在第 6 次運行中在做什么,我該如何重現/調試它?

我不是專家,但我剛剛通過我的應用程序完成相同的過程,看看我是否可以解決發生的事情。 下面是我所做的事情的寫作(希望對其他人有用)。

認證套件結果

失敗:崩潰和掛起

發現錯誤:崩潰和掛起測試檢測到以下錯誤:

應用程序neutral__6j94sra26jgtm被Windows錯誤報告檢測到並遇到崩潰或掛起。 影響如果不修復:停止響應或崩潰的應用程序可能會導致數據丟失並且用戶體驗不佳。 如何修復:調查,調試相關的可執行文件以識別並修復問題,然后重新構建並重新測試應用程序。 在軟件開發生命周期中使用應用程序驗證程序。

這根本沒有幫助。 我認為自從這次討論以來鏈接已經更新,但我並不認為它有用。

調查

事件查看器中記錄了一些錯誤(Windows鍵+ R,鍵入“eventvwr”)。 我可以看到三個有用的條目:

  • Windows錯誤報告事件
  • 應用程序錯誤事件
  • .NET運行時事件

Windows錯誤報告事件有一些信息,包括它保存其日志文件的位置的一些文件路徑。

我最終從命令行運行了Windows應用程序認證工具,並隔離了未通過PerfromanceShutdown測試的測試。 用於從命令提示符運行的命令是:

C:\Program Files (x86)\Windows Kits\8.0\App Certification Kit>appcert test -apptype windowsstoreapp -packagefullname <applicationfullname> -reportoutputpath e:\Projects\AlbumFlow.Win8\output1.xml

這導致我們在暫停/退出/恢復方法中發生了一些事情。

我看的另一個地方是在C:\\Users\\<userName>\\AppData\\Local\\Microsoft\\AppCertKit 這有幾個大文件(~100Mb)Windows性能分析跟蹤文件。 這看起來很有用,但我不明白。

解決方案雖然我正在查看跟蹤文件,團隊中的其他人發現暫停管理器沒有正確關閉文件引用。

這可以通過使用visual studio中DebugLocation工具欄來重現。 選擇暫停,恢復,暫停和終止再現問題。

希望這有助於某人,因為它似乎是一個調整這些錯誤的黑暗藝術。

好的,我幾天前發現了這個問題。

我沒有正確測試掛起和關閉方案。

如果有人有類似的問題; 啟用“調試位置”工具欄(“視圖” - >“工具欄” - >“調試位置”)

開始調試並選擇Suspend and Shutdown選項。

我的OnSuspending活動中有一個未處理的異常。

對於所有前來訪問這個問題的人來說,非常沮喪並且不理解為什么沒有轉儲,沒有實際崩潰或掛起的跡象,沒有來自應用程序事件日志中出現的Windows錯誤報告的新條目,我有一個配方:

清除應用程序事件日志。

在我的情況下,我遇到了以下問題:曾幾何時,我們的QA設置將來的設備時間來測試一些特定於應用程序的東西。 我們不幸的是在未來的時候推出了WACK。 我們的應用程序崩潰了。 在有時間解開實際后,我們再也沒有設法通過WACK崩潰並在該設備上掛起測試。 原因是WACK本身似乎使用Windows事件日志從Windows錯誤報告中查找報告。 在這種情況下,它會找到它們,因為它們實際上仍然存在於未來。 讓事情變得更糟的是,這些未來的條目實際上是在默認事件視圖中被推遲到盡管時間戳后到達的那些條目,因此除非您按日期和時間對事件日志進行詳細排序,否則它們很難看到。

我希望我能節省幾個小時的時間。

如果你關閉了UAC,你也會失敗這些“崩潰和掛起”測試。

我安裝了 Windows 11、Visual Studio 2022、Windows 應用程序認證工具包和 Windows ZF20E3C5D5E54C0896D 現在沒有應用程序通過 Windows 應用程序認證套件測試。 甚至是“hello world”之類的應用程序,所以我猜它與代碼無關。 WACK 結果顯示“High OS....”和“...crash or hang”。 知道發生了什么嗎? 這個帖子中的評論來自幾年前,所以我很驚訝這個錯誤現在出現了......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM