Surgical C# source fusion powered by Roslyn.
SharpFuse is a modern .NET 8 CLI tool that merges multiple C# source files into a single consolidated file --- safely, cleanly, and intelligently.
Unlike naive text-based merging, SharpFuse uses Roslyn to parse and reconstruct syntax trees, ensuring valid structure, preserved members, and properly deduplicated using directives.
- 🔥 Merge multiple
.csfiles into one - 🧠 Powered by Roslyn (real syntax parsing, no regex hacks)
- 📦 Preserves and deduplicates
usingstatements - 🧬 Supports multiple namespaces
- 🏗 Flattens nested namespaces
- 📑 Adds file-origin headers for traceability
- ⚙ Compatible with legacy C# 7 code and modern C# versions
- 🚀 Built on .NET 8
/MyProject ├── Class1.cs ├── Class2.cs └── Sub/Feature.cs
Merged.cs
namespace MyProject
{
// ===== From: Class1.cs =====
public class Class1 { ... }
// ===== From: Class2.cs =====
public class Class2 { ... }
// ===== From: Feature.cs =====
public class Feature { ... }
}git clone https://github.com/omidud/SharpFuse.git
cd SharpFuse
dotnet build -c ReleaseRun:
dotnet run -- <inputDirectory> <outputFile>SharpFuse <inputDirectory> <outputFile> [--root=NamespaceName]Argument Description
<inputDirectory> Folder containing .cs files
<outputFile> Destination merged file
--root=Name (Optional) Force root namespace
SharpFuse ./src ./Merged.cs --root=MyNamespaceSharpFuse:
- Parses every
.csfile using Roslyn - Extracts namespaces and members
- Deduplicates
usingdirectives - Flattens nested namespaces
- Reconstructs a clean syntax tree
- Emits a single formatted output file
No broken braces.
No malformed syntax.
No regex disasters.
- Support
--lang=<version>(C# version parsing option) - Read
<RootNamespace>from.csproj - Option to preserve original namespaces
-
dotnet toolglobal installation - Optional member sorting
- Exclude patterns via CLI
MIT License
Copyright (c) 2026 Omar Laracuente (omidud)
Created by Omar Laracuente
GitHub: https://github.com/omidud
SharpFuse exists for developers who prefer control over magic.
Sometimes you need: - A monolithic SDK file - A single-distribution source file - A flattened code artifact - Or simply to understand everything in one place
SharpFuse makes that possible --- safely.