我的问题与一个
密切相关Log4Net : 2 libraries need 2 different version of it
但略有不同。
虽然我们的主EXE是使用.Net Framework 4.0编译的,但是一些引用的程序集是为Framework v2.0编译的,我们也必须在这些程序集中添加日志记录。虽然我们选择了log4net v1.2.11(最新的,我相信),但我们在使用解决方案中的2个不同组件时遇到了障碍。
答案 0 :(得分: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>
答案 1 :(得分:0)
我认为只使用针对.net 2.0的版本是安全的。
答案 2 :(得分:0)
您可以使用此部分
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="2.0" />
</startup>
</configuration>
链接:http://msdn.microsoft.com/fr-fr/library/vstudio/bbx34a2h.aspx
链接:http://msdn.microsoft.com/en-us/library/w4atty68(v=vs.71).aspx