Ich habe eine Portable Class Library mit den folgenden projects.json
erstellt %Vor%Wenn ich dies jedoch von einer ASP.NET-Anwendung (nicht von ASP.NET Core) referenziere, erhalte ich die folgende Laufzeitausnahme:
%Vor%Wenn ich es von einer Konsolenanwendung aus anspreche, läuft es ohne Probleme.
Irgendwelche Ideen?
Bearbeiten
Hier haben Sie eine Lösung gefunden: Ссылка
Wie in der Aktualisierung erwähnt, besteht eine Lösung für dieses Problem darin, die PCL als Paket zu verpacken. Dies steht jedoch im Gegensatz zu dem, was man versucht, wenn man den .Net-Standard mit einer PCL anvisiert. Auch die Paketlösung wird mühsam zu debuggen.
Für mich erscheint es als Fehler in der Net Core Tools Preview, wenn ich die Grenze von csproj zu xproj überschreite. Um dies zu beweisen, wenn man das Paket über nuget installiert:
%Vor% Das System.Runtime
sieht in project.json
als "System.Runtime": "4.1.0"
korrekt aus. Betrachtet man die Referenzen, wird man sehen, dass die Version als System.Runtime (4.0.20)
aufgeführt ist. Auch der tatsächliche bin hat absolut Bezug auf die tatsächliche DLL.
Das Kopieren der .Net 4.6.2-DLL aus dem Nuget-Cache in den Bin löst das Problem. Dies ermöglicht direkte Referenzen, ohne Ihre PCL zu verpacken.
Wenn wir Net Standard 2.0 erreichen und die Werkzeuge ein wenig reifer werden, gehört diese Art der Sache hoffentlich der Vergangenheit an.
UPDATE: Wenn Sie die neueste .NET Core-Version (1.1) und Binärdateien verwenden, ist dies behoben. Die Toolvorschau ist immer noch auf 1.0.1, also müssen Sie sicherstellen, dass Sie die Binärdateien für 1.1 installieren.
Ich erhielt eine ähnliche Warnung von ReSharper, während ich Komponententests durchführte:
Die Lösung, die für mich funktionierte, bestand darin, dies in der Package Manager-Konsole auszuführen:
%Vor%Was ich beobachtet habe, war, dass der Verweis im betroffenen Projekt vor dem Ausführen des obigen Befehls auf System.Runtime v 4.0.20.0, aber nach der Ausführung auf 4.1.1.0
geändert wurdeIch hatte dieses Problem, nachdem ich das .NET-Framework von 4.6.2 auf 4.7 aktualisiert hatte, nachdem ich eine Weile in verschiedenen Foren und im Internet herumgegrubbert und viel versucht hatte, fand ich eine Lösung und bestand aus zwei Schritten:
Ich habe alle Abhängigkeiten gelöscht und alle Nugets UPDATE-PACKAGE -projectName -install aktualisiert.
Nach dem ersten Schritt habe ich jeden fehlenden Datensatz überprüft, der mir eine Ausnahme in Runtime gab und erkannte, dass das Framework in unserem lokalen Rechner eine DLL hat, die nichts mit dem nugget zu tun hat, dann löschte ich alle local dll Referenzen und installieren Sie es aus dem nugget. Nach der Reinigung von der fehlenden DLL aus dem Nuget mein Projekt läuft ohne Probleme.
Ich hoffe, dass dir das hilft.