【问题标题】:System.Data.Linq in netstandard20netstandard20 中的 System.Data.Linq
【发布时间】:2018-02-06 16:14:23
【问题描述】:

我有一个引用 .Net 4.6 项目的 netstandard20 项目,除了我在 .Net 4.6 项目中调用任何功能外,所有项目都能编译和运行,我收到以下错误。

FileNotFoundException:无法加载文件或程序集“System.Data.Linq,版本=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”。系统找不到指定的文件。

在 VS 2017 中,在 Dependancies / SDK / Microsoft.NETCore.App 下的项目资源管理器中,我可以看到 System.Data.dllSystem.Data.Common.dll,但没有提到 System.Data.Linq.dll,我假设这是我的问题,它没有被拉入。

如何让我的项目包含System.Data.Linq.dll

如果我包含 C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Data.Linq.dll 我会收到以下错误

BadImageFormatException:无法加载文件或程序集“System.Data.Linq,版本=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”。不应加载引用程序集以供执行。它们只能在 Reflection-only loader 上下文中加载。 (HRESULT 异常:0x80131058)

【问题讨论】:

    标签: c# .net-standard .net-standard-2.0


    【解决方案1】:

    通过使用Mindbox.Data.Linq NuGet 包,我能够解决我在 .NET Standard 2.0 库中使用 System.Data.Linq 的需求。

    安装它之后,您应该能够使用 System.Data.Linq 命名空间,就像为 .NET Framework 编写时一样!

    【讨论】:

    • 谢谢,这个项目可能为我节省了数周的工作!总有一天仍然需要离开 Linq-to-SQL,但至少它不会再阻止向 Core 的迁移 :)。
    • 如果这有效,您将节省一天、一周甚至一个月。我仍然认为 LinqToSql 对于那些喜欢把事情做好并且知道他们是如何做的人来说是更好的 ORM。我想我会加入旅鼠并跳入大海。
    【解决方案2】:

    System.Data.Linq 不是 .NET Standard 2.0 和 .NET Core 2.0 的一部分,因此不能在该平台上使用。

    即使您已经能够通过兼容性填充程序添加对 .NET 4.6 项目的引用,但由于目标运行时不可用的功能,它在运行时会失败

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多