Skip to content

Add support for .NET 11 benchmarks #3017

@filzrev

Description

@filzrev

On latest BenchmarkDotNet nightly package version.
.NET 11 toolchain/runtime settings are available.

But currently it seems not works.
Because AsmResolver.DotNet package don't support .NET 11 yet. (See: Washi1337/AsmResolver#702)

The following are errors occurring when build/running benchmarks that targeting .NET 11 with current nightly version.

1. BenchmarkDotNet.Weaver warnings on building project

Assembly weaving failed. Benchmark methods found requiring NoInlining: False. Error:
System.ArgumentException: Invalid or unsupported .NET or .NET Core version 11.0.
   at AsmResolver.DotNet.KnownCorLibs.SelectNetCoreImplCorLib(Version version)
   at AsmResolver.DotNet.KnownCorLibs.TryImplFromRuntimeInfo(DotNetRuntimeInfo runtimeInfo)
   at AsmResolver.DotNet.RuntimeContext..ctor(DotNetRuntimeInfo targetRuntime, IAssemblyResolver assemblyResolver, AssemblyDescriptor corLibReference, ModuleReaderParameters readerParameters)
   at AsmResolver.DotNet.Serialized.SerializedModuleDefinition..ctor(PEImage peImage, ModuleReaderParameters readerParameters)
   at AsmResolver.DotNet.ModuleDefinition.FromFile(String filePath, ModuleReaderParameters readerParameters)
   at BenchmarkDotNet.Weaver.WeaveAssemblyTask.Execute()

2. BenchmarkProcessValidator error when running benchmarks

//    * Benchmarked method `Benchmark01` does not have MethodImplOptions.NoInlining flag set. You may need to rebuild your project, or apply it manually if you are not using MSBuild to build your project.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions