You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JetBrains Rider中实现C#类库可直接运行调试?

解决方案

方案1:单项目内实现构建/运行双模式(无需额外项目)

这个方案通过修改项目配置和条件编译代码,实现同一项目构建输出类库、运行时自动切换为控制台应用的效果:

  1. 修改.csproj配置
    打开项目的.csproj文件,添加以下配置逻辑:

    <PropertyGroup>
      <!-- 默认构建输出类型为类库 -->
      <OutputType>Library</OutputType>
      <!-- Debug模式下添加控制台运行的编译符号 -->
      <DefineConstants Condition="'$(Configuration)' == 'Debug'">DEBUG;CONSOLE_RUN</DefineConstants>
    </PropertyGroup>
    
    <!-- 触发运行命令时,自动切换为控制台应用并指定入口类 -->
    <PropertyGroup Condition="'$(DesignTimeBuild)' != 'true' and '$(RunConfiguration)' != ''">
      <OutputType>Exe</OutputType>
      <StartupObject>YourNamespace.ConsoleEntry</StartupObject>
    </PropertyGroup>
    
  2. 添加控制台入口代码
    在项目中新建类(如ConsoleEntry.cs),用条件编译包裹入口方法,确保仅在运行模式下编译:

    using System;
    
    namespace YourNamespace
    {
        #if CONSOLE_RUN
        public class ConsoleEntry
        {
            public static void Main(string[] args)
            {
                // 这里编写测试逻辑,直接调用类库核心功能
                var coreService = new YourCoreService();
                coreService.ExecuteTestLogic();
                Console.WriteLine("测试执行完成,按任意键退出...");
                Console.ReadKey();
            }
        }
        #endif
    }
    
  3. Rider启动配置
    在Rider的运行配置中选择当前项目,确保配置的Configuration为Debug,直接点击运行即可自动以控制台模式启动;日常构建时则默认输出类库dll。

方案2:新增独立测试控制台项目(更适合团队协作)

如果觉得单项目配置过于耦合,推荐新增独立的测试控制台项目,这是更简洁的团队协作方案:

  • 在解决方案中添加一个全新的Console App项目(如YourLibrary.TestConsole)
  • 让该控制台项目直接引用你的类库项目
  • 在控制台项目中编写测试代码,调用类库核心逻辑
  • 将控制台项目设为Rider的启动项目,测试时直接运行它;类库项目保持默认配置,正常输出dll供其他项目引用

这个方案无需修改原类库的任何配置,团队成员无需额外操作,完全避免了切换输出类型的繁琐和出错风险。

额外调试技巧

  • 类库中需要输出调试信息时,可使用System.Diagnostics.Debug.WriteLine(),Rider的调试控制台会直接捕获这些输出,无需依赖控制台应用的Console.WriteLine()
  • 若需模拟交互逻辑,可在测试控制台项目中实现交互逻辑,再将参数传递给类库

内容的提问来源于stack exchange,提问作者Zeek Joseph

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 17:32:16