栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

在 VS2022 上新建 Uno Platform 项目

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在 VS2022 上新建 Uno Platform 项目

问:为什么不使用那个 .NET 6,WinUI 3 的项目模板?

答:它尚未成熟,无法使用。

这篇文章教大家在 Visual Studio 2022 上新建 Uno Platform 项目。Uno Platform 是一个跨平台的 WinUI/UWP 实现。

Uno Platform 的创建是因为 nventive 公司使用 Xamarin.Forms 时因为 Xamarin.Forms 是对各平台原生 UI 工具包的封装,会导致各种各样的 UI 不一致,功能缺失,性能损失,该公司忍无可忍,创造了自绘的 Uno Platform。(注:微软的 MAUI 框架已加入了自绘支持 (Maui.Graphics.Controls))目前,Uno Platform 提供了 Fluent UI、Material Design、Cupertino 三种主题。

 

1.安装 VS2022 保证选中必要项:

 

之后点击右下角的关闭按钮并完成安装。

在安装中,系统可能会弹出一个 PowerShell 窗口,不用管,它会自行关闭。

在安装中,系统可能会提示你是否允许一个程序访问网络,选择允许访问。

 

2.安装适用于 VS2022 的 Uno Platform 扩展。

扩展在 Visual Studio 里可能下载不了。可以到这里去下:

适用于VS2022的UnoPlatform扩展-C#文档类资源-CSDN下载

当扩展安装完成后,打开 VS2022,创建新项目,选择“Multi-Platform App (Uno Platform | .NET 6 | UWP)”,点击下一步。

 之后配置新项目,点击“创建”。注意项目的名称要符合变量命名规则。

点击菜单上的“工具(T)">"NuGet 包管理器(N)”>"管理解决方案的 NuGet 程序包“,打开窗口,检查是否把 NuGet 包全部更新到最新版本。

创建之后,务必确保所有 NuGet 包都更新到最新版本!

 3.当项目打开之后,选择如下配置,点击“►”按钮进行调试。

首次开发时,Windows 可能会弹出一个设置窗口,打开“开发人员模式”并关闭设置窗口。

用这个模板,每次创建新的解决方案,用这个解决方案的各个配置中的任何一个,第一次用该配置进行生成时,可能会等很长时间,这是因为 VS 要先下载 Uno Platform 相关的包,需要保持网络开启。

并且,每一个新建的解决方案,对于每一个不同的配置,首次用该配置构建项目时,都要保持网络良好,这是因为第一次构建时 VS 要先下载相关的包,不然会编译或运行出错。

 耐心的等待项目生成。

软件在启动时会显示模板默认的 Uno Platform 的图标,启动时显示软件图标是 WinUI 的特性,你可以用自己的图标换掉。

 4.以 WASM 格式生成来把软件嵌入到网页中。

更改配置为:

 ,点击“► IIS Express”按钮进行调试。

之后,如果是第一次,系统会弹几个窗口,问是否要安装本地调试用的 localhost SSL 证书,一律点“是”“确定”“允许”.

首次生成这类项目时,VS 会先自动下载所需的 “Microsoft.AspNet.Core”等一系列包,需要保持网络开启。

之后,软件会出现在网页中。

5.写代码。

代码一般写在“App.Shared"之中。

现在,演练往窗体“MainPage"中添加代码。

打开”App1.Shared"里的“Mainpage.xaml"

把编辑器中的“App1.Mobile"下拉框改为“App1.UWP"。这或许是为了调出设计器。Uno Platform 是与 UWP 兼容的。

 关闭标签页“MainPage.xaml"。在解决方案资源管理器中重新打开该文件,会发现多了设计器。

把设计器的缩放比例(红圈处)改为 50% 以便设计。

在设计器中添加一个按钮,并在属性窗格中设置该按钮的名称为“Button1",选中写有“Hello, world"的 TextBlock,并在属性窗格中设置该按钮的名称为“TextBlock1"。

在设计器上双击按钮来给按钮增加点击事件。设计器可能会崩溃,没有关系,重启设计器。

 

 在解决方案资源管理器的搜索框中填入”MainPage.xaml.cs”,并打开这个文件。

并修改代码。

private void Button_Click(object sender, RoutedEventArgs e)        {            //在这里填入代码。            TextBlock1.Text = "Hello, you!";        }

 

点击菜单上的“►本地计算机”,进行调试。

当项目生成完毕,会自动运行。

 

点击窗体中的按钮,TextBlock1中的内容会改变。

 

接着尝试其他配置,例如更改配置为“App1.wpf",调试,弹出程序窗体,同样点击窗体中的按钮,TextBlock1中的内容同样会改变。

6.为 Android 手机构建项目

用一个管理员身份的终端(例如 PowerShell)运行“dotnet workload install android”,等待下载安装结束。

例如,在 Windows 11 上,右击开始菜单图标,在右键菜单中选择“Windows 终端(管理员)”来运行管理员身份的 PowerShell。

当终端出现“已成功安装的工作负载 android。”的字样时,表示安装完成。

重启 VS ,再次打开解决方案。

修改配置为如图所示:

 点击菜单上的“►Android Emulator”,进行调试。

 VS 会弹出 Android SDK 许可接受情况的框,点击接受。

 VS 需要一段时间下载安装安卓模拟器等组件。

当安装完成,VS 底部的状态栏写着“就绪”时,再次点击菜单上的“►Android Emulator”,进行调试。

会弹出如下窗口,点击“Create”。

 之后会弹出如下窗口,点击“接受”按钮。

 之后,VS 需要一段时间下载并解压缩模拟器的 ROM。

 VS 处理完毕后,点击“启动”按钮。

 会出现如下对话框,点击“仍要运行”。如果你不嫌麻烦,可以看文档操作。

 等待安卓虚拟机启动。

 不知道为什么,Android Emulator 一直黑屏。这个问题留待日后解决。

自此,演练结束。

 如果是平台相关的代码就写在各自的项目中。

Uno Platform 不是基于原生控件的,它只是以原生用户界面工具包的窗口作为宿主,把内容放在撑满整个窗口的一个 Skia 画布中。

“App1.Mobile"负责 Android 和 iOS 和 Mac OS 平台。

"App1.Skia.Gtk"负责 Linux 等支持 GTK 的平台。

“App1.Skia.Wpf”和“App1.Skia.Wpf.Host"负责支持 Windows 7 和 8 等较旧版本的 Windows。

“App1.UWP”负责支持 UWP 的平台。这是默认值。

“App1.Wasm”负责把软件编译为 WebAssembly 内容,来把软件嵌入到网页中。

 

 常见问题:

问:VS 在“解决方案资源管理器”中用提示我安装其他组件,怎么办?

答:酌情安装。如果你要用“Skia.Wpf”来兼容 Windows 7 等旧版 Windows,需要安装“使用 .NET 的桌面开发”。

问:换了一个编译目标的配置,出现一大堆错误是怎么回事?

答:每一个新建的解决方案,对于每一个不同的配置,首次用该配置构建项目时,都要保持网络良好,这是因为第一次构建时 VS 要先下载相关的包,不然会编译或运行出错。

 

 

 

 

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/983330.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号