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

8

Ich bin auf ein seltsames Problem gestoßen.

Ich habe im Grunde meinen eigenen Web-Stack für .NET-core, den ich in ein paar .dlls eingebaut habe, und ich möchte auf diese von einer anderen ASP CORE-Lösung verweisen.

VS scheint die Assemblies zu finden, wo ich Typen usw. navigieren kann. Ich kann das Projekt auch ohne Probleme erstellen, aber wenn IIS dann den Server ausführt, erhalte ich einen internen Serverfehler, der besagt:

  

FileNotFoundException: Datei oder Assembly konnte nicht geladen werden. myDLL , Version = 1.0.0.0, Culture = neutral, PublicKeyToken = null '. Das System kann die angegebene Datei nicht finden.

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

Warum passiert das nur, wenn es auf einem Projekt außerhalb der Web-Stack-Lösung ausgeführt wird, und was kann ich tun, um es überall runnable zu machen?

    
Tokfrans 14.05.2017, 17:08
quelle

1 Antwort

14
___ tag123aspnetcore ___ ASP.NET Core ist ein schlankes, zusammensetzbares und plattformübergreifendes Framework für die Erstellung von Web- und Cloud-Anwendungen. Es ist vollständig Open Source auf GitHub. ASP.NET Core-Anwendungen können unter Windows mit dem vollständigen .NET Framework oder einem kleineren .NET Core oder unter Linux und MacOS mit .NET Core und Mono ausgeführt werden. ___ tag123c ___ C # (sprich "Cis") ist eine objektorientierte Programmiersprache auf hohem Niveau, die für die Erstellung einer Vielzahl von Anwendungen entwickelt wurde, die auf dem .NET Framework (oder .NET Core) ausgeführt werden. C # ist einfach, leistungsfähig, typsicher und objektorientiert. ___ tag123netcore ___ .NET Core ist eine Open-Source-modulare Implementierung von .NET Framework. Es kann in einer Vielzahl von Anwendungen und Branchen verwendet werden, von Servern und Rechenzentren bis hin zu Apps und Geräten. .NET Core wird von Microsoft unter Windows, Linux und macOS unterstützt. ___ tag123netassembly ___ Eine Gruppe von Klassen und Namespaces, die in eine Binärdatei kompiliert wurden und in einer .NET-spezifischen Sprache wie C # oder VB.NET geschrieben wurden. ___ qstntxt ___

Ich bin auf ein seltsames Problem gestoßen.

Ich habe im Grunde meinen eigenen Web-Stack für .NET-core, den ich in ein paar .dlls eingebaut habe, und ich möchte auf diese von einer anderen ASP CORE-Lösung verweisen.

VS scheint die Assemblies zu finden, wo ich Typen usw. navigieren kann. Ich kann das Projekt auch ohne Probleme erstellen, aber wenn IIS dann den Server ausführt, erhalte ich einen internen Serverfehler, der besagt:

  

FileNotFoundException: Datei oder Assembly konnte nicht geladen werden. myDLL , Version = 1.0.0.0, Culture = neutral, PublicKeyToken = null '. Das System kann die angegebene Datei nicht finden.

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

Warum passiert das nur, wenn es auf einem Projekt außerhalb der Web-Stack-Lösung ausgeführt wird, und was kann ich tun, um es überall runnable zu machen?

    
___ qstnhdr ___ ASP .NET CORE konnte Datei oder Assembly mit benutzerdefinierter Assembly nicht finden ___ antwort43966827 ___

Das .NET Core Tooling in VS 2017 (& lt; 15.3 Vorschau) / .NET CLI & lt; 2.0 unterstützt das Referenzieren von Assemblys auf Datenträger nicht vollständig. Sie müssen die Bibliothek als NuGet-Paket verpacken oder eine Projektreferenz verwenden ("gleiche Lösung"). Der technische Grund liegt darin, dass alle erforderlichen Assemblys und Versionen während der Kompilierung aufgelöst und in die Datei .deps.json geschrieben werden. Wenn Sie beliebige Assemblys laden, kann dies fehlschlagen, weil entweder die Assembly oder ihre Abhängigkeiten nicht gefunden werden (oder ein Konflikt zwischen ihnen besteht).

    
___
Martin Ullrich 14.05.2017, 17:23
quelle