返回「资料来源、摘录与归档」
【ChatGPT】dotNet与Mono
【ChatGPT】dotNet与Mono
note · ChatGPT 问答录 本文保存一次 ChatGPT 问答原始输出,仅作为资料来源;其中结论未自动视为已验证知识,使用前应结合可靠来源复核。
# 【ChatGPT】dotNet与Mono
.NET .NETStandard .Net Framework的区别。

- .NET Framework:
- 这是最初的 .NET 实现,由微软在 2000 年发布。
- 它是 Windows 平台的完整开发框架,包括运行时、库和编译器等。
- 适用于 Windows 桌面应用、Web 应用和服务等。
- 最新的主要版本是 .NET Framework 4.8。
- .NET Core:
- 这是 .NET 的轻量级、模块化和跨平台版本。
- 它旨在支持 Windows、macOS 和 Linux 平台。
- 主要用于服务器和云应用,但也可以用于桌面应用。
- 随着 .NET 5 的发布,.NET Core 和原始的 .NET Framework 合并为一个统一的平台,称为 .NET 5。
- .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 分别对应于上述的哪个版本。
在 Unity 中,Mono 的 API Compatibility Level 设置用于决定你的项目将使用哪个 .NET 版本的功能集。具体来说:
- .NET 4.x:
- 这个选项允许 Unity 项目使用更接近 .NET Framework 4.x 的 API。
- 这意味着你可以使用更多的现代 C# 特性和更多的 .NET 类库。
- 它并不是完整的 .NET Framework 4.x,但提供了接近的 API 覆盖率。
- .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 集,确保了在各种平台上的互操作性。