Releases: CycloneDX/cyclonedx-dotnet
6.0.0
[6.0.0] - 2026-02-08
⚠️ WARNING: This is a MAJOR release with breaking changes.This release includes multiple significant changes that may affect compatibility:
- Removed deprecated CLI arguments - Several CLI flags have been removed. Scripts, CI/CD pipelines, and automation using these flags will break.
- Upgraded to .NET 10 - Runtime requirements have changed.
- Updated System.CommandLine - Upgraded from beta4 to v2.0.0 final, which includes breaking API changes that may affect command-line behavior.
- Updated dependency versions - NuGet packages, System.IO.Abstractions, and other dependencies have been upgraded.
Action required: Test thoroughly in a non-production environment before upgrading. Review all sections below for changes that may affect your use case.
Breaking Changes
-
Remove deprecated CLI arguments (#996, 0ae5d6a)
- Removed
-fflag (replaced by-fn/--filename) - Removed
-dflag (replaced by-ed/--exclude-dev) - Removed
-rflag (replaced by-rs/--scan-project-references) - Removed
--disable-github-licenses/-dglflag (already default behavior) - Note:
--outand--jsonflag were not removed in this release for backward compatibility but are still deprecated and will be removed in a future release.
- Removed
-
Upgraded System.CommandLine to v2.0.0 (#989, e11f8e7)
- Upgraded from
2.0.0-beta4.22272.1to2.0.0(stable release) - This version includes breaking API changes from the beta
- Command-line parsing behavior may differ in edge cases
- Upgraded from
-
Minimum .NET runtime requirement (#989, e11f8e7)
- Now requires .NET 10 runtime (upgraded from .NET 9)
- Docker images now use
mcr.microsoft.com/dotnet/sdk:10.0
Added
Changed
-
Dockerfile improvements (#993, edf2bd9)
- Implemented multi-stage build (build + runtime stages) for smaller images
- Changed from tool installation to direct publish deployment
- Added environment variables for non-root execution:
DOTNET_CLI_HOME,NUGET_PACKAGES - Made
/tmp/dotnet-homeand/tmp/nuget-packageswritable for any user (chmod 0755) - Changed entrypoint from
CycloneDXtodotnet /app/CycloneDX.dll - Fixed handling when no path argument is provided (now shows help instead of error)
- Made
pathargument optional withArgumentArity.ZeroOrOne
-
Upgrade to .NET 10 (#989, e11f8e7)
- Updated target framework to
net10.0 - Updated SDK image to
mcr.microsoft.com/dotnet/sdk:10.0 - Updated System.IO.Abstractions from 21.0.2 to 22.1.0
- Updated test runner packages (xunit.runner.visualstudio, coverlet.collector)
- Fixed devcontainer Ubuntu 22.04 Dockerfile
- Updated target framework to
-
Dependency updates
Fixed
- The error message, telling users what file types are valid, now also include the supported .slnx type.
Security
-
Workflow security hardening (#975, 39b8986)
- Changed global
permissions: contents: readtopermissions: read-all - Follows principle of least privilege by limiting default permissions
- Changed global
-
Pin GitHub Actions versions (1145c82)
- Pinned all GitHub Actions to specific commit SHAs for reproducibility
-
Enable NuGet package locking (#972, fad44df)
- Added
packages.lock.jsonfiles for both main and test projects - Enabled
RestorePackagesWithLockFilein Directory.Build.props - Updated CI/CD workflows to use locked restore
- Added
-
Update NuGet dependencies (#973, e930da1)
- Bumped
NuGet.ProjectModelfrom 6.9.1 to 6.14.0 - Bumped
NuGet.Protocolfrom 6.9.1 to 6.14.0
- Bumped
5.5.0
🚀 CycloneDX .NET v5.5.0 Release Notes
✨ Features
- Added a spec version option to the CLI, allowing users to specify the desired CycloneDX specification version. [#958](#958) (thanks [@ben-hamida](https://github.com/ben-hamida))
🐛 Bug Fixes
- Fixed incorrect resolution of
.csprojfile locations in.slnffiles — paths are now correctly resolved relative to the.slnfile. [#967](#967) (thanks [@uo-uhbc](https://github.com/uo-uhbc)) - Updated
IsTestProjectdetection to use the correct XML namespace when parsing project files. [#938](#938) (thanks [@benavidezb](https://github.com/benavidezb))
👥 New Contributors
- [@uo-uhbc](https://github.com/uo-uhbc) made their first contribution in [#967](#967)
- [@benavidezb](https://github.com/benavidezb) made their first contribution in [#938](#938)
- [@ben-hamida](https://github.com/ben-hamida) made their first contribution in [#958](#958)
📜 Full Changelog
[v5.4.0 → v5.5.0](v5.4.0...v5.5.0)
5.4.0
5.3.2
🚀 CycloneDX .NET v5.3.2 Release Notes
🛠 Performance Improvement
Addressed the performance regression introduced in v5.3.1 that caused longer execution times. The CLI now attempts to locate the project.assets.json at its default location before falling back to invoking dotnet msbuild, restoring execution speed for projects that use the default /obj directory. #960
📜 Full Changelog
5.3.1
🚀 CycloneDX .NET v5.3.1 Release Notes
Known Issue: Performance Degradation
We’re aware of a performance problems introduced in v5.3.1 that can significantly increase execution time, most likely when scanning large .sln files. SBOM generation may take noticeably longer compared to previous versions. We're investigating the root cause and working on improvements for a future release.
✅ This has been fixed in v5.3.2
✨ Features
-
Analyzer Support for MSBuild-based
project.assets.jsonResolution – The CLI now supports analysis of MSBuild-based projects by resolvingproject.assets.jsonusing MSBuild context. This improves compatibility with SDK-style projects. #952. -
New
--output-formatParameter (Replaces--json) – A new--output-formatparameter has been added, allowing explicit selection of output format (json,xml,unsafejson, orauto).
⚠️ The previously used--jsonflag is now deprecated and will be removed in a future release. Use--format jsoninstead for the same behavior—with more flexibility.
(https://github.com/mtsfoni) in #953. -
CycloneDX Format v1.6.1 – BOMs are now generated using the CycloneDX 1.6.1 specification, ensuring compatibility with the latest schema and supporting new fields/features defined in the spec.
📜 Full Changelog: v5.2.0 → v5.3.1
5.2.0
What's Changed
- Fix Error with Uppercase Characters in Version Strings by @JohnHunhoff in #902
- Add exclude filter option by @t-castelan in #939
New Contributors
- @JohnHunhoff made their first contribution in #902
- @t-castelan made their first contribution in #939
Full Changelog: v5.1.1...v5.2.0
5.1.1
Fixes a null reference exception that can occur in v5.1.0
Full Changelog: v5.1.0...v5.1.1
5.1.0
Caution
This version is defect, use v5.1.1 instead
🚀 CycloneDX .NET v5.1.0 Release Notes
✨ Features
- Trim License URL Whitespace – NuGet allows whitespaces in the license URL, which are now trimmed instead of creating invalid SBOM. Thanks to #935.
- Support for
.slnxSolutions – Added support for analyzing.slnxsolutions. Thanks to @MMonrad in #933. - PURL in Metadata Component – Added an option to automatically generate Package URL (PURL) in the metadata component. Thanks to @Falco20019 in #931.
🛠️ Fixes
- Transitive Dev Dependency Handling – Fixed an issue where referenced projects with transitive dependencies that were dev dependencies caused the generation to fail. See [#934.]
🧪 Tests & Maintenance
- Test for Issue #911 – Added a test case to reproduce an issue. Thanks to @jesperolsson-se in #912.
🆕 New Contributors
A warm welcome to our first-time contributors:
- @MMonrad in #933
- @jesperolsson-se in #912
📜 Full Changelog: v5.0.1 → v5.1.0
5.0.1
🚀 CycloneDX .NET v5.0.1 Release Notes
🛠️ Fixes
- VCS URL Normalization – Resolved schema validation errors caused by Git-style URLs (e.g.,
git@github.com:user/repo.git) by converting them to valid URL formats, enhancing compatibility with tools like Dependency-Track. Thanks to @Alex-Stevens in #910. Issue #890
📦 Dependency Updates
- Upgraded
xunitfrom2.7.0to2.9.3by @dependabot in #924. - Upgraded
xunit.runner.visualstudiofrom2.5.7to3.0.1by @dependabot in #925.
🆕 New Contributors
A big thank you to our first-time contributor:
📜 Full Changelog: v5.0.0 → v5.0.1
5.0.0
🚀 CycloneDX .NET v5.0.0 Release Notes
🔥 Breaking Changes
cyclonedx-dotnetno longer runs on .NET 6 and .NET 7. However, you can still generate SBOMs for applications targeting these versions.
✨ What's New
- Improved Logging – Now logs package and version details when unzipping fails, thanks to @pregress in #922.
- .NET 9 Support –
cyclonedx-dotnetnow runs on .NET 9 by @nathan-mittelette in #914.
🆕 New Contributors
A big thank you to our first-time contributors:
- @nathan-mittelette in #914
- @pregress in #922
📜 Full Changelog: [v4.2.0 → v5.0.0](v4.2.0...v5.0.0)