0%

macOS 环境 Rider 初始化 C# MAUI环境

前言

之前开发的是Java, 这次希望通过C#编写一些程式,但是两者结构不同, 在此记录

本机环境

Chip: Apple M3 Pro
System: macOS 15.0

安装基本环境

.NET

官方链接: https://dotnet.microsoft.com/zh-cn/download/dotnet
下载选择 macOS Arm64 即可

IDE Rider

官方链接: https://www.jetbrains.com/rider/

项目创建

  1. 创建空文件夹,使用Rider打开, New Solution / 开启Rider, 左侧选择MAUI项目
  2. 设置ProjectName 环境 net8.0 C# MAUI App
  3. 自动生成template文件

预处理

  • 执行如下命令, 否则项目测试启动异常
    1
    sudo xcodebuild -runFirstLaunch
  • 修改Nuget配置, 否则依赖包全部下到默认路径 ~/.nuget/packages
    • 使用VsCode或任何编辑器打开 /Users/用户名/.nuget/NuGet/NuGet.Config
    • 我的默认样式
      1
      2
      3
      4
      5
      6
      <?xml version="1.0" encoding="utf-8"?>
      <configuration>
      <packageSources>
      <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
      </packageSources>
      </configuration>
    • 创建自定义文件夹
      1
      mkdir -p /path/to/your/floder
    • 修改配置为
      1
      2
      3
      4
      5
      6
      7
      8
      9
      <?xml version="1.0" encoding="utf-8"?>
      <configuration>
      <packageSources>
      <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
      </packageSources>
      <config>
      <add key="globalPackagesFolder" value="/path/to/your/floder" />
      </config>
      </configuration>
    • 存储后验证, 应该就是刚刚配置的自定义路径
      1
      dotnet nuget locals global-packages -l

文件基本结构

  • 这里跟Java不同, 不是src 向下, 结构如下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    $ ls -l
    total 64
    -rw-r--r-- 1 swzxsyh staff 653 Oct 6 04:32 App.xaml
    -rw-r--r-- 1 swzxsyh staff 159 Oct 6 04:32 App.xaml.cs
    -rw-r--r-- 1 swzxsyh staff 420 Oct 6 04:32 AppShell.xaml
    -rw-r--r-- 1 swzxsyh staff 127 Oct 6 04:32 AppShell.xaml.cs
    -rw-r--r-- 1 swzxsyh staff 3695 Oct 6 04:32 MyProject.csproj
    -rw-r--r-- 1 swzxsyh staff 1316 Oct 6 04:32 MainPage.xaml
    -rw-r--r-- 1 swzxsyh staff 451 Oct 6 04:32 MainPage.xaml.cs
    -rw-r--r-- 1 swzxsyh staff 545 Oct 6 04:32 MauiProgram.cs
    drwxr-xr-x 7 swzxsyh staff 224 Oct 6 04:32 Platforms
    drwxr-xr-x 3 swzxsyh staff 96 Oct 6 04:32 Properties
    drwxr-xr-x 8 swzxsyh staff 256 Oct 6 04:32 Resources
    drwxr-xr-x 3 swzxsyh staff 96 Oct 6 04:32 bin
    drwxr-xr-x 11 swzxsyh staff 352 Oct 7 02:30 obj
  • Platforms/ 包含不同平台(Android、iOS、macOS、Windows)相关的代码

    • Platforms/Android:Android 平台的特定配置和代码。
    • Platforms/iOS:iOS 平台的特定配置和代码。
  • App.xamlApp.xaml.cs
    NET MAUI 的入口点,类似于 Java 中的 Main 类。可以在这里定义全局资源和应用程序启动逻辑。

  • MainPage.xamlMainPage.xaml.cs:类似于 Java 的视图控制器,定义主页面的 UI 和逻辑。xaml 是用于定义 UI 的文件,而 cs 文件是用来处理 UI 逻辑的 C# 代码。

  • *.csproj 类似于Java中的 pom.xmlbuild.gradle 文件, 负责处理依赖

到这里,点击Run应该就可以正常运行