如何用 VS Code + C# Dev Kit 创建类库项目并在主项目中引用它?

如何用 VS Code + C# Dev Kit 创建类库项目并在主项目中引用它?

1. 准备工作

确保已安装:

  • C# Dev Kit 扩展
  • .NET SDK (运行 dotnet --version 确认)

2. 创建解决方案和项目

方式一:使用命令行创建

bash 复制代码
# 1. 创建解决方案目录
mkdir MySolution
cd MySolution

# 2. 创建解决方案
dotnet new sln -n MySolution

# 3. 创建控制台主项目
dotnet new console -n ConsoleApp

# 4. 创建类库项目
dotnet new classlib -n ClassLibrary

# 5. 将项目添加到解决方案
dotnet sln add ConsoleApp/ConsoleApp.csproj
dotnet sln add ClassLibrary/ClassLibrary.csproj

# 6. 添加项目引用
dotnet add ConsoleApp/ConsoleApp.csproj reference ClassLibrary/ClassLibrary.csproj

方式二:使用 VS Code GUI 创建

  1. 打开命令面板 (Ctrl+Shift+P)

  2. 创建解决方案

    复制代码
    .NET: Create New Solution
  3. 选择项目模板

    • 先选择 "Console Application"
    • 命名项目为 ConsoleApp
  4. 再添加类库项目

    • 右键解决方案 → "Add New Project"
    • 选择 "Class Library"
    • 命名项目为 ClassLibrary

3. 项目结构

完成后目录结构应如下:

复制代码
MySolution/
├── MySolution.sln
├── ConsoleApp/
│   ├── ConsoleApp.csproj
│   ├── Program.cs
│   └── ...
└── ClassLibrary/
    ├── ClassLibrary.csproj
    ├── Class1.cs
    └── ...

4. 配置项目引用

如果使用命令行已添加引用,跳过此步

如果需要在 GUI 中添加引用:

  1. 打开解决方案视图(左侧边栏)
  2. 右键 ConsoleApp 项目 → "Add Project Reference"
  3. 勾选 ClassLibrary 项目

或者在 ConsoleApp.csproj 中手动添加:

xml 复制代码
<ItemGroup>
  <ProjectReference Include="../ClassLibrary/ClassLibrary.csproj" />
</ItemGroup>

5. 编写代码示例

ClassLibrary/Class1.cs

csharp 复制代码
namespace ClassLibrary
{
    public class Calculator
    {
        public int Add(int a, int b) => a + b;
        public int Multiply(int a, int b) => a * b;
    }
}

ConsoleApp/Program.cs

csharp 复制代码
using ClassLibrary;

var calculator = new Calculator();
Console.WriteLine($"3 + 5 = {calculator.Add(3, 5)}");
Console.WriteLine($"3 * 5 = {calculator.Multiply(3, 5)}");

6. 构建和运行

方法一:使用 VS Code

  1. F5 直接运行(已配置好调试)
  2. 或使用命令面板执行 .NET: Run Project

方法二:使用命令行

bash 复制代码
cd ConsoleApp
dotnet run

7. 调试配置

VS Code 会自动生成 .vscode/launch.json,配置类似:

json 复制代码
{
  "configurations": [
    {
      "name": ".NET Core Launch (console)",
      "type": "coreclr",
      "request": "launch",
      "preLaunchTask": "build",
      "program": "${workspaceFolder}/ConsoleApp/bin/Debug/net8.0/ConsoleApp.dll",
      "args": [],
      "cwd": "${workspaceFolder}/ConsoleApp"
    }
  ]
}

常见问题解决

  1. 找不到命名空间

    • 确保类库是 public 访问级别
    • 重新构建:dotnet build
  2. 项目引用未生效

    bash 复制代码
    # 清理并重新构建
    dotnet clean
    dotnet build
  3. VS Code 未检测到更改

    • 重启 VS Code
    • 重新加载窗口 (Ctrl+Shift+P → "Developer: Reload Window")

建议的工作流程

  1. 始终从解决方案根目录打开

    bash 复制代码
    code MySolution
  2. 使用解决方案视图管理项目

    • 添加/移除项目
    • 管理项目引用
    • 查看项目依赖
  3. 利用 C# Dev Kit 功能

    • 测试资源管理器:运行单元测试
    • 依赖关系图:可视化项目依赖
    • IntelliCode:AI 辅助编码

这样你就有了一个完整的工作环境,可以在类库中编写共享代码,在控制台程序中使用它。

相关推荐
weixin_307779134 小时前
Jenkins Pipeline: Basic Steps 插件详解
开发语言·ci/cd·自动化·jenkins·etl
柯南二号5 小时前
【后端】【Java】RESTful书面应该如何写
java·开发语言·restful
JIngJaneIL5 小时前
基于Java+ vueOA工程项目管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot·后端
tang&5 小时前
Qt 基础教程:从初识到信号槽机制
开发语言·qt
蓝鲸屿5 小时前
JS基础第九天——对象(2)+Random
开发语言·前端·javascript
李绍熹5 小时前
C语言数组与指针示例
c语言·开发语言
William数据分析5 小时前
JavaScript 语法零基础入门:从变量到异步(附 Python 语法对比)
开发语言·javascript·python
coderxiaohan5 小时前
【C++】无序容器unordered_set和unordered_map的使用
开发语言·c++
William_cl5 小时前
【CSDN 专栏】C# ASP.NET控制器过滤器:自定义 ActionFilterAttribute 实战(避坑 + 图解)
c#·asp.net·状态模式