我在Core 2控制台(Core2ConsoleTest)中有一个测试项目。
它引用了.NET Framework 4.6.1项目(NetFrameworkTest)。
NetFrameworkTest项目引用标准的System.Printer.dll。
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相同的错误
感谢您的帮助!
答案 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技术,并且代码重用率很高。
编辑:添加了示例项目
CoreTest.zip - > ASP.Net核心框架项目在过去创建了引用Core 1.1和.NET Framework 4.6.1,然后使用Nuget升级到Core 2.0: WORKS!
Core2Framework.zip - >使用Visual Studio 2017 15.3.4创建的类似项目(ASP.Net核心框架项目创建引用Core 2.0):从.NET Framework 4.6.1项目调用System.Prinig.dll时出现错误。