使用 .NET
ServBay 为 .NET 开发者在 macOS 上提供了一个便捷、高效的开发环境。通过 ServBay 的软件包管理系统,您可以轻松安装、管理和运行多个 .NET SDK 版本,包括现代的 .NET (即 .NET Core 及后续版本) 和经典的 Mono 框架,以满足不同项目的需求。
概述
.NET 平台历史与 macOS 支持
.NET 是一个由微软开发的多功能开发平台。它的历史和版本演进对理解 macOS 上的支持至关重要:
.NET Framework (原始版本): 最初于 2002 年发布的 .NET Framework 是微软的旗舰开发平台,但主要设计用于 Windows 系统。它包含了公共语言运行时 (CLR) 和一个庞大的类库 (FCL)。直接在 macOS 上运行 .NET Framework 应用通常是不可能的。
Mono (跨平台先驱): 为了将 .NET 应用带到 Linux 和 macOS 等非 Windows 平台,社区(最初由 Ximian 发起,后被 Novell 及 Xamarin/Microsoft 支持)开发了 Mono。Mono 是 .NET Framework 的一个开源、跨平台实现。它允许开发者在 macOS 和 Linux 上运行和开发原本为 .NET Framework 编写的应用程序(尤其是 C# 应用)。对于需要在 macOS 上运行旧版 .NET Framework 应用或库的场景,Mono 至今仍有其价值。
.NET Core / .NET 5+ (现代跨平台标准): 认识到跨平台的重要性,微软从头开始设计了 .NET Core。它是一个现代、高性能、开源且完全跨平台的 .NET 实现,支持 Windows, macOS 和 Linux。.NET Core 3.1 之后,微软将其重新命名为 .NET(从版本 5 开始,跳过 4 以避免与 .NET Framework 4.x 混淆)。现在,当我们提到 .NET SDK 时,通常指的就是这个现代的、跨平台的版本(.NET 5, 6, 7, 8, 9, 10 等)。这是微软推荐用于所有新应用开发的平台,包括在 macOS 上的开发。
ServBay 对 .NET 的支持
ServBay 理解 .NET 的这段历史和开发者的多样化需求,因此提供了:
- 现代 .NET SDK 软件包: 包含 .NET (Core) 的各个版本(如 .NET SDK 2.0 至 10.0),让您可以使用最新的 C#, F# 和 ASP.NET Core 进行跨平台开发。
- Mono 软件包: 提供 Mono 运行时(如 Mono 6),以支持需要在 macOS 上运行或开发的基于 .NET Framework 的旧项目或特定库,包括对旧版 ASP.NET (Web Forms, System.Web MVC) 的有限支持。
- 并行安装: 您可以同时安装多个 .NET SDK 版本和 Mono。
- 项目级版本控制: 使用
.servbay.config
文件为每个项目指定所需的现代 .NET SDK 版本。 - 简化管理: 通过 ServBay 的图形界面直观地查看、安装和卸载各个 SDK 和 Mono 版本。
访问 .NET 软件包
- 打开 ServBay 应用程序。
- 在左侧导航栏中,点击
软件包 (Packages)
。 - 在
软件包
页面中,向下滚动或在左侧细分列表中选择Languages
->.NET
。 - 右侧区域将显示所有可用的 .NET SDK 和 Mono 软件包列表。
安装 .NET SDK
软件包列表清晰地展示了每个 .NET SDK 版本的状态:
- Package Name: 软件包的名称,如
.NET SDK 8.0
或Mono 6
。 - Version: 该软件包的具体版本号。
- Status: 显示
Installed
(已安装) 或Not Installed
(未安装)。 - Control: 提供操作按钮。
要安装一个尚未安装的 .NET SDK 版本(例如 .NET SDK 10.0
):
- 在列表中找到目标版本。
- 确认其状态为
Not Installed
。 - 点击该行最右侧的 下载/安装 (Download/Install) 图标(通常是一个向下的箭头)。
- ServBay 将开始下载并安装选定的 SDK 版本。这可能需要一些时间,具体取决于您的网络连接速度和 SDK 的大小。
- 安装成功后,该版本的状态将变为
Installed
,并且控制图标会变为 卸载 (Uninstall) 图标(垃圾桶)。
管理已安装的 SDK
- 查看已安装版本: 列表中的
Installed
状态清晰地标示了您当前环境中已安装的所有 .NET SDK 和 Mono 版本。 - 卸载 SDK: 如果您不再需要某个已安装的 SDK 版本,只需点击其对应的 卸载 (Uninstall) 图标(垃圾桶),并确认操作即可将其从系统中移除。
使用已安装的 .NET SDK
ServBay 在安装 .NET SDK 后,通常会将其对应的 dotnet
命令行工具添加到系统的 PATH 环境变量中(当 ServBay 环境激活时)。这意味着您可以在 macOS 的终端 (Terminal) 中直接使用 dotnet
命令。
常用命令示例:
检查可用的 SDK 版本: 打开终端,运行:
bashdotnet --list-sdks
1这将列出 ServBay 管理的所有已安装的 .NET SDK 版本及其安装路径。
检查当前活动的 SDK 版本 (通常是最新安装或全局配置的版本):
bashdotnet --version
1创建新的控制台应用程序 (使用默认 SDK):
bash# 创建一个名为 MyConsoleApp 的项目目录 mkdir MyConsoleApp cd MyConsoleApp # 使用默认 SDK 创建新的控制台项目 dotnet new console
1
2
3
4
5
6运行应用程序:
bashdotnet run
1使用特定 SDK 版本 (如果需要): 如果您的项目需要特定版本的 SDK,您可以通过
global.json
文件来指定。在项目根目录下创建一个global.json
文件,内容类似:json{ "sdk": { "version": "8.0.408" // 指定您已安装且项目需要的 SDK 版本 } }
1
2
3
4
5当您在该项目目录下运行
dotnet
命令时,它将优先使用global.json
中指定的 SDK 版本。
Mono 支持
除了标准的 .NET SDK,ServBay 还提供了 Mono 的安装选项。Mono 是 .NET Framework 的开源、跨平台实现。如果您需要运行或开发依赖于 .NET Framework 特定功能的应用程序,可以在 ServBay 中安装并使用 Mono。安装和卸载 Mono 的过程与 .NET SDK 完全相同。
Mono 主要用于运行为 .NET Framework 编译的程序 (.exe
文件) 或使用需要 Mono 环境的特定工具,也包括运行旧版的 ASP.NET 应用。
检查 Mono 版本:
bashmono --version
1运行 .NET Framework 可执行文件: 假设您有一个为 .NET Framework 编译的
LegacyApp.exe
:bashmono LegacyApp.exe
1运行旧版 ASP.NET 应用 (有限支持): Mono 包含一个名为
xsp
的简单 Web 服务器,可以用于在开发环境中运行旧版的 ASP.NET Web Forms 或 System.Web MVC 应用。也可以通过Nginx
+FastCGI
或者Apache
+mod_mono
集成。重要提示:
- 这种方式对 ASP.NET Framework 的兼容性有限,并非所有应用都能完美运行,尤其依赖 Windows 特定功能的应用。
- 性能通常不如在 Windows/IIS 上运行。
- 不推荐用于新项目开发。 现代 Web 开发应使用 ASP.NET Core。
- ServBay 提供了完整的文档指导:如何在 macOS 下运行 ASP.NET Framework 4.x 网站。
如果确实需要运行(例如测试或维护),可能需要类似命令(具体取决于应用和配置):
bash# 示例:在特定目录下启动 xsp 服务器 # cd /Applications/ServBay/www/your_legacy_aspnet_app # xsp4 --port 8080 # (xsp4 对应 .NET 4.x)
1
2
3
集成 Web 服务器 (ASP.NET Core)
使用 ServBay 安装的 .NET SDK,您可以开发 ASP.NET Core Web 应用程序。部署这些应用程序时,您可以利用 ServBay 内置的 Web 服务器(如 Nginx, Caddy, 或 Apache):
- 使用
dotnet publish
命令发布您的 ASP.NET Core 应用。 - 在 ServBay 中添加一个新的网站 (Website)。
- 配置该网站,使其作为反向代理,将请求转发到您的 ASP.NET Core 应用程序正在监听的 Kestrel 服务器端口(例如
http://localhost:5000
)。具体的反向代理配置方法取决于您选择的 Web 服务器(Nginx, Caddy, 或 Apache)。
请参考 ServBay 关于添加网站和配置反向代理的相关文档。
总结
ServBay 极大地简化了 macOS 上 .NET 开发环境的搭建和管理。通过其直观的界面,开发者可以轻松安装、切换和移除多个 .NET SDK 版本及 Mono,从而更专注于 C#, F#, 和 ASP.NET Core 应用程序的开发和测试。