我正在为log4net开发一个appender,我面临着如何管理log4net版本依赖关系的问题,我的类库针对的是部署的实际版本网站。我的类库必须引用log4net dll,因此它将与我在构建时引用的版本绑定。然而,这个组件将被部署的站点将有不同的log4net版本,有些比我的要早,有些会更新。我应该如何处理这个问题?我不想为每个log4net新版本发布我的appender的新版本,并将正确匹配它们的负担放在我的用户身上。我也不想问我的appender用户做复杂的并行清单技巧。我只希望我的appender能够简单地复制到最终用户位置,并且可以随时随地使用任何log4net版本。托管类库中与版本无关的引用依赖关系
这是可以实现的吗?我错过了明显的东西吗?
更新:
唯一的工作解决方案是使用清单。我有两个“自制” log4net的测试,建立并添加以下配置部分解决了我的问题:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="log4net"
publicKeyToken="..."
culture="neutral" />
<bindingRedirect oldVersion="1.2.10.0"
newVersion="..."/>
</dependentAssembly>
</assemblyBinding>
</runtime>
其中公钥是真正的log4net程序集的实际密钥令牌,1.2.10是我的appender是内置的版本with和newVersion是现场部署的版本。该部分可以添加到部署的appconfig或webconfig(它也可以在机器配置中完成,但我不建议......)。
我知道你的回答是对的,但是我试图避免的一个问题是(让我的客户编辑清单文件) – 2009-07-06 20:11:20