Skip to content
This repository was archived by the owner on Nov 25, 2025. It is now read-only.

MMonrad/Nuke.Slnx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nuke.Slnx

Latest Release Latest Pre-Release Downloads License

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.


✅ Features

  • 📄 Parse .slnx files into strongly-typed objects
  • ✍️ Modify solution metadata programmatically during a NUKE build
  • 🔁 Commit or regenerate .slnx files in CI without manual edits
  • 🧩 Designed to plug directly into existing NukeBuild classes

📦 Installation

Add the package to your NUKE build project:

dotnet add package Nuke.Slnx

🚀 Quickstart

using 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 using nuke :setup, the CLI will not detect your .slnx file. When asked to select a solution, choose None. Afterwards, manually update your .nuke/parameters.json file to point to your .slnx instead of a .sln.

Example:

{
  "$schema": "build.schema.json",
  "Solution": "src/Nuke.Slnx.slnx"
}

🧠 Why .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.

✅ Key Benefits of SLNX

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.

🤝 Contributing

Contributions are welcome! Feel free to open issues or submit PRs with improvements, discussions, or new feature proposals around .slnx tooling and NUKE integration.


📜 License

Distributed under the MIT License. See LICENSE for more information.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors