2017-09-09 3 views
0

Ich habe ein Testprojekt int Core 2-Konsole (Core2ConsoleTest).Core 2 Fehler Referenzierung von Framework-Bibliotheken

Sie verweisen auf .NET Framework 4.6.1 Project (NetFrameworkTest).

NetFrameworkTest-Projekt verweist auf die Standard-System.Printer.dll.

Core2ConsoleTest arquitecture

Download Core2ConsoleTest project here

Wenn ich auf jede System.Printer Funktion aufrufen, habe ich den Fehler: Konnte Datei oder Assembly ‚System.Printing, Version = 4.0.0.0, Culture = neutral nicht geladen werden, PublicKeyToken = 31bf3856ad364e35 '. El sistema no puede encontrà el archivo especificado.

Ich habe mit anderen Standardbibliotheken wie System.Windows.Forms.dll und dem gleichen Fehler getestet, wenn das Core-Projekt auf ein Nuget-Paket verweist, das Standardbibliotheken verwendet.

Hinweis: Der gleiche Fehler mit ASP.Net Core 2

Vielen Dank für Ihre Hilfe!

Antwort

0

Ich habe wirklich das Problem mit ASP.Net Core Framework Project. Ich bin nicht in der Lage, ein neues Projekt mit Core 2.0 zu erstellen und auf eine Framework-Bibliothek zu verweisen, die auf System.Printing.dll oder andere Bibliotheken verweist.

Aber @mairaw mir einen anderen Weg gab: Auf einem Projekt, das richtig in Core-1.1, Aktualisierung der Bibliotheken Nuget bis 2,0 arbeitet funktioniert.

So sieht es aus wie ein Visual Studio 2017 Problem oder Core-Vorlagen.

Mein Anliegen ist es, diese Funktionalität zu entfernen, weil es ermöglicht, die Core-Technologie in einer gestaffelten Weise mit einer hohen Codewiederverwendung anzunehmen.

Edit: Hinzugefügt Beispielprojekte

  1. CoreTest.zip -> Ein ASP.Net-Kern-Rahmen-Projekt erstellt Referenzierung Core-1.1 und .NET Framework 4.6.1 in der Vergangenheit aufgerüstet dann Core 2.0 mit Nuget : FUNKTIONIERT!

  2. Core2Framework.zip -> Ein ähnliches Projekt (ASP.Net-Kern-Rahmen-Projekt Referenzierung erstellt Core 2.0) erstellt mit Visual Studio 2017 15.3.4: Fehler beim Aufruf System.Prinig.dll aus dem .NET Framework 4.6.1-Projekt .

+1

Dies ist anders als das Beispiel, das Sie zur Verfügung gestellt (die Ziele "netcoreapp2.0" und ist daher kein asp.net Kern auf .net-Framework App). Können Sie ein ähnliches Repo für Ihr Problem bereitstellen? –

+0

Ich habe meine Antwort bearbeitet, um zwei einfache Projekte einzubeziehen. Natürlich, mit Core-Konsolen-Anwendungen ist nicht möglich (oder nicht), aber in ASP.Net Core Framework funktioniert es auf Core 1.1 und Core 2.0 von 1.1 aktualisiert, aber nicht mit einem neuen Projekt in Core 2.0 erstellt – Duefectu

1

Dies wird auf .NET Core nicht funktionieren.

.NET Core 2.0 verfügt über eine Kompatibilitätsschicht, die das Laden und Verwenden von .NET Framework-Bibliotheken ermöglicht. Dies funktioniert jedoch nur, wenn diese Bibliothek nur Typen und Methoden verwendet, die auch in .NET Core verfügbar sind.

Da System.Printing nicht Teil von .NET Core ist, kann diese Bibliothek mit der von Ihnen geposteten Ausnahme nicht darauf zugreifen.

Nur .NET Framework-Anwendungen können diese API verwenden (z. B. eine ASP.NET Core on .NET Framework-Anwendung).

+0

In Core 1.1 ist erlaubt. Ich habe ein Projekt, das diese Art von Architektur verwendet und es funktioniert. Sie wissen, ob dies eine Einschränkung ist, die in zukünftigen Versionen entfernt/gelöst wird? Diese Einschränkung führt meiner Meinung nach zu einem schwerwiegenden Kompatibilitätsproblem. – Duefectu

+0

'System.Printing' ist ein Wrapper über eine Windows-API in .NET Framework. Die Portierung auf .NET Core würde bedeuten, eine Version zu implementieren, die verschiedene Drucksysteme unter Windows, Linux und MacOS verwenden kann, die ich in keiner Roadmap sehe. –

+0

Vielen Dank für Ihre Antwort @Martin, aber ich spreche über Core Framework unter Windows mit dem entsprechenden .Net Framework installiert, es erfordert keine Linux oder Mac, und vor allem entfernen Sie eine Funktionalität, die Core 1.1 implementiert hatte. Ich habe eine ASP.Net Core Framework-Anwendung in der Produktion. Was mache ich mit ihr? https://1drv.ms/u/s!ArCJF44YRdJrlIVAsYzYJQX_MJgyLA Ähnliche Konversation auf https://docs.microsoft.com/en-us/dotnet/core/packages?hubRefSrc=email&utm_source=lfemail&utm_medium=email&utm_campaign=lfnotification – Duefectu

Verwandte Themen