DotNet Benchmark 引发引用的程序集错误

Posted

技术标签:

【中文标题】DotNet Benchmark 引发引用的程序集错误【英文标题】:DotNetBenchmark throws reference assembly error 【发布时间】:2022-01-03 22:40:33 【问题描述】:

我想使用 BenchmarkDotnet 测试一些方法的性能。因此,我下载了 NuGet 包,添加了 usings 并像这样实现它:

BenchmarkRunner.Run<SortingAlgorithmBenchmark>();

public class SortingAlgorithmBenchmark

    [Benchmark]
    public void BubbleSort()
    
        SortingAlgorithms.BubbleSort(new[] 2,3,1);
    

BenchmarkRunner 位于应显示输出的控制台应用程序中。不幸的是,我不断收到此错误:MSB3971:找不到“.NETFramework,Version=v6.0”的参考程序集。您可能正在使用较旧的 .NET SDK 来定位 .NET 5.0 或更高版本

我不知道这个错误是从哪里来的,因为我以前从未遇到过程序集引用的问题,并且所有东西都应该正确安装。至少我不知道有什么问题。有谁知道如何解决这个问题。我在VS 2022中运行程序,TargetFramework是.Net 6.0

dotnet sdk folder

Microsoft.NET folder

【问题讨论】:

欢迎来到 ***。您可能需要提供更多信息,以便我们重现问题。我在同一个环境下测试了示例代码,测试完好。检查此link? 对您有帮助吗? 您好,我添加了 dotnet sdk 文件夹和 Microsoft.NET 文件夹的图片。也许他们有什么问题? 你试过fix in the link吗?您可以编辑和删除Benchmark的相关内容和标签。目前看来与这些无关。 【参考方案1】:

原来问题是一个不必要的环境变量指向了错误的sdk。删除变量并重新启动 Visual Studio 后一切正常。

【讨论】:

以上是关于DotNet Benchmark 引发引用的程序集错误的主要内容,如果未能解决你的问题,请参考以下文章

dotnet 通过引用 msbuild 程序集实现自己定制编译器

dotnet 使用 Refasmer 从现有的 DLL 里面导出公开的成员组装出新的仅作为引用用途的程序集...

dotnet 测试:如何将程序集名称包含到 .trx 结果文件中?

解决程序集,模糊方式

dotnet pack 项目参考

无法加载文件或程序集。找到的程序集的清单定义与程序集引用不匹配