我的问题与一个密切相关
但略有不同。
虽然我们的 Main EXE 是用 .Net Framework 4.0 编译的,但一些引用的程序集是为 Framework v2.0 编译的,我们还必须在这些程序集中添加日志记录。虽然我们选择了 log4net v1.2.11(我相信是最新的),但我们在解决方案中使用 2 个不同的组件时遇到了障碍。
我的问题与一个密切相关
但略有不同。
虽然我们的 Main EXE 是用 .Net Framework 4.0 编译的,但一些引用的程序集是为 Framework v2.0 编译的,我们还必须在这些程序集中添加日志记录。虽然我们选择了 log4net v1.2.11(我相信是最新的),但我们在解决方案中使用 2 个不同的组件时遇到了障碍。
首先,您不能将所有 dll 放在同一个文件夹中(正如您已经找到的那样)。
这里解释了运行时如何尝试加载程序集。
使用这些知识,您可以:
重定向程序集版本(如果它们兼容,我认为它们是兼容的) - 例如从旧的 log4net dll 到新的 dll
指定加载程序集时应使用的程序集位置(例如,将其放在 \Libs 文件夹中,并引用该位置)
手动加载程序集——理论上,这可以工作,因为它将程序集加载到域中。
一个示例,取自此处(“具有相同名称的多个组件”):
<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>
您可以使用此部分
<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
我认为只使用面向 .net 2.0 的版本是安全的。