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

.NET Standard 2.0类库集成log4net在Windows服务中遇加载异常

解决.NET Framework 4.6.1 Windows服务引用.NET Standard 2.0类库时log4net的System.Runtime加载异常

我之前也碰到过类似的跨框架依赖问题,结合实战经验给你几个靠谱的解决方案:

  • 启用自动绑定重定向
    打开你的Windows服务项目的.csproj文件,添加以下配置:

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

    保存后重新生成项目,这会让.NET Framework自动处理.NET Standard类库带来的依赖版本冲突,生成正确的绑定重定向到app.config中。

  • 手动添加System.Runtime绑定重定向
    如果自动生成没生效,直接在Windows服务的app.config里添加手动绑定重定向:

    <configuration>
      <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
          <dependentAssembly>
            <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.0.0.0" />
          </dependentAssembly>
        </assemblyBinding>
      </runtime>
    </configuration>
    

    这里的newVersion可以根据你项目实际引用的System.Runtime版本调整,.NET Framework 4.6.1环境下一般对应4.0.0.0版本。

  • 更新log4net版本
    尝试把log4net从2.0.8升级到更近期的版本(比如2.0.15及以上),新版本对.NET Standard和.NET Framework的跨框架兼容性做了更完善的优化,能有效减少这类依赖加载异常。

  • 检查部署目录的依赖文件
    确认Windows服务部署目录下是否包含了所有必要的依赖dll,尤其是System.Runtime.dll以及相关的依赖组件。有时候部署过程中,.NET Standard类库的依赖不会自动复制到.NET Framework宿主项目的输出目录,需要手动确认或调整项目引用的"复制本地"属性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:06:36