You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Framework 4.8类库System.Diagnostics.DiagnosticSource版本绑定错误求助

解决System.Diagnostics.DiagnosticSource版本绑定冲突问题(.NET Framework 4.8 + Azure.Storage.Blobs 12.21.1)

方案1:强制类库生成绑定重定向输出

编辑类库的.csproj文件,添加以下配置后重新编译:

<PropertyGroup>
  <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
  <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
</PropertyGroup>

编译后会自动生成包含绑定重定向规则的[类库名称].dll.config文件,将该文件与类库DLL放在同一目录,确保加载时能读取到重定向配置。

方案2:代码层面动态处理程序集绑定

在类库的初始化逻辑中添加程序集解析事件,强制加载正确版本的DLL:

using System;
using System.Linq;
using System.Reflection;

public static class DiagnosticSourceResolver
{
    public static void Setup()
    {
        AppDomain.CurrentDomain.AssemblyResolve += (sender, args) =>
        {
            var assemblyName = new AssemblyName(args.Name);
            if (assemblyName.Name.Equals("System.Diagnostics.DiagnosticSource", StringComparison.OrdinalIgnoreCase))
            {
                // 优先加载已加载的版本,或指定路径加载6.0.0.1版本
                var loadedAssembly = AppDomain.CurrentDomain.GetAssemblies()
                    .FirstOrDefault(a => a.GetName().Name == "System.Diagnostics.DiagnosticSource");
                return loadedAssembly ?? Assembly.LoadFrom("System.Diagnostics.DiagnosticSource.dll");
            }
            return null;
        };
    }
}

在类库被调用的入口处执行DiagnosticSourceResolver.Setup();,覆盖LoadFrom上下文下的绑定逻辑。

方案3:确保宿主程序配置包含正确绑定重定向

如果类库被其他.NET Framework应用(如控制台、WinForms程序)引用,必须修改宿主程序的app.config/web.config,添加绑定重定向规则:

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="System.Diagnostics.DiagnosticSource" 
                        publicKeyToken="cc7b13ffcd2ddd51" 
                        culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-6.0.0.1" 
                       newVersion="6.0.0.1" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>

类库自身的app.config不会被自动加载,宿主程序的配置才是绑定重定向的最终生效来源。

方案4:重新安装NuGet包修复配置

打开NuGet包管理器控制台,执行以下命令重新安装相关包,自动修复绑定重定向配置:

Update-Package -reinstall System.Diagnostics.DiagnosticSource
Update-Package -reinstall Azure.Core
Update-Package -reinstall Azure.Storage.Blobs

内容的提问来源于stack exchange,提问作者AKCoder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 09:51:10