This release introduces Roslyn analyzers to catch incorrect BenchmarkDotNet usage at compile time, improves .NET Framework version detection, and updates OS detection support.
Features
- Add Roslyn analyzers to detect incorrect usage of BenchmarkDotNet at compile-time (#2837)
- Validates benchmark class structure (public, non-sealed, generic constraints)
- Checks
[Arguments],[Params], and[ParamsAllValues]attribute usage - Verifies
[GenericTypeArguments]requirements - Ensures only one baseline method per category
- Validates
BenchmarkRunner.Runinvocations
Improvements
- Improve .NET Framework version detection by retrieving version from
TargetFrameworkAttribute(#2682) - Bump Perfolizer 0.6.0 → 0.6.1, bringing updated Windows and macOS version detection in
OsBrandHelper
Bug Fixes
- Fix null reference handling and exception logging in
TestCaseFilterfor the test adapter - Fix flaky CI tests by increasing build timeout values (#2854)
Internal
- Improve release workflow in
release.yaml
Full Changelog: https://github.com/dotnet/BenchmarkDotNet/compare/v0.15.6...v0.15.7