diff --git a/src/BenchmarkDotNet/Portability/RuntimeInformation.cs b/src/BenchmarkDotNet/Portability/RuntimeInformation.cs index bd0b62d0e8..565905bebd 100644 --- a/src/BenchmarkDotNet/Portability/RuntimeInformation.cs +++ b/src/BenchmarkDotNet/Portability/RuntimeInformation.cs @@ -102,7 +102,8 @@ internal static string GetRuntimeVersion() } } - return $".NET Core (Mono) {versionString}"; + string runtimeName = IsMono ? "Mono" : "CoreCLR"; + return $".NET Core ({runtimeName}) {versionString}"; } else if (IsOldMono) { diff --git a/src/BenchmarkDotNet/Templates/WasmCsProj.txt b/src/BenchmarkDotNet/Templates/WasmCsProj.txt index bf35251428..3daf85e070 100644 --- a/src/BenchmarkDotNet/Templates/WasmCsProj.txt +++ b/src/BenchmarkDotNet/Templates/WasmCsProj.txt @@ -8,7 +8,7 @@ - +$CORECLR_OVERRIDES$ Exe Release diff --git a/src/BenchmarkDotNet/Toolchains/MonoWasm/WasmGenerator.cs b/src/BenchmarkDotNet/Toolchains/MonoWasm/WasmGenerator.cs index b42aef9e4b..9bd1835fe6 100644 --- a/src/BenchmarkDotNet/Toolchains/MonoWasm/WasmGenerator.cs +++ b/src/BenchmarkDotNet/Toolchains/MonoWasm/WasmGenerator.cs @@ -46,8 +46,22 @@ protected void GenerateProjectFile(BuildPartition buildPartition, ArtifactsPaths var xmlDoc = new XmlDocument(); xmlDoc.Load(projectFile.FullName); var (customProperties, _) = GetSettingsThatNeedToBeCopied(xmlDoc, projectFile); - // Microsoft.NET.Sdk.WebAssembly auto-defaults UseMonoRuntime=true. - string sdkName = runtime.IsMonoRuntime ? "Microsoft.NET.Sdk.WebAssembly" : "Microsoft.NET.Sdk"; + string sdkName = "Microsoft.NET.Sdk.WebAssembly"; + + // For CoreCLR WASM: + // - UseMonoRuntime=false: resolves CoreCLR runtime pack instead of Mono + // - WasmBuildNative=false: avoids requiring wasm-tools workload + // - WasmEnableWebcil=false: CoreCLR doesn't support webcil format + string coreclrOverrides = runtime.IsMonoRuntime + ? string.Empty + : @" + + + false + false + false + +"; string content = new StringBuilder(ResourceHelper.LoadTemplate("WasmCsProj.txt")) .Replace("$PLATFORM$", buildPartition.Platform.ToConfig()) @@ -60,6 +74,7 @@ protected void GenerateProjectFile(BuildPartition buildPartition, ArtifactsPaths .Replace("$SDKNAME$", sdkName) .Replace("$WASMDATADIR$", runtime.WasmDataDir) .Replace("$TARGET$", CustomRuntimePack.IsNotBlank() ? "PublishWithCustomRuntimePack" : "Publish") + .Replace("$CORECLR_OVERRIDES$", coreclrOverrides) .ToString(); File.WriteAllText(artifactsPaths.ProjectFilePath, content);