Spring.NETが構成ファイル内の参照を解決しようとすると、.NETアセンブリローダーと同じルールが使用されます。したがって、binフォルダーにlog4netアセンブリの正しい参照を追加してみることができます。
編集:Spring.NETで非標準の場所にあるアセンブリを検索する場合は、<assemblyBinding>要素を使用して場所を指定できます。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="spring">
<section name="context" type="Spring.Context.Support.ContextHandler, Spring.Core"/>
<section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core" />
</sectionGroup>
</configSections>
<spring>
<context>
<resource uri="config://spring/objects"/>
</context>
<objects xmlns="http://www.springframework.net">
<object id="someObject" type="log4net.Util.AppenderAttachedImpl, log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821" />
</objects>
</spring>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="log4net"
publicKeyToken="1b44e1d426115821"
culture="neutral" />
<codeBase version="1.2.10.0
href="file:///c:/some_special_location/log4net.dll" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
次に、オブジェクトをインスタンス化するようにコンテナに要求できます。
var someObject = ContextRegistry.GetContext().GetObject("someObject");