バージョンの競合を引き起こす推移的な依存関係を管理するための .NET の世界でのベスト プラクティスは何ですか?
詳細:プロジェクトAはプロジェクトBに依存し、プロジェクトBはライブラリCに依存します
また
プロジェクト A は、異なる (潜在的に) ライブラリ C の互換性のないバージョンに依存するプロジェクト X にも依存しています。
A->B->Cv1.0
&
A->X->Cv2.0
ここで
Cv1.0 <> Cv2.0
これを機能させる方法はありますか?
GACを使用せずに実行できますか?
B と X がバイナリ形式のみ (ソースにアクセスできない) でも実行できますか?
言い換えれば、プロジェクト A で一緒に使用するときに、プロジェクト B と X をそれぞれ独自の依存関係を使用して、競合を引き起こすことなく使用できる方法があります。
注: 理想的には、この問題はまったく発生しないはずですが、外部ライブラリへの依存が拡大するにつれて、これは避けられない副作用になります。そのため、どのように対処するのが最善なのか疑問に思っています。