我的问题与那个密切相关
Log4Net : 2 libraries need 2 different version of it
但略有不同。
虽然我们的主 EXE 是使用 .Net Framework 4.0 编译的,但一些引用的程序集是为 Framework v2.0 编译的,我们还必须在这些程序集中添加日志记录。虽然我们选择了 log4net v1.2.11(我相信是最新的),但我们在解决方案中使用 2 种不同的程序集时遇到了障碍。
最佳答案
首先,您不能将所有 dll 都放在同一个文件夹中(正如您已经找到的那样)。
Here它解释了运行时如何尝试加载程序集。
利用这些知识,您可以:
Redirect assembly versions (如果它们兼容,我认为它们是) - 例如从旧的 log4net dll 到新的 dll
Specify assemlby location加载程序集时应该使用它(例如,将它放在\Libs 文件夹中,并引用它)
Load the assembly manually - 理论上,这可行,因为它正在将该程序集加载到域中。
一个例子,取自here (“具有相同名称的多个程序集”):
<dependentAssembly>
<assemblyIdentity name="Server" publicKeyToken="c0305c36380ba429" />
<codeBase version="1.0.0.0" href="v1/Server.dll"/>
<codeBase version="2.0.0.0" href="v2/Server.dll"/>
</dependentAssembly>
关于c# - 如何在同一个解决方案中使用 2 个不同的 log4net 程序集——每个程序集都针对不同版本的 .Net Framework?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12802360/