適用於 .NET MAUI 的 XAML 熱重新載入

.NET 多平臺應用程式 UI (.NET MAUI) XAML 熱重新載入 是 Visual Studio 功能,可讓您檢視執行中應用程式 XAML 變更的結果,而不需要重建專案。 如果沒有 XAML 熱重新載入,您每次想要檢視 XAML 變更的結果時,都必須建置和部署您的應用程式。

當您的 .NET MAUI 應用程式在偵錯組態中執行時,附加調試程式時,XAML 熱重新載入 剖析您的 XAML 編輯,並將這些變更傳送至執行中的應用程式。 它會保留您的UI狀態,因為它不會重新建立完整頁面的UI,並更新受編輯影響之控件的變更屬性。 此外,將會維護您的瀏覽狀態和數據,讓您快速在 UI 上反覆運算,而不會遺失應用程式中的位置。 因此,您將花費較少的時間來重建和部署應用程式,以驗證 UI 變更。

根據預設,您不需要儲存 XAML 檔案,即可查看編輯的結果。 相反地,當您輸入時,會立即套用更新。 不過,在 Windows 上,您可以變更此行為,只在儲存盤案時更新。 從 Visual Studio 選單欄選取 >[偵錯選項> XAML 熱重新載入],即可在 [熱重新載入 IDE 設定中核取 [在文件儲存時套用 XAML 熱重新載入] 複選框來完成。 如果您進行較大的 XAML 更新,而且在檔案儲存完成之前不希望它們顯示,則只有在檔案儲存時更新才會有用。

注意

如果您要撰寫原生 UWP 或 WPF 應用程式,而不使用 .NET MAUI,請參閱 WPF 和 UWP 應用程式的 XAML 熱重新載入 是什麼?

VISUAL Studio 2022 和 Visual Studio 2022 for Mac 都提供 XAML 熱重新載入。 在 Windows 上,XAML 熱重新載入 可在模擬器、模擬器和實體裝置上的 Android、iOS 和 WinUI 上使用。 在 Mac 上,XAML 熱重新載入 可在模擬器、模擬器和實體裝置上使用 Android、iOS 和 Mac Catalyst。

重要

XAML 熱重新載入 不會重載 C# 程式代碼,包括事件處理程式。

啟用 XAML 熱重新載入

VISUAL Studio 2022 預設會啟用 XAML 熱重新載入。 如果先前已停用,您可以從 Visual Studio 功能表欄選取 > [偵錯選項>] XAML 熱重新載入 來啟用它。 接下來,在 [選項] 對話框中,確定已核取 [啟用 XAML 熱重新載入WinUI(包括 .NET MAUI)和 Android 和 iOS (.NET MAUI) 選項:

XAML Hot Reload options for .NET MAUI in Visual Studio.

然後,在組建設定中的iOS上,檢查連結器是否已設定為 [不要連結]。

在多個平臺上重載

XAML 熱重新載入 支援在 Visual Studio 和 Visual Studio for Mac 中同時偵錯多個平臺,前提是每個平臺都有個別的前端專案,而不是單一專案應用程式。 例如,您可以同時部署 Android 和 iOS 目標,以查看同時反映在這兩個平臺上的變更。 若要在 Windows 上的多個平台上進行偵錯,請參閱 如何:設定多個啟動專案。 若要在 Mac 上的多個平台上進行偵錯,請參閱 設定多個啟動專案

疑難排解

XAML 熱重新載入 輸出會顯示可協助進行疑難解答的狀態消息。 在 Visual Studio 中,您可以從功能表欄選取 [檢視輸出],然後在 [顯示輸出來源:] 下拉式清單中選取 [Xamarin] 熱重新載入來顯示這些專案。> 在 Visual Studio for Mac 中,您可以將滑鼠游標暫留在狀態列中的 XAML 熱重新載入 上來顯示。

如果 XAML 熱重新載入 無法初始化,您應該確定您使用的是最新版本的 .NET MAUI、IDE 的最新版本,而且您的 iOS 連結器設定已設定為 [不要在專案的組建設定中連結]。

如果儲存 XAML 檔案時不會發生任何事,請確定 IDE 中已啟用 XAML 熱重新載入。 如需詳細資訊,請參閱啟用 XAML 熱重新載入

如果您進行 XAML 熱重新載入 剖析器視為無效的變更,則會在編輯器中顯示錯誤底線,並將其包含在 [錯誤清單] 視窗中。 熱重新載入 錯誤有從 「XHR」 開始的錯誤碼(適用於 XAML 熱重新載入)。 如果頁面上有任何這類錯誤,在修正錯誤之前,XAML 熱重新載入 不會將變更套用至執行中的應用程式。

您無法在 XAML 熱重新載入 工作階段期間新增、移除或重新命名檔案或 NuGet 套件。 如果您新增或移除檔案或 NuGet 套件,請重建並重新部署您的應用程式,以繼續使用 XAML 熱重新載入。

不支援停用 XAML 編譯 [XamlCompilation(XamlCompilationOptions.Skip)] ,而且可能會導致即時可視化樹狀結構發生問題。 如需即時可視化樹狀結構的詳細資訊,請參閱 檢查 .NET MAUI 應用程式的可視化樹狀結構。