web-dev-qa-db-ja.com

ASP .NET COREは、カスタムアセンブリを含むファイルまたはアセンブリを見つけることができませんでした

私は奇妙な問題に遭遇しました。

基本的に、.NETコア用の独自のWebスタックをいくつかの.dllに組み込み、別のASP CORE-solution。

VSは、タイプなどをナビゲートできるアセンブリを見つけるようです。問題なくプロジェクトをビルドすることもできますが、IISがサーバーを実行すると、内部サーバーエラーが表示されます:

FileNotFoundException:ファイルまたはアセンブリ 'myDLL、Version = 1.0.0.0、Culture = neutral、PublicKeyToken = null'をロードできませんでした。システムは、指定されたファイルを見つけることができません。

参照されたDLLはデバッグフォルダにあり、本当に奇妙なことは、Webスタックと同じソリューションで新しいASP Coreプロジェクトを作成すると、それを参照して使用できることです問題なく。

これは、Webスタックのソリューションのプロジェクトoutsideで実行しているときにのみ発生するのはなぜですか?

21
Tokfrans

VS 2017の.NET Core Tooling(<15.3プレビュー)/ .NET CLI <2.0は、ディスク上のアセンブリの参照を完全にはサポートしていません。ライブラリをNuGetパッケージとしてパッケージ化するか、プロジェクト参照(「同じソリューション」)を使用する必要があります。技術的な理由は、必要なすべてのアセンブリとバージョンがコンパイル中に解決され、.deps.jsonファイル。任意のアセンブリを読み込むときに、アセンブリまたはその依存関係が見つからない(または互いに競合する)ため、これが失敗する場合があります。

32
Martin Ullrich

external dllcoreプロジェクトで、必要なもの:

  1. vsバージョン15.3以降の2017。
  2. Microsoft.Extensions.DependencyModelプロジェクトにインストールされたNuGetパッケージ。
0
A.R.F