快速开始
C# 是微软主导设计的静态强类型面向对象语言,运行在 .NET 运行时上。本文带你从零搭建环境并理解项目结构。
.NET 版本演进速览
| 版本 | 代号 | 发布时间 | 关键变化 |
|---|---|---|---|
| .NET Framework 4.8 | — | 2019 | Windows 独占,传统桌面/ASP.NET |
| .NET Core 3.1 | — | 2019 | 跨平台,LTS |
| .NET 5 | — | 2020 | 统一 Core 和 Framework 的品牌 |
| .NET 6 | — | 2021 | LTS,C# 10 |
| .NET 7 | — | 2022 | STS,C# 11 |
| .NET 8 | — | 2023 | LTS,C# 12 |
| .NET 9 | — | 2024 | STS,C# 13 |
🔬 AutoCAD / Revit 二次开发的关键约束:AutoCAD .NET API 和 Revit API 目前仍基于 .NET Framework 4.8(部分新版本开始支持 .NET 8)。这意味着你写的类库必须以 .NET Framework 4.8 为目标框架,而非较新的 .NET 6/7/8/9。
SDK 安装
- 下载 .NET SDK(含运行时 + 编译器 + CLI 工具)
- 验证安装:
dotnet --version
dotnet --list-sdks
dotnet --list-runtimes💡 AutoCAD/Revit 开发还需要安装对应版本的 .NET Framework 4.8 Developer Pack(通过 Visual Studio Installer → 单个组件 → “.NET Framework 4.8 SDK” / " targeting pack")。
项目结构
一个最小的类库项目(AutoCAD/Revit 二次开发的典型形态):
MyAddin/
├── MyAddin.csproj # 项目文件(MSBuild)
├── MyCommand.cs # 你的代码
└── Properties/
└── AssemblyInfo.cs # 程序集元信息.csproj 文件示例(.NET Framework 4.8 类库)
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net48</TargetFramework>
<OutputType>Library</OutputType>
<LangVersion>8.0</LangVersion>
</PropertyGroup>
<ItemGroup>
<!-- AutoCAD / Revit API 引用在这里添加 -->
<Reference Include="AcDbMgd" />
<Reference Include="AcMgd" />
</ItemGroup>
</Project>🚨 AutoCAD/Revit 的托管 API DLL 必须使用
<Reference>引用(非 NuGet 包),因为它们是随宿主程序分发的 COM 封装程序集。
Hello World
using System;
namespace MyAddin
{
public class MyCommand
{
public void Execute()
{
Console.WriteLine("Hello, AutoCAD!");
}
}
}关键语法速览
// 顶层语句(C# 9+,仅控制台项目)
Console.WriteLine("Hello");
// 命名空间声明(C# 10+ 文件范围命名空间)
namespace MyApp;
// 字符串插值
var name = "Willow";
Console.WriteLine($"Hello, {name}!");
// 空合并操作符
string? s = null;
Console.WriteLine(s ?? "默认值");开发工具
| 工具 | 适用场景 | 费用 |
|---|---|---|
| Visual Studio 2022 Community | AutoCAD/Revit 开发首选 | 免费(个人/小团队) |
| JetBrains Rider | 跨平台偏好 | 付费 |
| VS Code + C# Dev Kit | 轻量编辑 | 免费 |
💡 推荐 Visual Studio 2022 Community +
.NET desktop development工作负载。AutoCAD/Revit 二次开发的调试、附加进程等场景,VS 集成度最佳。
编译器与语言版本
| C# 版本 | .NET 版本 | 核心新特性 |
|---|---|---|
| C# 7.0~7.3 | .NET Framework 4.7~4.8 | 模式匹配、元组、ref 局部变量 |
| C# 8.0 | .NET Core 3.x | Nullable 引用类型、switch 表达式、异步流 |
| C# 9.0 | .NET 5 | Record、init 访问器、顶层语句 |
| C# 10 | .NET 6 | 文件范围命名空间、global using |
| C# 11 | .NET 7 | 原始字符串字面量、列表模式 |
| C# 12 | .NET 8 | 主构造函数、集合表达式 |
🚨 AutoCAD/Revit 二次开发中,目标平台是 .NET Framework 4.8,默认语言版本为 C# 7.3。可以通过
<LangVersion>8.0</LangVersion>手动提升到 C# 8(Nullable 引用类型等),但部分需要运行时支持的 C# 9+ 特性不可用。
调试
AutoCAD/Revit 插件的调试方式是"附加到进程":
- 编译生成
.dll - 启动 AutoCAD / Revit
- VS 菜单 → 调试 → 附加到进程 → 选择
acad.exe/Revit.exe - 在代码中设置断点,执行对应命令
💡 也可以配置
.csproj的启动外部程序,在项目属性 → 调试 → 启动外部程序 中填写acad.exe或Revit.exe路径,F5 即可一键启动调试。