我有一个引用 .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 AssembliesMicrosoftFramework.NETFrameworkv4.6System.Data.Linq.dll
则会收到以下错误
BadImageFormatException:无法加载文件或程序集"System.Data.Linq,版本=4.0.0.0,区域性=中性,公钥令牌=b77a5c561934e089"。不应加载引用程序集以执行。它们只能在仅反射加载程序上下文中加载。(HRESULT的例外:0x80131058)
我能够通过使用Mindbox.Data.Linq NuGet包来解决在.NET Standard 2.0库中使用System.Data.Linq
的需求。
安装后,您应该能够像为 .NET Framework 编写时一样使用System.Data.Linq
命名空间!
System.Data.Linq
不是.NET Standard 2.0和.NET Core 2.0的一部分,因此不能在该平台上使用。
即使很难,您也可以通过兼容性填充码添加对 .NET 4.6 项目的引用,但由于目标运行时不可用的功能,它在运行时失败