web-dev-qa-db-de.com

ASP .NET CORE konnte keine Datei oder Assembly mit benutzerdefinierter Assembly finden

Ich bin auf ein komisches Problem gestoßen.

Ich habe im Grunde genommen meinen eigenen Web-Stack für .NET-Core, den ich in einige .dlls eingebaut habe, und ich möchte diese von einer anderen ASP CORE-Lösung referenzieren.

VS scheint die Assemblys zu finden, in denen ich durch Typen navigieren kann usw. Ich kann das Projekt auch ohne Probleme erstellen, aber wenn IIS) dann den Server ausführt, erhalte ich einen internen Server-Fehler, der besagt:

FileNotFoundException: Datei oder Assembly 'myDLL, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = null' konnte nicht geladen werden. Die angegebene Datei wurde vom System nicht gefunden.

Die referenzierten DLLs befinden sich im Debug-Ordner, und das Seltsame ist, dass ich sie referenzieren und verwenden kann, wenn ich ein neues ASP Core-Projekt in derselben Lösung wie der Web-Stack erstelle ohne Probleme.

Warum geschieht dies nur, wenn ein Projekt außerhalb der Webstack-Lösung ausgeführt wird, und was kann ich tun, um es überall lauffähig zu machen?

21
Tokfrans

Das .NET Core Tooling in VS 2017 (Vorschau <15.3)/.NET CLI <2.0 unterstützt das Referenzieren von Assemblys auf der Festplatte nicht vollständig. Sie müssen die Bibliothek als NuGet-Paket packen oder eine Projektreferenz verwenden ("gleiche Lösung"). Der technische Grund ist, dass alle erforderlichen Assemblys und Versionen beim Kompilieren aufgelöst und in die Datei .deps.json Geschrieben werden. Wenn Sie beliebige Assemblys laden, schlägt dies möglicherweise fehl, da entweder die Assembly oder ihre Abhängigkeiten nicht gefunden werden können (oder ein Konflikt vorliegt).

32
Martin Ullrich

zum laden der external dll in core Projekt, benötigt um:

  1. gegenüber 2017 mit Version 15.3 oder höher.
  2. Microsoft.Extensions.DependencyModel In Ihrem Projekt installiertes NuGet-Paket.
0
A.R.F