Konnte nicht gefunden System.Laufzeit 4.1.0.0 beim laufen ASP.NET web-Anwendung
Ich habe eine Portable Class Library mit den folgenden Projekten.json
{
"supports": {},
"dependencies": {
"Microsoft.CSharp": "4.0.1",
"Microsoft.NETCore.Portable.Compatibility": "1.0.1",
"NETStandard.Library": "1.6.0",
"System.Runtime.Serialization.Primitives": "4.1.1",
"System.Runtime": "4.1.0"
},
"frameworks": {
"net451": {},
"netstandard1.5": {}
}
}
Jedoch beim Bezug auf das von einem ASP.NET die Anwendung (nicht ASP.NET Kern), bekomme ich die folgende exception zur Laufzeit:
Could not load file or assembly 'System.Runtime, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
Wenn ich mich auf es von eine Konsolenanwendung läuft es ohne Probleme.
Irgendwelche Ideen?
Bearbeiten
Fand eine Lösung hier: https://stackoverflow.com/a/37639003/691045
- Hat Ihr ASP.NET Anwendung
project.json
? Sind Sie laden Ihre gemeinsam genutzte Bibliothek, die über NuGet oder direkt auf Sie verweisen? - Nein, es ist nur die Ausrichtung .NET 4.6, und ich bin direkt auf Sie verweisen. Wie ich schon sagte, ich habe, dass die setup-Arbeit in eine test-Lösung, obwohl ich glaube ich nur noch, dass die Arbeit nach dem entfernen der Referenz und re-hinzufügen - vor, dass ich den gleichen Fehler. Also ich bin mir nicht sicher, was das Problem ist.
- Direkt auf eine .NET-Core-Projekt aus .NET-Projekt funktioniert nicht sehr gut im Moment. Wenn Sie produzieren ein nuget-Paket (dotnet pack) von Ihr .NET-Core-Bibliothek, installieren Sie dann das Paket in den .NET-Projekt, haben Sie vielleicht bessere/konsistentere Glück.
- Danke @NateBarbettini, wie es aussieht ist das die einzige option jetzt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie bereits in den update eine Lösung für dieses problem ist die Paket die PCL-als nuget-Paket. Dies geht jedoch im Gegensatz zu dem, was man versucht ist zu tun, wenn man Ziele .Net Standard mit PCL. Auch die Paket-Lösung wird zu umständlich zu Debuggen.
Mir erscheint es als ein Fehler mit Net-Core-Tools-Vorschau beim überqueren der csproj zu xproj Grenze. Zum Beweise, wenn man das Paket installiert, über nuget:
Den
System.Runtime
korrekt sieht in derproject.json
als"System.Runtime": "4.1.0"
. Suchen Sie Referenzen, wird man sehen, dass die version aufgeführt, wieSystem.Runtime (4.0.20)
. Auch die tatsächliche bin absolut Verweis auf die dll.Einfach kopieren .Net 4.6.2 dll aus dem nuget-cache in den Papierkorb löst das problem. Dies ermöglicht eine direkte Verweise ohne Verpackung, bis Sie Ihre PCL.
Hoffentlich wenn wir uns treffen Net-Standard 2.0 und das Werkzeug reift ein bisschen mehr, diese Art der Sache wird eine Sache der Vergangenheit.
UPDATE: Wenn Sie die neuesten .Net-Core-release (1.1) und Binärdateien dieses Problem behoben ist. Das tool Vorschau ist noch auf 1.0.1, so dass Sie haben, um sicherzustellen, dass Sie installieren Sie die Binärdateien, die zum 1.1.
War ich immer eine ähnliche Warnung von ReSharper während der Ausführung der unit tests:
Die Lösung, die für mich gearbeitet wurde, diese laufen in der Paket-Manager-Konsole:
Was ich beobachtet habe ist, dass vor dem ausführen des oben genannten Befehls, die Referenz in dem betroffenen Projekt wurde zum System.Laufzeit v 4.0.20.0, aber post-Ausführung, verändert es 4.1.1.0
War ich das Problem nach dem upgrade .NET framework von 4.6.2 4.7, nach dem Graben um auf mehreren Foren und das internet für eine Weile und versuchen, eine Menge, ich habe eine Lösung gefunden und besteht aus zwei Schritten:
Ich gelöscht, alle Abhängigen Montage und aktualisiert alle nugets UPDATE-PAKET -Projektname -neu installieren.
Nachdem der erste Schritt, überprüfte ich jeden fehlenden Montage, die werfen mir eine Ausnahme in der runtime und erkennen, dass in einigen Fällen das framework hat eine dll in unserem lokalen Rechner, hat nichts zu tun mit der nuget-dann habe ich alle gelöscht lokalen dll-Verweise und installieren Sie es von der nuget. Nach dem reinigen aus der man die fehlende dll (wobei Sie von der Nuget mein Projekt laufen ohne Problem.
Hoffe, dass Ihnen helfen.