c# - 运行 BenchmarkDotNet 时为 "Wrong assembly binding redirects"

标签 c# .net-core assembly-binding-redirect benchmarkdotnet

当为我的项目中的方法运行 BenchmarkDotNet 时,我在屏幕上打印了一些“错误的程序集绑定(bind)重定向”警告/错误消息。这让我有点困惑,因为我认为程序集绑定(bind)重定向是一个 .Net Framework 概念,而我的项目是 .Net Core 3.0。谷歌搜索警告/错误消息没有结果。有关这些消息含义以及可能如何解决问题的任何提示。我尝试清理 Nuget 缓存、恢复 Nuget 包、清理和重建解决方案,但没有任何帮助。

// BeforeAnythingElse

// Benchmark Process Environment Information:
// Runtime=.NET Core 3.0.0 (CoreCLR 4.700.19.46205, CoreFX 4.700.19.46214), X64 RyuJIT
// GC=Concurrent Workstation
// Job: DefaultJob

OverheadJitting  1: 1 op, 308100.00 ns, 308.1000 us/op
// Wrong assembly binding redirects for System.Data.Common.resources, Version=4.2.1.0, Culture=en-US, PublicKeyToken=b03f5f7f11d50a3a.
// Wrong assembly binding redirects for System.Data.Common.resources, Version=4.2.1.0, Culture=en, PublicKeyToken=b03f5f7f11d50a3a.
// Wrong assembly binding redirects for System.Data.SqlClient.resources, Version=4.6.0.0, Culture=en-US, PublicKeyToken=b03f5f7f11d50a3a.
// Wrong assembly binding redirects for System.Data.SqlClient.resources, Version=4.6.0.0, Culture=en, PublicKeyToken=b03f5f7f11d50a3a.
// Wrong assembly binding redirects for System.Private.Xml.resources, Version=4.0.1.0, Culture=en-US, PublicKeyToken=cc7b13ffcd2ddd51.
// Wrong assembly binding redirects for System.Private.Xml.resources, Version=4.0.1.0, Culture=en, PublicKeyToken=cc7b13ffcd2ddd51.

最佳答案

简短的回答是您可以忽略此警告。

长答案:出于某种原因,VS 有时会为引用 .NET Standard 库的完整 .NET Framework 项目生成无效的程序集绑定(bind)重定向。过去给 BenchmarkDotNet 用户带来了很多麻烦:

我决定实现一个丑陋的解决方法,即手动搜索 .dll 文件并在 .NET Framework 失败时加载它。

当然,这仅适用于 Full .NET Framework。当我将 BenchmarkDotNet 移植到 .NET Standard 2.0 时,我忘记了我们不需要为 .NET Core 执行此操作。作为最终结果,您会收到这个令人困惑的警告。

我已经发送了一个修复该问题的 PR:https://github.com/dotnet/BenchmarkDotNet/pull/1365并且此解决方法现在将仅针对完整的 .NET Framework 项目执行

关于c# - 运行 BenchmarkDotNet 时为 "Wrong assembly binding redirects",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59143147/

相关文章:

c# - 如何正确杀死Linux C#

c# - 在计算机上运行 C# 控制台应用程序需要什么

jquery - 我在 .NET Core 中的 ajax 调用中收到 xsr.send 错误 400

azure - 如何在 Application Insights 中扩展对传出 http 请求的依赖项跟踪

c# - 程序集绑定(bind)重定向 : How and Why?

c# - 将一个对象列表转换为另一个列表

c# - 使用 PLINQ 导致 OutofMemory 异常,但使用 LINQ 则不会?

c# - Asp.Net Core 动态生成图片文件

F#单元测试: nunit.框架程序集未引用错误

c# - 在 app.config <assemblyBinding>/<codeBase> 中配置任何较新程序集版本的 .NET 程序集绑定(bind)