【问题标题】:Trouble resolving project dependency issues between .NET Core and .NET Framework无法解决 .NET Core 和 .NET Framework 之间的项目依赖问题
【发布时间】:2026-01-19 08:45:02
【问题描述】:

我的 .NET Core 控制台应用程序在同一解决方案中引用了数据层项目,但遇到了无法解决的错误。

Job 是 .NET Core 2.0。

Project 是 .NET Framework 4.8。

【问题讨论】:

    标签: .net visual-studio .net-core


    【解决方案1】:

    您的数据库需要面向 .NET Standard 2.0 而不是 .NET Framework 4.8。

    .NET Core 和 .NET Framework 是不同的框架

    您无法从 .NET Core 引用 .NET Framework 库,正如 Microsoft 的这张图表所示:

    为了解决这个问题,微软为类库引入了 .NET Standard:

    .NET Core 2.0 及更高版本和 .NET Framework 4.6.1(但最好是更高版本)都可以引用面向 .NET Standard 2.0 及更低版本的库 - 请参阅 .NET Standard 文档中的implementation support

    您需要将您的库重新定位到 .NET Standard 2.0。如果您的库需要的 .NET Standard 中缺少任何 API,它们可能会以 NuGet 包的形式提供 - 您可以在 apisof.net 上查找这些 API。

    请注意,如果您在数据库中使用 LINQ to SQL,那么您就不走运了,因为它仅适用于完整的 .NET,不适用于 .NET Standard 或 .NET Core 项目。

    以上图表来源于Introducing .NET Standard

    【讨论】:

    • 非常有用的信息。我的项目对于我想做的事情来说已经过时了。钱币。我想我可以在完全转换之前在降级版本中创建一个控制台应用程序。我没有意识到LINQ to SQL ..我也遇到了麻烦。非常感谢您的回复。
    • 在升级之前我必须了解这方面的最佳实践。我总是非常感谢那些花时间帮助他人的人。这占用了我很多时间!
    • 我想我会添加一个我觉得有用的链接.. 我在控制台应用程序中的一些异步代码导致事情抛出导致程序崩溃的错误。我使用的是 linq to sql,但也使用了异步方法。 recaffeinate.co/post/how-to-await-console-application