.NET 多平台应用程序 UI (.NET MAUI) 是一个跨平台框架,用于使用 C# 和 XAML 创建本机移动和桌面应用程序,这些应用程序可以从单个共享代码库在 Android、iOS、macOS 和 Windows 上运行。

先决条件

使用 .NET MAUI 安装 .NET 6

  1. 从dotnet/installer下载并运行最新的 .NET 6 安装程序。

    打开终端并检查您是否已准备好安装 .NET MAUI。

    dotnet --version
  2. 使用workload工作负载安装命令安装 .NET MAUI:

    sudo dotnet workload install maui --source https://api.nuget.org/v3/index.json

创建APP应用

创建一个新的应用程序并运行:

dotnet new maui -n "MyMauiApp"
cd MyMauiApp
dotnet build -t:Run -f net6.0-maccatalyst

这将恢复项目依赖项、编译应用程序并启动。-f 参数是“目标框架”。选项包括:

  • net6.0-android
  • net6.0-ios
  • net6.0-maccatalyst
  • net6.0-windows10.0.19041 (mac下不可运行)

要在 Windows 上运行 Windows(UWP)框架,需要安装 Visual Studio 2022 preview。

以 iOS 为目标

为了以 iOS 模拟器(iOS emulator)为目标,您需要提供设备 ID (UUID)。打开 Xcode,然后转到 Windows > 设备和模拟器 (Windows > Devices and Simulators)。右键单击要使用的模拟器并复制“设备标识符(Device Identifier)”。

现在将值附加到参数-p:_DeviceName=:v2:uuid=:

dotnet build -t:Run -f net6.0-ios -p:_DeviceName=:v2:udid=02C556DA-64B8-440B-8F06-F8C56BB7CC22

以安卓为目标

在构建 Android 应用程序之前,请启动模拟器或使用adb connect. 然后命令运行:

dotnet build -t:Run -f net6.0-android

故障排除提示:如果您收到错误提示您需要在 Visual Studio 中设置 JavaSdkDirectory,您可能需要将以下内容添加到项目目录中的文件“Directory.Build.props”中。

<Project>
<PropertyGroup>
<JavaSdkDirectory Condition="'$(JavaSdkDirectory)'=='' and '$(JAVA_HOME_8_X64)'!=''">$(JAVA_HOME_8_X64)</JavaSdkDirectory>
</PropertyGroup>
</Project>

参考资料 https://github.com/dotnet/maui/wiki/macOS-Install

FreeSql QQ群:4336577(已满)、8578575(已满)、52508226(在线)

BA & Blazor QQ群:795206915、675147445


BlazorMaui+bb demo :GitHub | Gitee(仅副本)

在 Mac 上开发 .NET MAUI(全)https://www.cnblogs.com/densen2014/p/16057571.html

在 M1 Mac 上开发 .NET MAUI (iOS) https://www.cnblogs.com/densen2014/p/16057563.html

在 Windows 上开发 .NET MAUI https://docs.microsoft.com/zh-cn/dotnet/maui/get-started/installation


在 Mac 上开发 .NET MAUI的更多相关文章

  1. 在 M1 Mac 上开发 .NET MAUI (iOS)

    在 M1 Mac 上开始使用 .NET MAUI 开发 (iOS) 的最简单方法. .NET 多平台应用程序 UI (.NET MAUI) 是一个跨平台框架,用于使用 C# 和 XAML 创建本机移动 ...

  2. 在Mac上开发使用yeoman构建Asp.net core项目并且实现分层引用

    1.Yeoman? yeoman是一个自动化脚手架工具.它提供很多generator,generator相当于VisualStudio的模板,用来初始化项目.更多的就不多说了,写一遍都写不完,自己看吧 ...

  3. 不借助 Docker Desktop 在Mac上开发容器应用

    镜像下载.域名解析.时间同步请点击 阿里巴巴开源镜像站 Docker Desktop是最为流行的开发者工具,Docker公司在 8/31 宣布对Docker Desktop的用户协议进行了变更,对个人 ...

  4. Tidb go mac 上开发环境搭建

    1.安装golang 运行环境 2.安装lite ide 工具 3.安装dep 包管理工具 4.安装delve debuger 调试工具 我用的是mac hight sierra 10.13 版, 会 ...

  5. 在Mac上搭建React Native开发环境

    概述 前面我们介绍过在window环境下开发React Native项目,今天说说怎么在mac上搭建一个RN的开发环境. 配置mac开发环境 基本环境安装 1.先安装Homebrew:用于安装Node ...

  6. [转] 在Mac上搭建React Native开发环境

    原文链接: http://blog.csdn.net/xiangzhihong8/article/details/53914336 概述 前面我们介绍过在window环境下开发React Native ...

  7. 在Mac上使用Visual Studio Code开发/调试.NET Core代码

    .Net Core 1.0终于发布了,Core的一大卖点就是跨平台.这个跨平台不只是跨平台运行,而且可以跨平台开发.今天抽空研究了下在Mac下如何使用VS Code来开发.NET Core程序,并且调 ...

  8. 在MAC上搭建cordova3.4.0的IOS和android开发环境

    Hello,大家好,今天给大家说说在mac上搭建cordova3.4.0的iOS和Android开发环境,首先下载cordova,地址:https://cordova.apache.org/#down ...

  9. Android开发-mac上使用三星S3做真机调试

    之前一直未使用真机进行Android开发,为准备明天的培训,拿出淘汰下来的s3准备环境,竟然发现无法连接mac,度娘一番找到答案,如下:mac 系统开发android,真机调试解决方案(无数的坑之后吐 ...

随机推荐

  1. PHP 的网站主要攻击方式有哪些?

    1.命令注入(Command Injection)2.eval 注入(Eval Injection)3.客户端脚本攻击(Script Insertion)4.跨网站脚本攻击(Cross Site Sc ...

  2. petite-vue源码剖析-ref的工作原理

    ref内部的工作原理十分简单,其实就是将指令ref.:ref或v-bind:ref标识的元素实例存储到当前作用域的$refs对象中,那么我们就可以通过this.$refs获取对应的元素实例.但由于作用 ...

  3. min_25 筛学习小记

    min_25筛 由 dalao min_25 发明的筛子,据说时间复杂度是极其优秀的 \(O(\frac {n^{\frac 3 4}} {\log n})\),常数还小. 1. 质数 \(k\) 次 ...

  4. 两个宝藏|关于我在github上冲浪时的一个小技巧。

    你好呀,我是歪歪. 前几天在 github 上冲浪的时候,发现了两个宝藏东西. 我也不藏着掖着了,拿出来给大家分享一下. 这两个宝藏是关于 arthas 和 SOFARegistry 的,这两个东西都 ...

  5. BBS项目补充知识(后台文章展示功能)

    BBS项目补充知识 1. 开放 media 文件路径 # 以用户注册页面为例 用户头像文件我们默认时保存在 根路径下的static下的img文件夹 但也可以单独放置在指定路径下 # 根路径下创建 me ...

  6. *****又错一道,不知道为啥。。。 ybt【例5.19】字符串判等

    [题目描述] 判断两个由大小写字母和空格组成的字符串在忽略大小写,且忽略空格后是否相等. [输入] 两行,每行包含一个字符串. [输出] 若两个字符串相等,输出YES,否则输出NO. 代码我觉得没啥问 ...

  7. 5月8日 python学习总结 mysql 建表操作

    一 .创建表的完整语法 create table 表名( 字段名1 类型[(宽度) 约束条件],字段名2 类型[(宽度) 约束条件],字段名3 类型[(宽度) 约束条件]); 解释: 类型:使用限制字 ...

  8. li 与 li 之间有空白间隔是什么原因引起的,有什么解决办法

    li 与 li 之间有空白间隔是什么原因引起的,有什么解决办法 原因 浏览器会把inline元素间的空白字符(空格.换行.Tab等)渲染成一个空格.而为了美观,我们通常是一个 放在一行,这导致 换行后 ...

  9. 面试之Java String 编码相关

    实话说,作为一个多年Java老年程序员,直到近来,在没有决心花时间搞清楚Java String的编码相关问题之前, 自己也都还是似懂非懂,一脸懵逼的.设想如果在面试中,有同学能够条理清晰的回答下面的问 ...

  10. SpringBean的生命周期 以及一些问题总结

    SpringBean的生命周期 一.传统 Bean 的生命周期 new实例化: 可使用了 无引用时,GC回收. 二.Servlet 的生命周期 实例化Servlet对象: init初始化对象: 相应客 ...