私はlog4netのアペンダで作業しています。クラスライブラリのlog4netバージョンの依存関係をどのように管理するかという問題に直面していますサイト。私のクラスライブラリはlog4net dllを参照しなければならないので、ビルド時に私が参照しているバージョンに結びついてしまいます。しかし、このコンポーネントがデプロイされるサイトには、log4netのさまざまなバージョンが用意されています。古いものもあれば、古いものもあれば、新しいものもあります。私はこの問題にどのようにアプローチすべきですか?私はlog4netの新しいバージョンごとに新しいバージョンのアペンダーをリリースし、ユーザーに正しくマッチさせるという負担をかけたくありません。私はまた、アペンダーのユーザーに複雑な並列マニフェストのやり方を依頼したくありません。私はアペンダーを単純にエンドユーザーの場所にコピーし、そこに存在するlog4netバージョンがあればすぐに作業することができます。管理対象クラスライブラリのバージョンに依存しない参照依存関係
これは達成可能ですか?私は明白な何かを欠いていますか
更新:
だけの作業ソリューションはマニフェストを使用することです。 2つの「自家製」log4netのビルドと、次の構成セクションを追加すると、私の問題を解決して私がテストした:
なPublicKeyTokenは、実際の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>
、1.2.10は私のアペンダが構築されているバージョンでありますwithとnewVersionはサイト上に現在展開されているバージョンです。このセクションは、配備されたappconfigまたはwebconfigに追加することができます(マシン設定でも実行できますが、推奨しません...)。
私はあなたの答えは正しいと知っていますが、私が避けようとしている問題の1つです(お客様にマニフェストファイルを編集させてください)。 –