前言
之前开发的是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/
项目创建
- 创建空文件夹,使用Rider打开, New Solution / 开启Rider, 左侧选择MAUI项目
- 设置ProjectName 环境 net8.0 C# MAUI App
- 自动生成template文件
预处理
- 执行如下命令, 否则项目测试启动异常
1
sudo xcodebuild -runFirstLaunch
- 修改Nuget配置, 否则依赖包全部下到默认路径
~/.nuget/packages
下- 使用VsCode或任何编辑器打开
/Users/用户名/.nuget/NuGet/NuGet.Config
- 我的默认样式
1
2
3
4
5
6
<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
<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
- 使用VsCode或任何编辑器打开
文件基本结构
这里跟Java不同, 不是src 向下, 结构如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15ls -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 objPlatforms/
包含不同平台(Android、iOS、macOS、Windows)相关的代码- Platforms/Android:Android 平台的特定配置和代码。
- Platforms/iOS:iOS 平台的特定配置和代码。
App.xaml
和App.xaml.cs
NET MAUI 的入口点,类似于 Java 中的 Main 类。可以在这里定义全局资源和应用程序启动逻辑。MainPage.xaml
和MainPage.xaml.cs
:类似于 Java 的视图控制器,定义主页面的 UI 和逻辑。xaml 是用于定义 UI 的文件,而 cs 文件是用来处理 UI 逻辑的 C# 代码。*.csproj 类似于Java中的
pom.xml
或build.gradle
文件, 负责处理依赖
到这里,点击Run应该就可以正常运行