【发布时间】:2020-06-08 23:04:27
【问题描述】:
在 Visual Studio 解决方案中,我需要有一个桌面 winforms 应用程序项目(.Net 框架 4.0),具体取决于 .Net Core 库项目。 我还不能将应用程序迁移到 .Net 核心,但我需要 .Net 核心(即 Microsoft.EntityFrameworkCore)的功能。这就是我创建一个新项目作为依赖项的原因。
似乎在构建时会导致问题:
对“Object”类型的引用声称它是在“System.Runtime”中定义的,但找不到
Idem with DateTime, Enum, Decimal, ...
好像两个项目中的对象都不一样。 我尝试使用 Microsoft.Windows.Compatibility,但它似乎不是一个解决方案。
有没有办法让两个项目一起构建和运行?
编辑 1
我尝试使用 .Net 标准项目而不是 .Net 核心,但在这种情况下,我什至无法将 .Net 框架应用程序的引用添加到 .Net 标准库。
项目“Std.csproj”以“netstandard2.0”为目标,它不能被以“.NetFramework,Version=v4.0”为目标的项目引用
编辑 2
.Net core 2.0 中的依赖项和 .Net Framework 4.6 中的应用程序仍然出现相同的错误:
项目“Std.csproj”以“netstandard2.0”为目标,它不能被以“.NetFramework,Version=v4.6”为目标的项目引用
编辑 3
我终于摆脱了 .Net Framework 4.6.1 的错误。但是,根据 required configuration 对于这个框架,这意味着我不能再部署到 Windows XP。学习...
由于我的目标是逐步迁移到 .Net Core,因此欢迎提出任何建议。
【问题讨论】:
-
没有。如果要共享代码,请创建一个 .NET Standard 库。 EF Core 3.1 适用于 .NET Old - 它是一个 .NET Standard 2.0 包。您可能需要升级 EF Core 版本。
-
是的。 EfCore 3.1 据说(从未测试过)与 NetStandard 2.0 兼容
-
@TomTom 这是包的目标。即使有人尝试过,它也无法使用更高版本的类
-
等待 -
.NET 4.0多年来不受支持。它从未获得任何类型的 .NET Standard 支持 - 它不能,因为它甚至不支持async/await。您需要升级到 .NET 4.6.1,最好是 .NET 4.7.2 以避免兼容性库出现问题。 -
如果您不喜欢有趣的程序集绑定异常,最好使用 4.7.2 或 4.8。
标签: c# .net .net-core compatibility