2017-07-07 12 views
3

対2017.3プレビュー3、私は3つのプロジェクトでソリューションを作成しました.Netstandard2ライブラリ(.Net Standard v2.0 preview )、コンソールapplicationA(.Netフレームワーク)およびコンソールapplicationB(.Netコア)96個以上の.Net Standard 2アセンブリがConsole(.Netフレームワーク)のbinフォルダにコピーされます。アプリケーション

両方のコンソールアプリケーションがNetstandard2ライブラリを参照しています。

Netstandard2のすべてのアセンブリ(96 dllファイル)がConsole applicationAのbinフォルダにコピーされ、console applicationB(.Netコア)はコピーされません。

これらの96 dllファイルをすべてbinフォルダにコピーするには、これは正常ですか?

Netstandardクラスのライブラリを新しいブランドマシン(Windows 7 x86)に依存するコンソールアプリケーションを展開するにはどうすればよいですか? .net 4.6.1とdotnet-sdk2の両方をインストールする必要がありますか?

答えて

2

私はすべてのクレジットは、それが終了して、プロジェクトの作成者は、ツールが付属してcompatのシムのいずれかのスマートトリミングをしない、@weshaggard@terrajobst

現在に行くGithub dotnet.standard project

に質問を掲載していますそれらすべてをコピーします。

依存関係が依存していない場合は、それらを削除する/配布しないことは安全ですが、盲目的に実行すると依存関係の一部が壊れる可能性があります。

彼らは出力から不要なバイナリをトリミングするために取り組んでいるa toolあり:

また

、プロジェクトの作者、安全で何に展開。 .NET Standard 1.xでは、これらのファイルがすべて必要です。 .NET Standard 2.0+をターゲットとするバイナリのみが使用されている場合は、ファイルの数が少なくなる方法があります。

しかし、netstandard.dll(たとえば、System.Net.Http、System.ValueTuple、System.Runtime.InteropServices.RuntimeInformation、System.Data.Common)を超えた余分なファイルが存在する場合もあります。

手作業でサブセット化することは可能ですが、Wesは次のように述べています。アプリケーションをテストする必要があります。

.NET Framework 4.7.1以降では、.NET Standard用の追加ファイルを展開する必要はありません。現在、Xamarinまたは.NET Coreをターゲットにしている場合は、すでにそうです。

詳細については、Github dotnet.standard project

関連する問題