Core 2错误引用框架库

时间:2017-09-09 18:23:37

标签: asp.net-core-2.0 .net-core-2.0

我在Core 2控制台(Core2ConsoleTest)中有一个测试项目。

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

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

Core2ConsoleTest arquitecture

Download Core2ConsoleTest project here

当我调用任何System.Printer函数时,我遇到错误:无法加载文件或程序集&System;打印,版本= 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35' 。 El sistema no puede encontrar el archivo especificado。

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

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

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

这不适用于.NET Core。

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

由于System.Printing不是.NET Core的一部分,因此该库无法使用您发布的例外来访问它。

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

答案 1 :(得分:0)

我确实遇到了ASP.Net核心框架项目的问题。我无法使用Core 2.0创建新项目并引用引用System.Printing.dll或其他库的Framework库。

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

因此它看起来像是Visual Studio 2017问题或核心模板。

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

编辑:添加了示例项目

  1. CoreTest.zip - > ASP.Net核心框架项目在过去创建了引用Core 1.1和.NET Framework 4.6.1,然后使用Nuget升级到Core 2.0: WORKS!

  2. Core2Framework.zip - >使用Visual Studio 2017 15.3.4创建的类似项目(ASP.Net核心框架项目创建引用Core 2.0):从.NET Framework 4.6.1项目调用System.Prinig.dll时出现错误。