在标准.net控制台应用程序中使用.Net Core dll

时间:2018-11-14 09:32:10

标签: c# .net dll .net-core

我已使用.NET Core 2.1在VS 2017中构建了一个类库。 现在,我想在.NET Framework 4.6.2内置的标准控制台应用程序中使用该dll。

当我在控制台应用程序中引用.NET Core dll时,出现此错误:

  

未处理的异常:System.IO.FileLoadException:无法加载文件   或程序集'System.Runtime,版本= 4.2.1.0,区域性=中性,   PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一。的   找到的程序集的清单定义与程序集不匹配   参考。 (HRESULT的异常:0x80131040)位于   Marketo_Console.Program.Main(String [] args)

该如何解决?如何在标准控制台应用程序中使用.NET Core dll?

1 个答案:

答案 0 :(得分:2)

  

如何解决这个问题?

您不能。至少不是直接。

  • .NET Core可以运行针对.NET Core本身或.NET Standard的程序集
  • .NET Framework可以运行针对.NET Framework本身或.NET Standard的程序集

因此无法将两个分别针对Full Framework和Core的程序集组合在一起。不在Core中,也不在完整框架中。 (您也许可以找到hacks,到处都是“但对我来说这是可行的”解决方案,但是对于它们的特定用例,它们是非常脆弱的例外)。

您可以可以将.NET Core程序集的目标框架切换到.NET Framework或.NET Standard,或者可以提供多个个目标框架来构建支持.NET Core 完整框架的Nuget软件包。

但是,如果您需要.NET Core程序集 .NET Framework应用程序,则不能以这种方式一起使用它们。