c# - 在标准 .net 控制台应用程序中使用 .Net Core dll
问题描述
我使用 .NET Core 2.1 在 VS 2017 中构建了一个类库。现在,我想在 .NET 框架 4.6.2 中构建的标准控制台应用程序中使用该 dll。
当我在控制台应用程序中引用 .NET Core dll 时,我收到此错误:
未处理的异常:System.IO.FileLoadException:无法加载文件或程序集“System.Runtime,版本=4.2.1.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)在 Marketo_Console.Program.Main(String[] args)
如何解决这个问题?如何在标准控制台应用程序中使用 .NET Core dll?
解决方案
如何解决这个问题?
你不能。至少不是直接的。
- .NET Core 可以运行面向 .NET Core 本身或 .NET Standard 的程序集
- .NET Framework 可以运行面向 .NET Framework 本身或 .NET Standard 的程序集
因此,无法将两个分别针对 Full Framework 和 Core 的程序集放在一起。不在核心中,也不在完整框架中。(您也许可以在各处找到黑客和“但对我来说这是可行的”解决方案,但对于它们的特定用例来说,它们是超级脆弱的例外)。
您可以将 .NET Core 程序集的目标框架切换到 .NET Framework 或 .NET Standard,或者您可以提供多个目标框架来构建支持 .NET Core和完整框架的 Nuget 包。
但是,如果您需要一个 .NET Core 程序集和一个 .NET Framework 应用程序,则不能以这种方式一起使用它们。
推荐阅读
- python - Matplotlib 极坐标直方图已移动 bin
- node.js - Hostmonster SMTP 凭证不适用于托管在数字海洋水滴上的节点应用程序
- python - matplotlib 中的离散数据图
- javascript - Wix react-native-navigation 更改选项卡并推送屏幕
- java - 无法从 logback 发送错误的电子邮件
- c++ - 基本加密和解密方法不起作用 C++ 11
- r - 无法将 POST 请求传递给 mongolite 的 Find 查询,它返回 null
- javascript - 没有画布的小径
- javascript - 值应该为空,如果数据没有使用 lodash 的值
- c# - 通过商店更改玩家精灵