2017-09-09 3 views
0

J'ai un projet de test dans la console Core 2 (Core2ConsoleTest).Référence de l'erreur Core 2 Bibliothèques de frameworks

Il fait référence au projet .NET Framework 4.6.1 (NetFrameworkTest).

Le projet NetFrameworkTest référence le fichier System.Printer.dll standard.

Core2ConsoleTest arquitecture

Download Core2ConsoleTest project here

Quand j'appelle à une fonction de System.Printer Je l'erreur: Impossible de charger le fichier ou l'assembly « System.Printing, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35 '. El sistema no puede encontrar el archivo especificado.

J'ai testé avec d'autres bibliothèques standard comme System.Windows.Forms.dll et la même erreur si le projet Core fait référence à un package Nuget qui utilise des bibliothèques standard.

Note: la même erreur avec ASP.Net Core 2

Merci pour votre aide!

Répondre

0

J'ai vraiment le problème avec ASP.Net Core Framework Project. Je ne parviens pas à créer un nouveau projet avec Core 2.0 et référencer une bibliothèque Framework qui référence System.Printing.dll ou d'autres bibliothèques.

Mais @mairaw m'a donné un autre moyen: Sur un projet fonctionnant dans Core 1.1, mettant à jour les bibliothèques Nuget vers 2.0, fonctionne correctement. Il ressemble donc à un problème Visual Studio 2017 ou à des modèles Core.

Mon souci est de supprimer cette fonctionnalité, car elle permet d'adopter la technologie Core de manière échelonnée avec une réutilisation de code élevée.

Modifier: exemples de projets Ajouté

  1. CoreTest.zip -> Un cadre ASP.Net projet de base faisant référence Core 1.1 créé et .NET Framework 4.6.1 dans le passé, puis mis à niveau vers Core 2.0 en utilisant Nuget : ŒUVRES!

  2. Core2Framework.zip -> Un projet similaire (ASP.Net de base du projet-cadre créé référence Core 2.0) créé avec Visual Studio 2017 15.3.4: ERREUR lors de l'appel System.Prinig.dll du projet .NET Framework 4.6.1 .

+1

Ceci est différent de l'exemple que vous avez fourni (qui cible 'netcoreapp2.0' et n'est donc pas un noyau asp.net sur. application). Pouvez-vous fournir un dépôt similaire pour votre problème? –

+0

J'ai édité ma réponse pour inclure deux projets simples. Bien sûr, avec les applications de la console Core n'est pas possible (ou pas), mais dans ASP.Net Core Framework il fonctionne sur Core 1.1 et Core 2.0 mis à jour à partir de 1.1, mais non avec un nouveau projet créé dans Core 2.0 – Duefectu

1

Cela ne va pas fonctionner sur .NET Core. .NET Core 2.0 dispose d'une couche de compatibilité qui permet de charger et d'utiliser des bibliothèques .NET Framework mais cela ne fonctionne que si cette bibliothèque utilise uniquement des types et des méthodes également disponibles sur .NET Core.

Puisque System.Printing ne fait pas partie de .NET Core, cette bibliothèque ne pourra pas y accéder à l'exception de ce que vous avez publié. Seules les applications .NET Framework peuvent utiliser cette API (par exemple, une application ASP.NET Core sur .NET Framework).

+0

Dans Core 1.1 est autorisé. J'ai un projet qui utilise ce type d'architecture et cela fonctionne. Vous savez s'il s'agit d'une limitation qui sera supprimée/résolue dans les futures versions? Cette limitation crée un sérieux problème de compatibilité à mon avis. – Duefectu

+0

'System.Printing' est un wrapper sur une API Windows dans .NET Framework. Le portage vers .NET Core impliquerait l'implémentation d'une version pouvant utiliser différents systèmes d'impression sur windows, linux et macOS, ce que je ne vois pas sur les roadmap. –

+0

Merci pour votre réponse @Martin, mais je parle de Core Framework sur Windows avec le .Net Framework approprié installé, il ne nécessite pas Linux ou Mac, et surtout supprimer une fonctionnalité qui avait implémenté Core 1.1. J'ai une application ASP.Net Core Framework en production. Qu'est-ce que je fais avec elle? https://1drv.ms/u/s!ArCJF44YRdJrlIVAsYzYJQX_MJgyLA Conversation associée sur https://docs.microsoft.com/fr-fr/dotnet/core/packages?hubRefSrc=email&utm_source=lfemail&utm_medium=email&utm_campaign=lfnotification – Duefectu