Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# netstandard20中的System.Data.Linq_C#_.net Standard_.net Standard 2.0 - Fatal编程技术网

C# netstandard20中的System.Data.Linq

C# netstandard20中的System.Data.Linq,c#,.net-standard,.net-standard-2.0,C#,.net Standard,.net Standard 2.0,我有一个netstandard20项目,它引用了一个.NET4.6项目,除了调用.NET4.6项目中的任何功能外,所有的编译和运行都会发生以下错误 FileNotFoundException:无法加载文件或程序集'System.Data.Linq,版本=4.0.0.0,区域性=neutral,PublicKeyToken=b77a5c561934e089'。系统找不到指定的文件 在VS 2017中,在dependencies/SDK/Microsoft.NETCore.App下的project

我有一个netstandard20项目,它引用了一个.NET4.6项目,除了调用.NET4.6项目中的任何功能外,所有的编译和运行都会发生以下错误

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

在VS 2017中,在
dependencies/SDK/Microsoft.NETCore.App
下的project explorer中,我可以看到
System.Data.dll
System.Data.Common.dll
,但没有提及
System.Data.Linq.dll
,我假设这是我的问题,它没有被拉进来

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

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

BadImageFormatException:无法加载文件或程序集'System.Data.Linq,版本=4.0.0.0,区域性=neutral,PublicKeyToken=b77a5c561934e089'。不应加载引用程序集以执行。它们只能在仅反射加载程序上下文中加载。(来自HRESULT的异常:0x80131058)


System.Data.Linq
不是.NET标准2.0和.NET核心2.0的一部分,因此不能在该平台上使用


即使您已经能够通过兼容垫片添加对.NET 4.6项目的引用,但由于目标运行时上不可用的功能,该项目在运行时失败

通过使用NuGet包,我能够解决在.NET标准2.0库中使用
System.Data.Linq
的需要


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

谢谢你,这个项目可能帮我省了几个星期的工作!有一天仍然需要从Linq迁移到SQL,但至少它不再阻止到Core的迁移:)。如果这样做有效,您将节省一天、一周甚至一个月的时间。我仍然认为LinqToSql是那些喜欢完成任务并知道如何完成任务的人的优秀ORM。我想我会加入旅鼠的行列,跳进海里。