sin*_*rix 9 .net c# compatibility .net-core
在 Visual Studio 解决方案中,我需要一个依赖于 .Net Core 库项目的桌面 winforms 应用程序项目(.Net Framework 4.0)。我还无法将应用程序迁移到 .Net core,但我需要 .Net core 的功能(即 Microsoft.EntityFrameworkCore)。这就是我创建一个新项目作为依赖项的原因。
它似乎在构建时引起了问题:
对类型“Object”的引用声称它是在“System.Runtime”中定义的,但找不到
同上DateTime,Enum,Decimal,...
好像两个项目中的对象不一样。我尝试使用 Microsoft.Windows.Compatibility 但它似乎不是一个解决方案。
有没有办法让两个项目一起构建和运行?
编辑1
我尝试使用 .Net 标准项目而不是 .Net core,但在这种情况下,我什至无法将 .Net Framework 应用程序的引用添加到 .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 的错误。但是,根据该框架所需的配置,这意味着我无法再部署到Windows XP。学习...
由于我的目标是逐步迁移到 .Net Core,因此欢迎任何建议。
我需要一个 [...] .Net Framework 4.0,具体取决于 .Net Core 库项目。
有没有办法让两个项目一起构建和运行?
对不起。这不是它的工作方式。您不能直接从 .NET Core 引用 .NET Framework 程序集,也不能反过来从 .NET Framework 引用 .NET Core 程序集。
(我有轻微的似曾相识的感觉,我会尝试找到这方面的重复项)。
您可以做的是在 .NET Standard 中创建一个共享程序集,两者都可以引用,但在这种情况下,它实际上不会帮助您,因为您需要更高的 .NET Framework 版本才能使用 .NET Standard 2.0。
有效的方法是在程序集之间创建连接,而不是通过引用进行直接程序集绑定。一个可以通过 HTTP 上的 REST 或通过内存映射文件或任何其他方式来调用另一个,使两种不兼容的技术进行通信。