[英]Disappointing First UNO Experience. Only WASM works
我已经度过了周末,但仍然无法让“Hello, World”正常工作。 视觉工作室:
2022 Version 17.0.4
2022 Preview Version 17.1.0 Preview 1.1
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,那么:
首先,忘记使用 .NET 6。它们还没有准备好。 这是我花费最多时间的原因。 Uno 4 可能会宣传为 .NET 6 兼容并且它们正在接近......但它们还没有。
忘记在 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 将很容易。
要解决此问题,请使用命令提示符导航到每个失败的项目并输入命令:
点网还原
现在您已准备好使用 Visual Studio 启动您的解决方案。 Select 将 WinUI 3 打包项目作为您的启动项目并尝试运行“Hello, World”。
4) 您可能会收到错误:“错误 MSB3270 正在构建的项目的处理器架构“AMD64”与参考的处理器架构不匹配......”。 如果是这样,请打开您的构建配置并检查您的打包和主 WinUI 3 项目是否使用不同的 CPU 目标,如下所示(BFRLE 是我的解决方案的名称):
我通过将 BFRLE.Windows.Desktop 的目标平台更改为 x64 以匹配打包项目来解决此问题。 当您在配置管理器中时,请确保已部署 Android 项目(否则在调试期间不会部署)。
https://github.com/tschoonj/GTK-for-Windows-Runtime-Environment-Installer/releases
在 unocheck 中不检查此运行时的缺失。
此时,您应该能够将“Hello, World”作为本地 WinUI 3 桌面应用程序、IIS Express 托管的 WASM 应用程序、Skia.WPF.Host 应用程序和 Skia.ZE6094CAAEAA604C8 应用程序运行我没有尝试运行 MacOS 或 iOS 风格,因为它们需要物理硬件。 我确实尝试连接我的旧 Android 手机(Galaxy Note 5,OS 7 API 24)。 当然,要让手机被识别,您必须启用开发人员模式并启用 USB 调试(请参阅在线文档)。 为了让我的手机得到认可……必须禁用快速部署。 即使在这让我的手机通信之后,我也无法成功部署到这个旧手机(我怀疑我需要更新我的手机)。
上面的步骤终于让事情对我有用。 无论我使用的是 VS 2022 还是 VS 2022 预览版都没有关系——因此您不必担心这一点。
现在讨论让真正的应用程序跨平台运行的更有趣的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.