2017-08-17 37 views
3

我有一个.NET标准2.0类库项目与安装Nuget包System.Data.SqlClient版本4.4.0和Windows窗体.NET Framework 4.7项目有一个对该类库的引用。无法加载.Net标准2.0类库中的文件或程序集错误

安装Nuget Package并构建解决方案很成功。但在运行时每一个代码到达有从的SqlClient组件内的任何东西(例如,从SqlConnection的一个实例)的方法一次得到这个错误:

Could not load file or assembly 'System.Data.SqlClient, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.

考虑this的问题,我想这个问题也是那里是Nuget包的最后一个主要版本。

编辑

我下载的NuGet包并解压它,从\参考\ netstandard2.0文件夹在我的Windows窗体项目的\ BIN \ Debug文件夹手动复制的System.DataSqlClient.dll,现在作品。确切的情况也发生在Microsoft.Win32.Registry包中。所以我几乎相信,这是我的错,我做错了一些事情,但是当我使用System.Drawing.Primitive Package对它进行测试时,它完美地工作,无需复制dll。现在我真的很困惑。

回答

2

我想你可能已经想通了,但希望它能帮助别人 - 在此上浪费了一些时间。

因此,为了使一切工作,你就需要引用System.Data.SqlClient的在被引用您的.NET标准库 从这一点来说一切Windows窗体的项目应该是工作就像一个魅力

正如您已经提到的System.Data.SqlClient.dll不在输出目录中。 类似.NET标准库的声音还没有与自身的依赖库二进制文件一起抓取。在.NET标准引用中没有任何东西像“复制本地”选项,所以我没有看到任何检查或设置此行为的方法

+0

这指出了我在正确的方向。我使用nuget在.NET应用程序端安装包,并解决了问题。 – Psychoboy

相关问题