目前国内还是很缺AI人才的,希望更多人能真正加入到AI行业,共同促进行业进步。想要系统学习AI知识的朋友可以看看我的教程http://blog.csdn.net/jiangjunshow,教程通俗易懂,风趣幽默,从深度学习基础原理到各领域实战应用都有讲解。

🚀 开篇唠两句

各位C#老铁,上一篇我们画好了2026年C# AI的路线图,今天直接开干——环境一键搭建

C# AI环境搭建主打一个简单、干净、一步到位。这篇用大白话+复制粘贴级命令,带你把.NET 8 + Semantic Kernel + ML.NET + ONNX Runtime 全套AI开发环境搭好,10分钟搞定,直接开写AI代码!


一、先搞懂:我们要搭啥?(2026最新版)

一句话:一套能跑LLM、传统ML、本地模型的C# AI全能环境
核心三件套(必装):

  • .NET 8 SDK:地基,所有C# AI开发的基础
  • Semantic Kernel (SK):大模型调度神器,管LLM、RAG、Agent
  • ML.NET:C#原生机器学习库,做分类、回归、异常检测
  • ONNX Runtime:本地模型运行时,跑Llama、ResNet等预训练模型
  • Ollama(可选):本地大模型管理器,一键跑Llama 3.2、Phi-4

二、第一步:安装.NET 8 SDK(地基先打好)

1. 下载安装(2026最新版)
  • 官网下载:https://dotnet.microsoft.com/zh-cn/download/dotnet/8.0
  • 选择对应系统(Windows/macOS/Linux),一路下一步即可
  • 验证安装:打开终端/CMD,输入
dotnet --version

出现 8.0.x 版本号,说明安装成功!

2. 可选:安装Visual Studio 2022(推荐)
  • 下载:https://visualstudio.microsoft.com/zh-hans/vs/
  • 安装时勾选 .NET桌面开发ASP.NET和Web开发数据存储和处理
  • 好处:自带ML.NET Model Builder可视化工具,调试AI代码更方便

三、第二步:搭建Semantic Kernel环境(LLM开发核心)

1. 创建SK项目(控制台版,最简单)

打开终端,依次输入:

# 创建控制台项目
dotnet new console -n CSharpAI_Demo
cd CSharpAI_Demo

# 安装Semantic Kernel最新版(2026稳定版)
dotnet add package Microsoft.SemanticKernel --version 1.15.0
2. 安装OpenAI .NET SDK(调用云端大模型)
dotnet add package Azure.AI.OpenAI --version 1.0.0-beta.14
3. 安装向量库SDK(RAG必备)
# Chroma(轻量本地向量库)
dotnet add package Microsoft.SemanticKernel.Connectors.Chroma --version 1.15.0

# Pinecone(云端向量库,可选)
dotnet add package Microsoft.SemanticKernel.Connectors.Pinecone --version 1.15.0
4. 快速测试:10行代码调用GPT-4o

打开 Program.cs,替换为以下代码(记得替换API Key):

using Microsoft.SemanticKernel;
using Microsoft.SemanticKernel.ChatCompletion;

// 1. 构建Kernel
var builder = Kernel.CreateBuilder();
builder.AddAzureOpenAIChatCompletion(
    "gpt-4o",          // 部署名
    "https://xxx.openai.azure.com/", // 终结点
    "你的API Key"      // 替换为你的Azure OpenAI Key
);
var kernel = builder.Build();

// 2. 获取聊天服务
var chat = kernel.GetRequiredService<IChatCompletionService>();
var history = new ChatHistory();
history.AddUserMessage("用C#写一个Hello AI程序,2026最新版");

// 3. 调用AI并输出结果
var response = await chat.GetChatMessageContentAsync(history);
Console.WriteLine("AI回复:" + response.Content);

运行:

dotnet run

看到AI回复,说明SK环境搭建成功!


四、第三步:搭建ML.NET环境(传统ML开发)

1. 安装ML.NET NuGet包
# 回到项目目录
cd CSharpAI_Demo

# 安装ML.NET核心包
dotnet add package Microsoft.ML --version 3.0.1

# 安装ML.NET自动训练工具(可选,可视化)
dotnet add package Microsoft.ML.AutoML --version 0.21.0
2. 可选:安装ML.NET Model Builder(Visual Studio专用)
  • 打开Visual Studio → 扩展 → 管理扩展 → 搜索 ML.NET Model Builder → 安装
  • 重启VS后,右键项目 → 添加 → 机器学习,即可可视化训练模型
3. 快速测试:ML.NET Hello World(鸢尾花分类)

创建 IrisData.cs

public class IrisData
{
    [LoadColumn(0)] public float SepalLength;
    [LoadColumn(1)] public float SepalWidth;
    [LoadColumn(2)] public float PetalLength;
    [LoadColumn(3)] public float PetalWidth;
    [LoadColumn(4)] public string Label;
}

public class IrisPrediction
{
    [ColumnName("PredictedLabel")] public string PredictedSpecies;
}

修改 Program.cs

using Microsoft.ML;

// 1. 创建ML上下文
var mlContext = new MLContext();

// 2. 加载数据(下载鸢尾花数据集:https://archive.ics.uci.edu/ml/datasets/iris)
var data = mlContext.Data.LoadFromTextFile<IrisData>("iris.data", separator:',');

// 3. 划分训练集和测试集
var trainTest = mlContext.Data.TrainTestSplit(data, testFraction: 0.2);

// 4. 构建训练管道
var pipeline = mlContext.Transforms.Conversion.MapValueToKey("Label")
    .Append(mlContext.Transforms.Concatenate("Features", "SepalLength", "SepalWidth", "PetalLength", "PetalWidth"))
    .Append(mlContext.MulticlassClassification.Trainers.SdcaMaximumEntropy("Label", "Features"))
    .Append(mlContext.Transforms.Conversion.MapKeyToValue("PredictedLabel"));

// 5. 训练模型
var model = pipeline.Fit(trainTest.TrainSet);

// 6. 评估模型
var predictions = model.Transform(trainTest.TestSet);
var metrics = mlContext.MulticlassClassification.Evaluate(predictions);
Console.WriteLine($"准确率:{metrics.MacroAccuracy:P2}");

// 7. 预测新数据
var predictor = mlContext.Model.CreatePredictionEngine<IrisData, IrisPrediction>(model);
var newFlower = new IrisData { SepalLength = 5.1f, SepalWidth = 3.5f, PetalLength = 1.4f, PetalWidth = 0.2f };
var prediction = predictor.Predict(newFlower);
Console.WriteLine($"预测品种:{prediction.PredictedSpecies}");

运行:

dotnet run

看到准确率和预测结果,说明ML.NET环境搭建成功!


五、第四步:搭建ONNX Runtime环境(本地模型部署)

1. 安装ONNX Runtime NuGet包
cd CSharpAI_Demo
dotnet add package Microsoft.ML.OnnxRuntime --version 1.17.0
dotnet add package Microsoft.ML.OnnxRuntime.Managed --version 1.17.0
2. 快速测试:运行ResNet50图像分类
  • 下载ResNet50 ONNX模型:https://github.com/onnx/models/raw/main/vision/classification/resnet/model/resnet50-v2-7.onnx
  • 下载测试图片:https://upload.wikimedia.org/wikipedia/commons/thumb/7/7d/Microsoft_.NET_logo.svg/200px-Microsoft_.NET_logo.svg.png
  • 将模型和图片放入项目根目录

创建 OnnxImageClassifier.cs

using Microsoft.ML.OnnxRuntime;
using Microsoft.ML.OnnxRuntime.Tensors;
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Processing;

public class OnnxImageClassifier
{
    private readonly InferenceSession _session;
    private readonly string[] _labels = File.ReadAllLines("imagenet_classes.txt");

    public OnnxImageClassifier(string modelPath)
    {
        _session = new InferenceSession(modelPath);
    }

    public string ClassifyImage(string imagePath)
    {
        // 1. 加载并预处理图片
        using var image = Image.Load<Rgb24>(imagePath);
        image.Mutate(x => x.Resize(224, 224));
        var tensor = new DenseTensor<float>(new[] { 1, 3, 224, 224 });

        for (int y = 0; y < 224; y++)
        {
            for (int x = 0; x < 224; x++)
            {
                var pixel = image[x, y];
                tensor[0, 0, y, x] = (pixel.R / 255f - 0.485f) / 0.229f;
                tensor[0, 1, y, x] = (pixel.G / 255f - 0.456f) / 0.224f;
                tensor[0, 2, y, x] = (pixel.B / 255f - 0.406f) / 0.225f;
            }
        }

        // 2. 运行推理
        var inputs = new List<NamedOnnxValue> { NamedOnnxValue.CreateFromTensor("input", tensor) };
        using var results = _session.Run(inputs);
        var output = results.First().AsTensor<float>();

        // 3. 获取预测结果
        var maxIndex = output.ToArray().AsSpan().IndexOf(output.ToArray().Max());
        return _labels[maxIndex];
    }
}

修改 Program.cs

var classifier = new OnnxImageClassifier("resnet50-v2-7.onnx");
var result = classifier.ClassifyImage("dotnet_logo.png");
Console.WriteLine($"图片分类结果:{result}");

安装ImageSharp:

dotnet add package SixLabors.ImageSharp --version 2.1.3

运行:

dotnet run

看到分类结果,说明ONNX Runtime环境搭建成功!


六、第五步:可选安装Ollama(本地大模型神器)

1. 下载安装Ollama
  • 官网:https://ollama.com/
  • 一键安装,支持Windows/macOS/Linux
2. 运行本地大模型(Llama 3.2)
ollama run llama3.2
3. C#调用Ollama(用SK)
dotnet add package Microsoft.SemanticKernel.Connectors.Ollama --version 1.15.0

修改SK测试代码:

builder.AddOllamaChatCompletion("llama3.2", new Uri("http://localhost:11434"));

运行,即可调用本地Llama 3.2,无需云端API!


七、2026年C# AI环境避坑指南(少走弯路)

  1. 版本统一:所有NuGet包尽量用最新稳定版,避免版本冲突
  2. 路径问题:模型、数据文件放在项目根目录,或用绝对路径
  3. 权限问题:Windows下用管理员身份运行终端,避免安装失败
  4. 网络问题:国内安装NuGet包慢,可配置镜像(https://nuget.cdn.azure.cn/v3/index.json)
  5. 本地模型:Ollama默认存C盘,可修改环境变量 OLLAMA_MODELS 到其他盘

🎯 结尾总结

2026年C# AI环境搭建,真的很简单

  • .NET 8:地基,10分钟装好
  • Semantic Kernel:LLM调度,1行命令安装
  • ML.NET:传统ML,原生支持,无需Python
  • ONNX Runtime:本地模型,一键运行
  • Ollama:本地大模型,隐私友好,免费好用

跟着这篇文章,复制粘贴命令,10分钟搞定全套环境,直接进入AI开发实战!


💬 互动一下

你用的是Windows/macOS/Linux?
环境搭建过程中遇到啥问题了?
评论区留言,我帮你解决!


在这里插入图片描述

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐