C#与.NET Core:跨平台开发实战指南

.NET Core是微软推出的开源跨平台框架,结合C#语言可实现Windows、Linux、macOS全平台开发。以下是关键实战步骤:


1. 环境搭建
  • 安装.NET Core SDK
    官网下载对应操作系统的SDK(推荐LTS版本)。
  • 验证安装
    dotnet --version  # 输出版本号即成功
    


2. 创建跨平台应用
  • 新建控制台项目
    dotnet new console -n CrossPlatformApp
    cd CrossPlatformApp
    

  • 项目结构
    CrossPlatformApp/
      ├── Program.cs      # 主程序
      └── CrossPlatformApp.csproj  # 项目配置
    


3. 编写跨平台代码

示例:文件系统操作(自动适配不同OS)

using System;
using System.IO;

class Program
{
    static void Main()
    {
        string path = Path.Combine("data", "test.txt"); // 跨平台路径拼接
        File.WriteAllText(path, "Hello Linux/macOS/Windows!"); 
        Console.WriteLine($"文件已写入: {Path.GetFullPath(path)}");
    }
}


4. 运行与调试
  • 本地运行
    dotnet run  # 自动编译并执行
    

  • 发布独立应用(无需运行时):
    dotnet publish -c Release -r linux-x64  # 生成Linux可执行文件
    

    替换linux-x64win-x64osx-x64即可切换目标平台。

5. 跨平台兼容性技巧
  • 路径处理
    始终使用Path.Combine()代替手动拼接路径。
  • 环境差异
    if (OperatingSystem.IsLinux()) 
        Console.WriteLine("当前系统:Linux");
    

  • 依赖管理
    通过NuGet添加跨平台库(如System.IO.Ports支持串口通信)。

6. 进阶实战:Web API开发
dotnet new webapi -n WebService  # 创建API项目

跨平台启动

// Program.cs
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();
var app = builder.Build();
app.MapControllers();
app.Run();  // 默认监听5000端口(Linux/macOS/Windows通用)


7. 容器化部署(Docker)

Dockerfile示例

FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src
COPY . .
RUN dotnet publish -c Release -o /app

FROM mcr.microsoft.com/dotnet/aspnet:6.0
WORKDIR /app
COPY --from=build /app .
ENTRYPOINT ["dotnet", "WebService.dll"]

构建命令:

docker build -t my-api . && docker run -p 8080:80 my-api


关键优势总结

特性 说明
统一代码库 同一套代码编译到多平台
性能优化 支持AOT编译(NativeAOT)
生态丰富 NuGet库覆盖90%+跨平台场景
云原生友好 无缝集成K8s、Docker、Azure等

提示:使用dotnet add package引入Microsoft.Extensions.PlatformAbstractions可进一步简化平台适配逻辑。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐