私は奇妙な問題に遭遇しました。
基本的に、.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で実行しているときにのみ発生するのはなぜですか?
VS 2017の.NET Core Tooling(<15.3プレビュー)/ .NET CLI <2.0は、ディスク上のアセンブリの参照を完全にはサポートしていません。ライブラリをNuGetパッケージとしてパッケージ化するか、プロジェクト参照(「同じソリューション」)を使用する必要があります。技術的な理由は、必要なすべてのアセンブリとバージョンがコンパイル中に解決され、.deps.json
ファイル。任意のアセンブリを読み込むときに、アセンブリまたはその依存関係が見つからない(または互いに競合する)ため、これが失敗する場合があります。
external dll
core
プロジェクトで、必要なもの:
Microsoft.Extensions.DependencyModel
プロジェクトにインストールされたNuGetパッケージ。