2017-09-09 52 views
0

我有一个测试项目INT核心2控制台(Core2ConsoleTest)。核心2错误引用框架库

它引用了.NET Framework 4.6.1 Project(NetFrameworkTest)。

NetFrameworkTest项目引用标准的System.Printer.dll。

Core2ConsoleTest arquitecture

Download Core2ConsoleTest project here

当我打电话给任何System.Printer功能我有错误:无法加载文件或程序集“System.Printing,版本= 4.0.0.0,文化=中立,公钥= 31bf3856ad364e35' 。 El sistema no puede encontrar el archivo especificado。

我使用其他标准库(如System.Windows.Forms.dll)进行测试,如果Core项目引用使用标准库的Nuget包,则会出现相同的错误。

注意:与ASP.Net Core 2相同的错误

感谢您的帮助!

回答

0

我真的有与ASP.Net核心框架项目的问题。我无法用Core 2.0创建一个新的项目,并引用一个引用System.Printing.dll或其他库的框架库。

但@mairaw给了我另一种方式:在Core 1.1中工作的项目中,将库Nuget更新为2.0,工作正常。

所以它看起来像一个Visual Studio 2017问题或核心模板。

我担心的是删除此功能,因为它允许以高代码重用的交错方式采用Core技术。

编辑:添加样品项目

  1. CoreTest.zip - >甲ASP.Net核心框架项目创建过去引用核心1.1和.NET Framework 4.6.1,然后升级到核2.0使用的NuGet :作品!

  2. Core2Framework.zip - >一个类似的项目(ASP.Net核心框架项目创建引用核2.0)与创建的Visual Studio 2017年15.3.4:ERROR从.NET框架4.6.1项目调用System.Prinig.dll时。

+1

这与你提供的例子不同(它的目标是'netcoreapp2.0',因此它不是.net框架上的asp.net核心应用程序)。你能为你的问题提供一个类似的回购吗? –

+0

我编辑了我的答案,包括两个简单的项目。当然,使用Core控制台应用程序不是可行的(或不是),但是在ASP.Net Core Framework中,它在1.1版本和Core 2.0版本上运行,但是没有在Core 2.0中创建的新项目 – Duefectu

1

这不适用于.NET Core。

.NET Core 2.0有一个兼容层,允许加载和使用.NET Framework库,但只有当这个库只使用.NET Core上也可用的类型和方法时,它才能工作。

由于System.Printing不是.NET Core的一部分,因此该库将无法访问它,但发布的异常无法访问。

只有.NET Framework应用程序可以使用此API(例如.NET Framework应用程序上的ASP.NET Core)。

+0

在Core 1.1中是允许的。我有一个使用这种类型的体系结构的项目,它的工作原理。你知道这是否会在将来的版本中被删除/解决?这个限制在我看来造成了严重的兼容性问题。 – Duefectu

+0

'System.Printing'是.NET Framework中的一个Windows API的封装。将它移植到.NET Core将意味着实现一个可以在Windows,Linux和MacOS上使用各种打印系统的版本,这在任何路线图中都没有。 –

+0

感谢您的回复@Martin,但我正在谈论Windows上的Core Framework,并安装了适当的.Net Framework,它不需要Linux或Mac,最重要的是删除了已经实现了Core 1.1的功能。我有一个生产中的ASP.Net核心框架应用程序。我跟她做什么?在https://docs.microsoft.com/en-us/dotnet/core/packages?hubRefSrc=email&utm_source=lfemail&utm_medium=email&utm_campaign=lfnotification https://1drv.ms/u/s!ArCJF44YRdJrlIVAsYzYJQX_MJgyLA相关谈话 – Duefectu