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

.NET项目结构解析及Advent of Code每日独立运行配置方法

.NET 实现 Advent of Code 每日代码独立运行的配置方案

针对你想为Advent of Code每日题目创建独立可运行代码的需求,下面提供三种实用的.NET配置方案,对应不同的使用场景:

方案一:多控制台项目结构(最接近Python脚本独立运行的体验)

这种方式每个Day对应一个独立的控制台项目,完全隔离,运行逻辑和python3 day1.py一致。

项目结构

AdventOfCode2024/
├── AdventOfCode2024.sln          # 解决方案文件,统一管理所有Day项目
├── Day01/
│   ├── Day01.csproj              # Day1的项目配置文件
│   └── Solution.cs               # Day1的解题代码
└── Day02/
    ├── Day02.csproj
    └── Solution.cs

配置步骤

  1. 初始化解决方案:在终端执行
    dotnet new sln -n AdventOfCode2024
    cd AdventOfCode2024
    
  2. 创建单个Day项目:以Day01为例
    dotnet new console -n Day01
    
    进入Day01文件夹,将默认生成的Program.cs重命名为Solution.cs,写入你的解题代码(.NET 6+支持顶级语句,无需写类和Main方法)。
  3. 将Day项目添加到解决方案:
    dotnet sln add Day01/Day01.csproj
    
  4. 重复创建后续Day项目:对Day02、Day03等重复步骤2-3。
  5. 运行指定Day的代码:
    # 运行Day01
    dotnet run --project Day01/Day01.csproj
    # 运行Day02
    dotnet run --project Day02/Day02.csproj
    
    也可以在IDE(如VS/VS Code)中选中对应Day项目,设为启动项后直接运行。

方案二:单项目多入口结构(减少项目数量)

如果不想创建太多独立项目,可以在单个控制台项目中为每个Day配置独立入口点。

项目结构

AdventOfCode2024/
├── AdventOfCode2024.csproj
└── Days/
    ├── Day01/
    │   └── Solution.cs
    └── Day02/
        └── Solution.cs

配置步骤

  1. 创建单个控制台项目:
    dotnet new console -n AdventOfCode2024
    cd AdventOfCode2024
    
  2. 创建Day文件夹和代码文件:在项目内新建Days目录,每个Day对应子文件夹和Solution.cs,注意每个文件要包含命名空间和显式的Main方法(避免顶级语句的自动类名冲突):
    // Days/Day01/Solution.cs
    namespace Days.Day01;
    
    public class Solution
    {
        public static void Main()
        {
            // Day1解题代码
            Console.WriteLine("Day 1 Result: ...");
        }
    }
    
  3. 修改项目配置文件(.csproj):添加条件编译的启动项配置,指定每个Day对应的入口类:
    <Project Sdk="Microsoft.NET.Sdk">
      <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>net8.0</TargetFramework>
        <ImplicitUsings>enable</ImplicitUsings>
        <Nullable>enable</Nullable>
      </PropertyGroup>
    
      <!-- 引入所有Day的代码文件 -->
      <ItemGroup>
        <Compile Include="Days/**/*.cs" />
      </ItemGroup>
    
      <!-- 为每个Day配置启动入口 -->
      <PropertyGroup Condition="'$(Day)' == '01'">
        <StartupObject>Days.Day01.Solution</StartupObject>
      </PropertyGroup>
      <PropertyGroup Condition="'$(Day)' == '02'">
        <StartupObject>Days.Day02.Solution</StartupObject>
      </PropertyGroup>
    </Project>
    
  4. 运行指定Day的代码:
    # 运行Day01
    dotnet run -p:Day=01
    # 运行Day02
    dotnet run -p:Day=02
    

方案三:.NET Script脚本模式(完全对标Python脚本)

使用.NET Script可以直接运行.csx脚本文件,无需创建项目,和Python脚本的使用方式几乎一致。

配置步骤

  1. 安装dotnet-script工具:
    dotnet tool install -g dotnet-script
    
  2. 创建脚本文件:每个Day对应一个.csx文件,比如Day01/Solution.csx,直接写入解题代码(支持顶级语句):
    // Day01/Solution.csx
    Console.WriteLine("Day 1 Solution");
    // 你的解题逻辑
    
  3. 运行脚本:
    dotnet script Day01/Solution.csx
    

方案选择建议

  • 追求规范管理、代码隔离:选方案一
  • 不想创建太多项目、保持统一配置:选方案二
  • 想完全对标Python脚本的快捷体验:选方案三

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 15:48:26