我有一个包含两个项目的解决方案,一个在 Framework 中,另一个在 Core 中。他们彼此互动。但是即使我安装了这个 Nuget 库,我还是在 Framework 项目中收到了这个错误。我注意到当我删除旧版本 (System.Configuration) 时,此代码将无法编译...
ConfigurationManager.ConnectionStrings["NAME"].ConnectionString;
Run Code Online (Sandbox Code Playgroud)
这告诉我它无论如何都忽略了“System.Configuration.ConfigurationManager”。但是,如果我同时安装了它,则会在运行时出现上述错误。为什么框架项目甚至需要这个库?这是一个核心库,不是吗?
我应该指出,Framework 项目是一个类库。
不能从 .NET Core 程序集引用 .NET Framework 程序集(反之亦然)。
它可能看起来有效,并且它可能确实适用于非常小的程序集子集,但是文档说你不能,并且你会得到错误来证明文档是正确的。你刚刚得到了其中之一。
那么如果要共享代码,有什么解决方案呢?那么您可以创建一个 .NET Standard 程序集。这些可以通过被引用既.NET的核心和.NET框架。但是,如果您需要一个程序集是 .NET Core,而另一个程序集是 .NET Framework,那么您就不走运了。您将不得不使用间接通信方式(例如 HTTP 或命名管道或内存映射文件),就好像它是两种完全不同的编程语言一样。
| 归档时间: |
|
| 查看次数: |
488 次 |
| 最近记录: |