Nuke.Slnx is a lightweight extension library for working with .slnx solution metadata files directly from NUKE build pipelines.
The .slnx file format is an emerging companion to standard .sln files, enabling richer solution configuration with structured metadata. Nuke.Slnx adds strongly-typed utilities and helpers for reading, parsing, and modifying .slnx files as part of automated build and CI workflows.
- 📄 Parse
.slnxfiles into strongly-typed objects - ✍️ Modify solution metadata programmatically during a NUKE build
- 🔁 Commit or regenerate
.slnxfiles in CI without manual edits - 🧩 Designed to plug directly into existing
NukeBuildclasses
Add the package to your NUKE build project:
dotnet add package Nuke.Slnxusing Nuke.Slnx;
using Nuke.Common.ProjectModel;
public class Build : NukeBuild
{
[SolutionX] readonly SolutionX Solution;
}💡 Note: Unfortunately, the world isn't perfect—and neither is the current NUKE CLI support for
.slnx. If you're usingnuke :setup, the CLI will not detect your.slnxfile. When asked to select a solution, chooseNone. Afterwards, manually update your.nuke/parameters.jsonfile to point to your.slnxinstead of a.sln.
Example:
{
"$schema": "build.schema.json",
"Solution": "src/Nuke.Slnx.slnx"
}You use SLNX for a more human-readable, maintainable, and tool-friendly .NET solution file format, replacing legacy .sln files to reduce complexity, simplify collaboration, and improve Git conflict resolution through its clean, XML-based structure with convention-based defaults.
Modern .NET workflows—CI/CD pipelines, cross-platform development, and automated tooling—benefit from SLNX's structured approach and predictable formatting, fully supported by Visual Studio, the .NET CLI, and IDE-agnostic tooling.
| Benefit | Description |
|---|---|
| Improved Readability | XML-based structure replaces cryptic GUID blocks with clean, understandable configuration. |
| Simplified Collaboration | Convention-based layout reduces cognitive overhead and makes large solution files easier to review and evolve with teams. |
| Reduced Merge Conflicts | Predictable and ordered XML dramatically lowers Git conflicts compared to scattered .sln changes. |
| Tooling & Automation Friendly | Structured format integrates naturally with CI/CD pipelines, code generators, and build automation like NUKE. |
| Modern Design | Designed with current .NET development practices in mind, including cloud-native and cross-platform workflows. |
| Cross-Platform Compatibility | Supported in .NET 9+, making SLNX a stable option across Windows, Linux, and macOS environments. |
Contributions are welcome! Feel free to open issues or submit PRs with improvements, discussions, or new feature proposals around .slnx tooling and NUKE integration.
Distributed under the MIT License. See LICENSE for more information.