.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
配置步骤
- 初始化解决方案:在终端执行
dotnet new sln -n AdventOfCode2024 cd AdventOfCode2024 - 创建单个Day项目:以Day01为例
进入Day01文件夹,将默认生成的dotnet new console -n Day01Program.cs重命名为Solution.cs,写入你的解题代码(.NET 6+支持顶级语句,无需写类和Main方法)。 - 将Day项目添加到解决方案:
dotnet sln add Day01/Day01.csproj - 重复创建后续Day项目:对Day02、Day03等重复步骤2-3。
- 运行指定Day的代码:
也可以在IDE(如VS/VS Code)中选中对应Day项目,设为启动项后直接运行。# 运行Day01 dotnet run --project Day01/Day01.csproj # 运行Day02 dotnet run --project Day02/Day02.csproj
方案二:单项目多入口结构(减少项目数量)
如果不想创建太多独立项目,可以在单个控制台项目中为每个Day配置独立入口点。
项目结构
AdventOfCode2024/ ├── AdventOfCode2024.csproj └── Days/ ├── Day01/ │ └── Solution.cs └── Day02/ └── Solution.cs
配置步骤
- 创建单个控制台项目:
dotnet new console -n AdventOfCode2024 cd AdventOfCode2024 - 创建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: ..."); } } - 修改项目配置文件(.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> - 运行指定Day的代码:
# 运行Day01 dotnet run -p:Day=01 # 运行Day02 dotnet run -p:Day=02
方案三:.NET Script脚本模式(完全对标Python脚本)
使用.NET Script可以直接运行.csx脚本文件,无需创建项目,和Python脚本的使用方式几乎一致。
配置步骤
- 安装dotnet-script工具:
dotnet tool install -g dotnet-script - 创建脚本文件:每个Day对应一个
.csx文件,比如Day01/Solution.csx,直接写入解题代码(支持顶级语句):// Day01/Solution.csx Console.WriteLine("Day 1 Solution"); // 你的解题逻辑 - 运行脚本:
dotnet script Day01/Solution.csx
方案选择建议
- 追求规范管理、代码隔离:选方案一
- 不想创建太多项目、保持统一配置:选方案二
- 想完全对标Python脚本的快捷体验:选方案三
内容的提问来源于stack exchange,提问作者michaelbane
相关产品推荐
相关产品推荐

