2016-12-06 19 views
0

私はライブラリの機能を活用するライブラリを作成したいと思います。 JSON .NET。 JSON .NETのバージョン8.0を使用しています。ライブラリを配布すると、そのライブラリを使用するすべてのユーザーが同じバージョンのJSON .NETを使用する必要があり、既に使用しているバージョンと競合します。ライブラリ依存バージョンを扱うには?

私のライブラリのシリアル化部分を別のNuGetパッケージに分離することができましたが、これは依然として特定のバージョンに依存します。

このようなシリアル化機能を提供し、サードパーティのパッケージに関してクライアントコードを制限しないように、ライブラリを構築するにはどうすればよいですか?このようなことのための既存のパターンはありますか?

+0

ライブラリの制約を満たすバージョンの許容範囲を明示的に指定するか、必要最小限のバージョンを指定します。可能であれば、単一のバージョンに依存するNuGetパッケージを出荷することは決してありません。そして、あなたはあなたのパッケージにJSON.NETをバンドルするべきではありません。依存関係としてリストし、消費者が必要な依存関係を提供できるようにする必要があります。 –

+0

これについて詳しく説明できますか?それが依存関係の場合は、それへの参照があります。 – Gigi

答えて

1

実際、あなたの前提は正確ではありません。依存関係の他のバージョンを使用できます。 .NETでは、これを実現するためにassembly unificationを使用します。基本的に、エンドユーザの設定ファイルは、「コードにバージョン8.0が必要な場合は、9.0を使用しても問題ありません」と書かれています。そして、ほとんどの場合、より新しいコードは逆互換性があるように書かれています。

最終的に、あなたはそれについてストレスを感じることはできません。領土が付属しています。

+0

アセンブリのリダイレクトは、最も安全な賭けではありません。ライブラリがメジャーバージョン間でAPIを完全に変更することは、まったく受け入れられます。 – Gigi

関連する問題