2017-05-25 6 views
1

netstandardが登場すれば、netcoreとnetframeworkの両方で使用できるライブラリを作成する方が簡単です。複数のターゲットフレームワークをネットスタンダードライブラリに追加して、複数のターゲット用に構築することも可能です。しかし、これには何らかの形で私に正しいと感じるものはなく、おそらく私はそれを間違った方法で見ています。私はこのシナリオを説明するために最善を尽くします。4.6.1のnetstandardを追加する

私はnetstandard1.5とnet461をターゲットにしたこのnetstandardライブラリを持っています。私は、プロジェクトを変更して両方のターゲットを追加することでこれを行いました。このプロジェクトは、より詳細に調べると、net461とnetstandard1.5用のバイナリを含んでいるナゲットパッケージに組み込まれ、パッケージ化されています。これで、私は、netcoreプロジェクトまたはnetframeworkプロジェクトに最小限の依存関係で追加できるライブラリがあると仮定しました。また、このライブラリはMicrosoft.Extensions.Logging.Abstractions(1.1.2)、Newtonsoft.Json(10.0.2)およびSystem.Security.SecureString(4.3)に依存しています。

もう一方では、netframework 461を使用した従来のコンソールプロジェクトがあります。当然、私はここでライブラリを使いたいと思っています。それはnetframework 461プロジェクトであり、ライブラリもnetframework 461を対象としているので、依存関係は最小限に抑えられます。パッケージを探すとき、その依存関係は期待したものですが、インストールしてみると、NETStandard.Library(1.6)のように必要ではないと思われる依存関係があふれてしまいます.2)、Microsoft.NETCore.Platforms(1.1.0)、System.Runtime(4.3)およびそのすべての関連付け(コレクション、io、セキュリティなど)ライブラリはネットフレームワークをターゲットにしているので、これらの依存関係をすべて追加する必要はないと思うでしょうが、私が間違っているか、何か間違っているようです。

誰でもこの情報を参考にしてください。

+0

あなたはポート(それの最終リリース)をnetstandard2、および2017 Update3と対を使用することができますお手伝いします。私はあなたが洪水の依存を見つけることはないと思う。 –

答えて

2

私は自分自身の質問に答えるだろうと思いますが、これは本当に複雑ではありません。

Microsoft.Extensions.Loggingはnetstandardのみをターゲットにしているため、他のすべての依存関係が必要です。

Microsoftパッケージを削除して自分自身を再構築したら、それをすべての混乱なしにnetframeworkプロジェクトへの依存として追加することができました。

多分これは、将来的には誰か...

+0

スレッドを閉じるには、答えを受け入れる必要があります。 –

関連する問題