如何在BenchmarkDotNet中指定等效于net6.0-windows的RuntimeMoniker
解决方法
直接使用BenchmarkDotNet提供的Windows专属RuntimeMoniker枚举:
把原来的[SimpleJob(RuntimeMoniker.Net60)]替换成[SimpleJob(RuntimeMoniker.Net60Windows)],这个枚举值对应的就是net6.0-windows运行时标识符,能正确加载WPF相关的PresentationFramework程序集。如果你的BenchmarkDotNet版本较旧,没有
Net60Windows枚举,可以直接传入字符串形式的运行时标识符:
使用[SimpleJob("net6.0-windows")],手动指定完整的RID,同样能让基准测试在正确的Windows运行时环境下执行。
另外要确保你的测试项目配置没问题:
- 项目文件中正确设置多目标框架:
<TargetFrameworks>net48;net6.0-windows</TargetFrameworks> - 针对
net6.0-windows启用WPF:<PropertyGroup Condition="'$(TargetFramework)' == 'net6.0-windows'"> <UseWPF>true</UseWPF> </PropertyGroup>
内容的提问来源于stack exchange,提问作者Dan Stevens
相关产品推荐
相关产品推荐

