文章目录
- 🚀 开篇唠两句
- 一、先搞懂:我们要搭啥?(2026最新版)
- 二、第一步:安装.NET 8 SDK(地基先打好)
- 1. 下载安装(2026最新版)
- 2. 可选:安装Visual Studio 2022(推荐)
- 三、第二步:搭建Semantic Kernel环境(LLM开发核心)
- 1. 创建SK项目(控制台版,最简单)
- 2. 安装OpenAI .NET SDK(调用云端大模型)
- 3. 安装向量库SDK(RAG必备)
- 4. 快速测试:10行代码调用GPT-4o
- 四、第三步:搭建ML.NET环境(传统ML开发)
- 1. 安装ML.NET NuGet包
- 2. 可选:安装ML.NET Model Builder(Visual Studio专用)
- 3. 快速测试:ML.NET Hello World(鸢尾花分类)
- 五、第四步:搭建ONNX Runtime环境(本地模型部署)
- 1. 安装ONNX Runtime NuGet包
- 2. 快速测试:运行ResNet50图像分类
- 六、第五步:可选安装Ollama(本地大模型神器)
- 1. 下载安装Ollama
- 2. 运行本地大模型(Llama 3.2)
- 3. C#调用Ollama(用SK)
- 七、2026年C# AI环境避坑指南(少走弯路)
- 🎯 结尾总结
- 💬 互动一下
目前国内还是很缺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-nCSharpAI_DemocdCSharpAI_Demo# 安装Semantic Kernel最新版(2026稳定版)dotnetaddpackage Microsoft.SemanticKernel--version1.15.02. 安装OpenAI .NET SDK(调用云端大模型)
dotnetaddpackage Azure.AI.OpenAI--version1.0.0-beta.143. 安装向量库SDK(RAG必备)
# Chroma(轻量本地向量库)dotnetaddpackage Microsoft.SemanticKernel.Connectors.Chroma--version1.15.0# Pinecone(云端向量库,可选)dotnetaddpackage Microsoft.SemanticKernel.Connectors.Pinecone--version1.15.04. 快速测试:10行代码调用GPT-4o
打开Program.cs,替换为以下代码(记得替换API Key):
usingMicrosoft.SemanticKernel;usingMicrosoft.SemanticKernel.ChatCompletion;// 1. 构建Kernelvarbuilder=Kernel.CreateBuilder();builder.AddAzureOpenAIChatCompletion("gpt-4o",// 部署名"https://xxx.openai.azure.com/",// 终结点"你的API Key"// 替换为你的Azure OpenAI Key);varkernel=builder.Build();// 2. 获取聊天服务varchat=kernel.GetRequiredService<IChatCompletionService>();varhistory=newChatHistory();history.AddUserMessage("用C#写一个Hello AI程序,2026最新版");// 3. 调用AI并输出结果varresponse=awaitchat.GetChatMessageContentAsync(history);Console.WriteLine("AI回复:"+response.Content);运行:
dotnet run看到AI回复,说明SK环境搭建成功!
四、第三步:搭建ML.NET环境(传统ML开发)
1. 安装ML.NET NuGet包
# 回到项目目录cdCSharpAI_Demo# 安装ML.NET核心包dotnetaddpackage Microsoft.ML--version3.0.1# 安装ML.NET自动训练工具(可选,可视化)dotnetaddpackage Microsoft.ML.AutoML--version0.21.02. 可选:安装ML.NET Model Builder(Visual Studio专用)
- 打开Visual Studio → 扩展 → 管理扩展 → 搜索ML.NET Model Builder→ 安装
- 重启VS后,右键项目 → 添加 → 机器学习,即可可视化训练模型
3. 快速测试:ML.NET Hello World(鸢尾花分类)
创建IrisData.cs:
publicclassIrisData{[LoadColumn(0)]publicfloatSepalLength;[LoadColumn(1)]publicfloatSepalWidth;[LoadColumn(2)]publicfloatPetalLength;[LoadColumn(3)]publicfloatPetalWidth;[LoadColumn(4)]publicstringLabel;}publicclassIrisPrediction{[ColumnName("PredictedLabel")]publicstringPredictedSpecies;}修改Program.cs:
usingMicrosoft.ML;// 1. 创建ML上下文varmlContext=newMLContext();// 2. 加载数据(下载鸢尾花数据集:https://archive.ics.uci.edu/ml/datasets/iris)vardata=mlContext.Data.LoadFromTextFile<IrisData>("iris.data",separator:',');// 3. 划分训练集和测试集vartrainTest=mlContext.Data.TrainTestSplit(data,testFraction:0.2);// 4. 构建训练管道varpipeline=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. 训练模型varmodel=pipeline.Fit(trainTest.TrainSet);// 6. 评估模型varpredictions=model.Transform(trainTest.TestSet);varmetrics=mlContext.MulticlassClassification.Evaluate(predictions);Console.WriteLine($"准确率:{metrics.MacroAccuracy:P2}");// 7. 预测新数据varpredictor=mlContext.Model.CreatePredictionEngine<IrisData,IrisPrediction>(model);varnewFlower=newIrisData{SepalLength=5.1f,SepalWidth=3.5f,PetalLength=1.4f,PetalWidth=0.2f};varprediction=predictor.Predict(newFlower);Console.WriteLine($"预测品种:{prediction.PredictedSpecies}");运行:
dotnet run看到准确率和预测结果,说明ML.NET环境搭建成功!
五、第四步:搭建ONNX Runtime环境(本地模型部署)
1. 安装ONNX Runtime NuGet包
cdCSharpAI_Demo dotnetaddpackage Microsoft.ML.OnnxRuntime--version1.17.0 dotnetaddpackage Microsoft.ML.OnnxRuntime.Managed--version1.17.02. 快速测试:运行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:
usingMicrosoft.ML.OnnxRuntime;usingMicrosoft.ML.OnnxRuntime.Tensors;usingSixLabors.ImageSharp;usingSixLabors.ImageSharp.PixelFormats;usingSixLabors.ImageSharp.Processing;publicclassOnnxImageClassifier{privatereadonlyInferenceSession_session;privatereadonlystring[]_labels=File.ReadAllLines("imagenet_classes.txt");publicOnnxImageClassifier(stringmodelPath){_session=newInferenceSession(modelPath);}publicstringClassifyImage(stringimagePath){// 1. 加载并预处理图片usingvarimage=Image.Load<Rgb24>(imagePath);image.Mutate(x=>x.Resize(224,224));vartensor=newDenseTensor<float>(new[]{1,3,224,224});for(inty=0;y<224;y++){for(intx=0;x<224;x++){varpixel=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. 运行推理varinputs=newList<NamedOnnxValue>{NamedOnnxValue.CreateFromTensor("input",tensor)};usingvarresults=_session.Run(inputs);varoutput=results.First().AsTensor<float>();// 3. 获取预测结果varmaxIndex=output.ToArray().AsSpan().IndexOf(output.ToArray().Max());return_labels[maxIndex];}}修改Program.cs:
varclassifier=newOnnxImageClassifier("resnet50-v2-7.onnx");varresult=classifier.ClassifyImage("dotnet_logo.png");Console.WriteLine($"图片分类结果:{result}");安装ImageSharp:
dotnetaddpackage SixLabors.ImageSharp--version2.1.3运行:
dotnet run看到分类结果,说明ONNX Runtime环境搭建成功!
六、第五步:可选安装Ollama(本地大模型神器)
1. 下载安装Ollama
- 官网:https://ollama.com/
- 一键安装,支持Windows/macOS/Linux
2. 运行本地大模型(Llama 3.2)
ollama run llama3.23. C#调用Ollama(用SK)
dotnetaddpackage Microsoft.SemanticKernel.Connectors.Ollama--version1.15.0修改SK测试代码:
builder.AddOllamaChatCompletion("llama3.2",newUri("http://localhost:11434"));运行,即可调用本地Llama 3.2,无需云端API!
七、2026年C# AI环境避坑指南(少走弯路)
- 版本统一:所有NuGet包尽量用最新稳定版,避免版本冲突
- 路径问题:模型、数据文件放在项目根目录,或用绝对路径
- 权限问题:Windows下用管理员身份运行终端,避免安装失败
- 网络问题:国内安装NuGet包慢,可配置镜像(https://nuget.cdn.azure.cn/v3/index.json)
- 本地模型: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?
环境搭建过程中遇到啥问题了?
评论区留言,我帮你解决!