---
title: "【ChatGPT】dotNet与Mono"
author: "Perrin Yong"
author_profile: https://www.pystone.net/profile/
published_by: "Perrin Yong"
canonical: https://www.pystone.net/notes/chatgpt-dotnet-vs-mono/
type: note
content_role: unspecified
visibility: public
id_stability: rename-stable
source_path: "99-资料来源、摘录与归档/02-AI对话与研究原始输出/【ChatGPT】dotNet与Mono.md"
content_hash: 56f74539a588d3744004509c89030f347b254f4657eade525222457e91828f34
knowledge_version: 224c990773de.5fa8af6e39fa
site_commit: 224c990773de166d23a886306577dd90379529ce
notes_commit: 5fa8af6e39fa3891d1b9b4832bfa6c4e0ecaaf0a
---
# 【ChatGPT】dotNet与Mono

> **note · ChatGPT 问答录**
> 本文保存一次 ChatGPT 问答原始输出，仅作为资料来源；其中结论未自动视为已验证知识，使用前应结合可靠来源复核。


﻿# 【ChatGPT】dotNet与Mono


.NET .NETStandard .Net Framework的区别。
![assets/image-20230819121447990.png](/media/ba76b4ef2a1f86de63e4.png)

1. **.NET Framework**:
    - 这是最初的 .NET 实现，由微软在 2000 年发布。
    - 它是 Windows 平台的完整开发框架，包括运行时、库和编译器等。
    - 适用于 Windows 桌面应用、Web 应用和服务等。
    - 最新的主要版本是 .NET Framework 4.8。
2. **.NET Core**:
    - 这是 .NET 的轻量级、模块化和跨平台版本。
    - 它旨在支持 Windows、macOS 和 Linux 平台。
    - 主要用于服务器和云应用，但也可以用于桌面应用。
    - 随着 .NET 5 的发布，.NET Core 和原始的 .NET Framework 合并为一个统一的平台，称为 .NET 5。
3. **.NET Standard**:
    - 这不是一个实际的框架实现，而是一种规范或接口。
    - 它定义了一组 API，这些 API 期望在所有 .NET 实现中可用。
    - 你可以将 .NET Standard 看作是 .NET 实现（如 .NET Framework、.NET Core、Xamarin）之间的桥梁。当你针对 .NET Standard 编写代码时，你可以确保代码在所有这些实现中都能运行。
    - 它的主要目的是使库开发者能够开发跨所有 .NET 实现工作的库。

总结：
- .NET Framework 是原始的、完整的、仅限 Windows 的 .NET 实现。
- .NET Core 是 .NET 的轻量级、跨平台版本。
- .NET 5 是 .NET Core 和 .NET Framework 的合并，并将在未来成为主要的 .NET 版本。
- .NET Standard 是一种规范，旨在使跨所有 .NET 实现工作的代码开发成为可能。

Unity 的mono Api Compatibility Level中的.NET4.x 和.NET Standard 2 分别对应于上述的哪个版本。
![assets/image-20230819121507239.png](/media/f86fa0b36fbe02d02ac8.png)
在 Unity 中，Mono 的 API Compatibility Level 设置用于决定你的项目将使用哪个 .NET 版本的功能集。具体来说：

1. **.NET 4.x**:
    - 这个选项允许 Unity 项目使用更接近 .NET Framework 4.x 的 API。
    - 这意味着你可以使用更多的现代 C# 特性和更多的 .NET 类库。
    - 它并不是完整的 .NET Framework 4.x，但提供了接近的 API 覆盖率。
2. **.NET Standard 2.0**:
    - 这个选项是基于 .NET Standard 2.0 规范的。
    - .NET Standard 是一个规范，定义了跨各种 .NET 实现（如 .NET Framework、.NET Core 和 Xamarin）应有的 API 集。
    - 当你为 Unity 项目选择这个选项时，你的代码将在遵循 .NET Standard 2.0 的任何平台上工作。这使得库的重用和跨平台开发变得更容易。
总结来说：
- Unity 中的 ".NET 4.x" 更接近上述的 **.NET Framework**。
- Unity 中的 ".NET Standard 2.0" 对应于上述的 **.NET Standard**。

值得注意的是，这些选项主要涉及到你可以在 Unity 项目中使用的 API。例如，选择 .NET 4.x 通常允许更多的 C# 7.x 和 8.x 特性，而 .NET Standard 2.0 为你提供了一个稳定且广泛受支持的 API 集，确保了在各种平台上的互操作性。
