簡體   English   中英

UWP App 總是以非零返回碼退出

[英]UWP App always exits with non-zero return code

據我了解,未完成並返回 0 錯誤代碼的應用程序未正確終止。 但不知何故,我制作的任何 UWP 應用程序,即使是非常默認的應用程序,每次都以錯誤代碼 1 結束。 此外,它的主類的Dispose()和析構函數從未被調用。 這是預期的行為嗎?

為了重現,我剛剛制作了默認的 UWP 應用程序:

  • 右鍵單擊解決方案 -> 添加 -> 新建項目...
  • 然后在其他語言 -> Visual C# -> Windows Universal -> "Blank App (Universal Windows)"
  • 然后構建和部署應用程序。

如果您現在運行然后關閉該應用程序,它似乎正在被強制退出。 我得到的最后輸出是:

The thread 0x35a4 has exited with code 0 (0x0).
The thread 0x34f4 has exited with code 1 (0x1).
The program '[3376] App1.exe' has exited with code 1 (0x1).

所以我認為這意味着一個線程失敗,然后應用程序失敗。 這是正確的,這是壞的嗎?

此外,我在主App.xaml.cs添加了以下代碼:

    ~App()
    {
        System.Diagnostics.Debug.WriteLine("Calling destructor");
    }

    // (Implement Disposable interface)
    public void Dispose() 
    {
        System.Diagnostics.Debug.WriteLine("Calling dispose");
    }

兩者都沒有被調用。 這是怎么回事?

我想建議您使用 UWP 生命周期和事件。 mode and then it is .就我的理解,應用程序在用戶關閉時進入模式,然后 UWP 應用程序生命周期經歷一系列步驟,其中它甚至在啟動或暫停進入和離開后台 App.Xaml.Cs 中,您可以繼續使用事件並了解應用程序生命周期的工作原理。

我按照您的步驟創建了一個空白項目。 運行它給了我: 在此處輸入圖片說明

線程或應用程序都不會以退出代碼關閉。 因此,您遇到的情況是不正常的,被認為是一個問題,尤其是當線程終止整個應用程序時。 我會卸載 VS17 和任何庫,然后進行全新安裝。

您是否嘗試過非 UWP 項目模板?

暫無
暫無

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

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