如何覆盖 nuget 包的依赖版本

问题描述 投票:0回答:0

我有一个 .net 项目,它使用来自 nuget.org 的 System.Configuration.ConfigurationManager 5.0.0 和 log4net 2.0.15。 当 log4net 尝试初始化时,我遇到了 System.Configuration.ConfigurationManager.dll 的程序集加载问题,因为它需要 4.0.1.0 的 System.Configuration.ConfigurationManager 而不是 5.0.0.

错误消息如下所示:

System.IO.FileNotFoundException:无法加载文件或程序集“System.Configuration.ConfigurationManager,Version=4.0.1.0,Culture=neutral,PublicKeyToken=cc7b13ffcd2ddd51”。系统找不到指定的文件。

如何强制 log4net.dll 使用 System.Configuration.ConfigurationManager 5.0.0.0? 我试图添加一个 log4net.dll.config 如下,但没有工作。 log4net 仍然尝试加载旧版本的 System.Configuration.ConfigurationManager。任何人都知道如何解决这个问题,除了从源代码重建log4net

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

c# .net log4net assembly-loading
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.