簡體   English   中英

令人失望的第一次 UNO 體驗。 只有 WASM 有效

[英]Disappointing First UNO Experience. Only WASM works

我已經度過了周末,但仍然無法讓“Hello, World”正常工作。 視覺工作室:

2022 Version 17.0.4
2022 Preview Version 17.1.0 Preview 1.1

uno-check 說一切都很好: 在此處輸入圖像描述

這是我的運行時: 在此處輸入圖像描述

WUX 或 MUX(UWP 或桌面)風格的 WinUI 都不起作用。 Android 仿真器即將推出,但 Hello World 未部署。 檢測到本地 Android 設備,但未部署。 Linux (Skia.GTK) 不工作。

WASM 能夠顯示文本“Hello, World”。

哇。 在觀看了最近的第 4 版發布會議的每一分鍾后,我感到很興奮。 但是,如果讓事情運行起來就這么困難..? ?

我決心讓它工作......但這樣做似乎是一個主要的非生產性項目。 我是世界上唯一一個有困難的人嗎?

標記

2001 年 12 月 19 日

好的,我能夠讓 WinUI(桌面)、WASM、Skia(用於 Windows 7 的 WPF)、Skia(用於 Linux 的 Gtk)和 Android 與“Hello, World”一起工作。 讓我分享我學到的東西,並希望其他人能避免我所經歷的痛苦經歷。

當然,在執行以下步驟之前,您需要安裝並運行 unocheck,因此請按照文檔進行操作並確保所有問題都已解決。

一旦你通過了 unocheck,那么:

  1. 首先,忘記使用 .NET 6。它們還沒有准備好。 這是我花費最多時間的原因。 Uno 4 可能會宣傳為 .NET 6 兼容並且它們正在接近......但它們還沒有。

  2. 忘記在 Visual Studio 中使用項目模板。 令人驚訝的是,即使在發布 4.0 版之后,他們還沒有為開發人員想要的最重要的項目完成模板:WinUI 3 Desktop。 所以,現在,只關注使用 CLI 安裝和調用模板。

打開 cmd 提示符並使用以下命令安裝模板:dotnet new -i Uno.ProjectTemplates.Dotnet

這將安裝幾個模板。 如果要創建一個基於 WinUI 3 Desktop (Win32) 版本的跨平台,那么:

首先創建包含文件夾(如“C:\Users\Mark\Code”)。 然后,使用命令提示符導航到此文件夾,並在此文件夾中輸入以下命令:

dotnet new unoapp-winui -o 解決方案名稱

這將產生一個 .NET 5 解決方案,以打包的 WinUI 3 桌面作為主要開發頭。 WinUI 3 頭將依賴於最新的 WindowsAppSDK 版本。 1.0(以前的項目重聚)。

不要使用命令:

dotnet new unoapp-winui-net6 -o 解決方案名稱

這將產生一個 .NET 6 解決方案,該解決方案將被搞砸並且無法工作。 希望他們能在接下來的幾周內糾正所有這些問題。 我會等到 NVentive 發布更新的 Visual Studio 模板,支持 .NET 6 的 WinUI 3。然后將您的解決方案從 .NET 5 升級到 .NET 6 將很容易。

  1. 當您運行 dotnet new unoapp-winui -o SolutionName 命令時,您會注意到有幾個項目無法正確“恢復”: 在此處輸入圖像描述

要解決此問題,請使用命令提示符導航到每個失敗的項目並輸入命令:

點網還原

現在您已准備好使用 Visual Studio 啟動您的解決方案。 Select 將 WinUI 3 打包項目作為您的啟動項目並嘗試運行“Hello, World”。
4) 您可能會收到錯誤:“錯誤 MSB3270 正在構建的項目的處理器架構“AMD64”與參考的處理器架構不匹配......”。 如果是這樣,請打開您的構建配置並檢查您的打包和主 WinUI 3 項目是否使用不同的 CPU 目標,如下所示(BFRLE 是我的解決方案的名稱): 在此處輸入圖像描述

我通過將 BFRLE.Windows.Desktop 的目標平台更改為 x64 以匹配打包項目來解決此問題。 當您在配置管理器中時,請確保已部署 Android 項目(否則在調試期間不會部署)。

  1. 接下來,確保在您的計算機上安裝 GTK+3 運行時。 你可以在這里這樣做:

https://github.com/tschoonj/GTK-for-Windows-Runtime-Environment-Installer/releases

在 unocheck 中不檢查此運行時的缺失。

  1. 我還安裝了 WSL。

此時,您應該能夠將“Hello, World”作為本地 WinUI 3 桌面應用程序、IIS Express 托管的 WASM 應用程序、Skia.WPF.Host 應用程序和 Skia.ZE6094CAAEAA604C8 應用程序運行我沒有嘗試運行 MacOS 或 iOS 風格,因為它們需要物理硬件。 我確實嘗試連接我的舊 Android 手機(Galaxy Note 5,OS 7 API 24)。 當然,要讓手機被識別,您必須啟用開發人員模式並啟用 USB 調試(請參閱在線文檔)。 為了讓我的手機得到認可……必須禁用快速部署。 即使在這讓我的手機通信之后,我也無法成功部署到這個舊手機(我懷疑我需要更新我的手機)。

  1. In order to use a virtual Android emulator you need to go to the project properties of the Android project and ENABLE Fast Deployment and Incremental Android Packaging as shown below:

在此處輸入圖像描述

  1. 您可以通過啟用 Windows 和 BIOS 中的設置來加速虛擬 Android 仿真器,如下所述:

https://docs.microsoft.com/en-us/xamarin/android/get-started/installation/android-emulator/hardware-acceleration?pivots=windows

上面的步驟終於讓事情對我有用。 無論我使用的是 VS 2022 還是 VS 2022 預覽版都沒有關系——因此您不必擔心這一點。

現在討論讓真正的應用程序跨平台運行的更有趣的問題。

暫無
暫無

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

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