我有一个引用.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.dll
和System.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)
答案 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一样!