2017-08-11 18 views
0

.NET Core dll(.Net Standard 2.0)を参照する.NET Frameworkコンソールアプリケーション(.Net Framework 4.7)があります。 .NetコアdllはNETStandard.Libraryの外では何も使用しません。.Net Framework 4.7コンソールアプリケーション参照.NETコアdll - 出力ディレクトリの予期しないファイル

私は/ bin/Debugディレクトリの予期しないファイルに気付きました。いくつかの調査の後、私は、これらは、参照パッケージのいずれかから来ていないと判断しているが、このディレクトリの内容が異なるのDLLがで終わるさせ、我々が使用しているマシン間で異なる

C:\Program Files (x86)\Microsoft Visual Studio\Preview\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\\net461\ref 

からコピーされています出力ディレクトリ。これは、デバッグプロセスに矛盾を生じさせていました。

私は問題の原因となったものを解決したので、これの説明が何であるか、それが起こらないようにする方法があるかどうか、つまりプロジェクトで参照されているパッケージのみをコピーするかto/bin/Debug

+0

これらはもはや「予想外」ではありませんが、予期していません。 –

答えて

2

これらのファイルは、.NET標準ライブラリが.NET Frameworkで動作することを想定していても必要です。実行時にすべてのアセンブリを正しく読み込むことができるように、必要な型の転送定義が含まれています。たとえば、ライブラリは(.NET標準> = 2.0)またはSystem.Runtime.dll(.NET標準< 2.0)からSystem.Objectを参照できます。出力ファイルの追加のアセンブリは、型を.NET Frameworkのmscorlib.dllにリダイレクトします。

同様の質問に答えるthis GitHub issueがあります。

今後の.NET Framework 4.7.1では必要なすべての型定義が用意されているため、プロジェクトが4.7.1をターゲットにすると、プロジェクトの出力フォルダに追加のアセンブリは追加されません。

関連する問題