netstandard20中的System.Data.Linq

时间:2017-08-29 09:16:01

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

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

  

FileNotFoundException:无法加载文件或程序集'System.Data.Linq,Version = 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,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'。不应加载引用程序集以执行。它们只能在Reflection-only loader上下文中加载。 (HRESULT异常:0x80131058)

2 个答案:

答案 0 :(得分:3)

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

您甚至很难通过兼容性填充程序添加对.NET 4.6项目的引用,但由于目标运行时上没有的功能,它在运行时失败

答案 1 :(得分:0)

通过使用Mindbox.Data.Linq NuGet软件包,我可以解决在.NET Standard 2.0库中使用System.Data.Linq的需要。

安装后,您应该可以使用System.Data.Linq命名空间,就像编写.NET Framework一样!