首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Benchmarkdotnet不尊重框架目标net462

Benchmarkdotnet不尊重框架目标net462
EN

Stack Overflow用户
提问于 2019-04-28 19:37:57
回答 1查看 178关注 0票数 0

我有一个针对netcoreapp2和net462的小基准项目。

代码语言:javascript
复制
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFrameworks>netcoreapp2;net462</TargetFrameworks>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="BenchmarkDotNet" Version="0.11.5" />
  </ItemGroup>

</Project>

然而,在运行此基准时,它似乎只尊重netcoreapp目标,而不尊重完整的框架目标。它指出,CLR作业是针对net472运行的。我是做错了还是这是个问题?我只针对CoreJob,ClrJob这两份工作。

主机:.NET Core 2.0.9 (CoreCLR 4.6.26614.01,CoreFX 4.6.26614.01),64位RyuJIT Clr:.NET Framework4.7.2 (CLR 4.0.30319.42000),64位RyuJIT-v4.7.3394.0 Core:.NET Core 2.0.9 (CoreCLR 4.6.26614.01,CoreFX 4.6.26614.01),64位RyuJIT

我还注意到,即使我移除显式的作业属性,并且只将我的项目定位为net462,运行摘要仍然显示它是在net472中执行的。

EN

回答 1

Stack Overflow用户

发布于 2020-01-31 14:11:56

如BenchmarkDotNet文档中所述:https://benchmarkdotnet.org/articles/configs/toolchains.html#multiple-frameworks-support

完整的.NET框架总是使用给定机器上可用的最新.NET框架来运行每个.NET可执行文件。如果您试图运行一些.NET TFMs的基准测试,那么它们都将使用您机器上的最新.NET框架来执行。唯一的区别是它们都将启用不同的特性,这取决于它们所编译的目标版本。您可以阅读更多关于这个https://learn.microsoft.com/en-us/dotnet/framework/migration-guide/version-compatibilityhttps://learn.microsoft.com/en-us/dotnet/framework/migration-guide/application-compatibility的内容。这是.NET框架行为,不能被BenchmarkDotNet或任何其他工具控制。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55893930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档