適用於 .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 熱重新載入],即可在 [在文件儲存時套用 XAML 熱重新載入] 熱重新載入 複選框來完成此作業。 如果您進行較大的 XAML 更新,而且在檔案儲存完成之前不希望它們顯示,則只有在檔案儲存時更新才會有用。
注意
如果您要撰寫原生 UWP 或 WPF 應用程式,而不使用 .NET MAUI,請參閱什麼是 WPF 和 UWP 應用程式的 XAML 熱重新載入?。
VISUAL Studio 2022 和 Visual Studio Code 都提供 XAML 熱重新載入。 在 Windows 上,XAML 熱重新載入 可在模擬器、模擬器和實體裝置上的 Android、iOS 和 WinUI 上使用。 在 Mac 上,XAML 熱重新載入 可在模擬器、模擬器和實體裝置上使用 Android、iOS 和 Mac Catalyst。 在所有情況下,XAML 熱重新載入 都需要將偵錯組態命名為 Debug
。
重要
XAML 熱重新載入 不會重載 C# 程式代碼。 如果您在程式代碼中新增事件處理程式,它只能在重載程式代碼之後用於 XAML。 此外,如果您新增具有 x:Name
的新 XAML 元素,則除非重載程式代碼,否則無法在程式代碼中使用名稱。
完整頁面重載
在某些情況下,XAML 熱重新載入 不會如預期更新執行中的應用程式。 例如,您可能會變更 .NET MAUI 控制件上的色彩屬性,但不會在執行中的應用程式中看到色彩變更。 若要解決這類問題,您可以按兩下 熱重新載入 工具列按鈕或按 Alt+F10,完全重載 XAML 檔案。 只會重載已編輯的 XAML 檔案。 例外狀況是,如果您變更資源字典檔案,在此情況下會重載所有 XAML 檔案以套用新的資源。
重要
當 XAML 重載時,某些 UI 狀態可能會遺失,例如目前的焦點和選取範圍。
啟用 XAML 熱重新載入
VISUAL Studio 2022 預設會啟用 XAML 熱重新載入。 如果先前已停用,則可以從 Visual Studio 功能表欄選取 > [偵錯選項 > XAML 熱重新載入] 來啟用它。 接下來,在 [選項] 對話框中,確認已核取 [啟用 XAML 熱重新載入、WinUI(包括 .NET MAUI)和 Android 和 iOS (.NET MAUI) 選項:
然後,在組建設定中的iOS上,檢查連結器是否已設定為 [不要連結]。
在多個平臺上重載
XAML 熱重新載入 支援在 Visual Studio 中同時偵錯多個平臺,前提是每個平臺都有個別的前端專案,而不是單一專案應用程式。 例如,您可以同時部署 Android 和 iOS 目標,以查看同時反映在這兩個平臺上的變更。 若要在 Windows 上的多個平台上進行偵錯,請參閱 如何:設定多個啟動專案。
疑難排解
XAML 熱重新載入 輸出會顯示可協助進行疑難解答的狀態消息。 在 Visual Studio 中,您可以從功能表欄選取 [檢視>輸出],然後在 [顯示輸出來源:] 下拉式清單中選取 [熱重新載入 來顯示這些輸出。
如果 XAML 熱重新載入 無法初始化,您應該確定您使用的是最新版的 .NET MAUI、IDE 的最新版本,而且您的 iOS 連結器設定在專案的組建設定中設定為 [不要連結]。
XAML 熱重新載入 需要您的偵錯組態命名Debug
為 。 如果使用自定義組建組態,如果組建組態未命名Debug
,XAML 熱重新載入 將會停止運作。
如果儲存 XAML 檔案時不會發生任何事,請確定 IDE 中已啟用 XAML 熱重新載入。 如需詳細資訊,請參閱啟用 XAML 熱重新載入。
如果您進行 XAML 熱重新載入 剖析器視為無效的變更,則會在編輯器中顯示錯誤底線,並將其包含在 [錯誤清單] 視窗中。 熱重新載入 錯誤有一個錯誤碼,開頭為 「XHR」 (適用於 XAML 熱重新載入)。 如果頁面上有任何這類錯誤,XAML 熱重新載入 在修正錯誤之前,不會將變更套用至執行中的應用程式。
您無法在 XAML 熱重新載入 工作階段期間新增、移除或重新命名檔案或 NuGet 套件。 如果您新增或移除檔案或 NuGet 套件,請重建並重新部署您的應用程式,以繼續使用 XAML 熱重新載入。
不支援停用 XAML 編譯 [XamlCompilation(XamlCompilationOptions.Skip)]
,而且可能會導致即時可視化樹狀結構發生問題。 如需即時可視化樹狀結構的詳細資訊,請參閱 檢查 .NET MAUI 應用程式的可視化樹狀結構。