2016-10-11 7 views
2

私は完全な.NETで書かれたライブラリを持っており、.NET Coreに移植しています。私はそれを.netstandard1.1(.NET45との互換性を持たせるため)をターゲットにするつもりです。.NET Coreライブラリでのdepencenciesを制限する必要がありますか?

Visual Studioでプロジェクトを作成すると、自動的にNETStandard.Library Nugetパッケージに依存します。

  • System.Runtime
  • System.Runtime.InteropServices

つの質問:

  1. は私を制限する必要がありますか

    マイライブラリにはたった2つのパッケージを必要としますプロジェクト依存関係は、これらの2つのパッケージだけになりますか?言い換えれば、ナゲット(またはビジュアルスタジオや別の魔法のようなもの)が、完全なNETStandard.Libraryではなく、必要なパッケージだけに制限することができますか?

  2. 最初の質問に対する回答が「いいえ」の場合は、その制限を実行することをお勧めしますか?

ありがとうございます。

+1

ごめんなさい。あなたの英語は大丈夫です。 –

答えて

4

...

  1. netstandard1.1フレームワークの選択は、そのバージョン利用可能なものに(ここでは、コードVS)エディタで利用できるAPI表面が制限されます。 netstandard1.1(利用できません)とnetstandard1.6(利用可能)のVSコードのFile.OpenReadでテストされています。
  2. NETStandard.Library依存性(バージョン1.6は両方の場合に適しています)はパッケージの依存関係です。アセンブリがコンパイルされると、アセンブリ自体は、NETStandard.Libraryメタパッケージにあるすべてのアセンブリではなく、実際に使用された外部アセンブリ(別名参照アセンブリ)(たとえば、System.RuntimeおよびSystem.Linq)を宣言します。

NuGet用にパッケージ化していない限り、アセンブリの参照の制限が行われます。 NuGetパッケージは、しかし、あなたはNuGetを使用し、その低減が重要な場合、私は正しい用語がトリミングNuGet依存だと思いNETStandard.Libraryパッケージ

を参照することになり、手動のプロセスは、(ショートバージョンをhereを説明:メタからのすべての参照をコピーしますあなたが使用していないものすべてをパッケージ化して削除してください)。

+1

確かに私の図書館はNuGetを介して利用できるようになりました。そのため、無用な依存関係を「トリム」(用語^^のおかげで)したかったのです。しかし、プロジェクトの参照を使用するときには不要であることを知っておくとよいでしょう。トリムプロセスについて、Visual Studioはコードから必要なNuGetの依存関係を見つけることができるようになりました。だからあなたの依存関係を整理する時が来たら、 'NETStandard.Library'を削除して、ライブラリがコンパイルされないところで'潜在的な修正を表示する 'を使います。 – fharreau

+1

最近のアップデートのヒント:netstandard1.4を最大で使用してください。 1.5と1.6は2.0に向かって壊れるだろう – Thomas

1
  1. 私はしかし、ライブラリを構築し、NETStandard.Libraryパッケージが含ま持っていない好きではないVSのように思える、それはVSのバグだかどうかわからないです(私の英語のため申し訳ありませんが、私はネイティブスピーカーではないよ):)そう、いいえ。
  2. Visual Studioコードやメモ帳などを使用していない限り、VSはプロジェクトの作成などを妨げるため、開発が遅くなります。

最終行 時期尚早な最適化は、利益よりも多くの問題を引き起こす可能性があります。まずライブラリを移植し、最適化が必要かどうかを確認してください。あなたの問題のいくつかの側面があります

+0

あなたの第1のポイントについては、NETStandard.Library'を除いて私のライブラリを構築することに何の問題もありません。それは既知の問題か、それとも最近経験しましたか?私は 'Visual Studio Community 2015 Update 3'を' .NET Core 1.0.1 - VS 2015 Tooling Preview 2'で使用しています。おそらくあなたの設定で壊れた何かがありますか? – fharreau

+0

VSの一時的な不具合のようです...今すぐ正しくコンパイルしてください。 – Ignas

関連する問題