启动.NET Core类库时加载MySql.Data程序集失败的求助
嘿,针对你在Linux上用Rider开发.NET Core类库时遇到的这个MySql.Data加载异常,我整理了几个实用的排查步骤,你可以挨个试试:
清理NuGet本地缓存
有时候重装包后,本地缓存里的损坏文件还在搞事情。直接在终端跑这个命令清空所有NuGet缓存:dotnet nuget locals all --clear之后回到项目目录,重新还原依赖:
dotnet restore检查项目文件的版本配置
打开你的.csproj文件,确认MySql.Data的版本是不是明确指定为8.0.13.0,有没有版本不一致的地方。比如确保包引用是这样的:<PackageReference Include="MySql.Data" Version="8.0.13" />另外,也可以看看项目生成的
runtimeconfig.json文件,有没有程序集版本的强制绑定配置,要是有冲突的话手动调整一下。手动验证程序集完整性
找到NuGet包的本地安装目录(一般在~/.nuget/packages/mysql.data/8.0.13),检查对应.NET Core版本的MySql.Data.dll是否存在,还可以用file命令验证文件没损坏:file ~/.nuget/packages/mysql.data/8.0.13/lib/netcoreapp2.1/MySql.Data.dll要是文件真的坏了,直接删掉这个版本的整个目录,再重新执行
dotnet restore拉取完整的包。试试升级到兼容的新版本
8.0.13是比较老的版本了,可能和你当前的.NET Core版本在Linux上有兼容性问题。不妨试试更新到最新的稳定版MySql.Data,修改.csproj里的版本号后重新还原,说不定问题就解决了。排查Rider的IDE缓存问题
有时候Rider的本地缓存也会导致加载异常。你可以先重启Rider试试,要是不行的话,去File > Settings > Build, Execution, Deployment > NuGet里确认NuGet源配置没问题,没有用错本地源。
内容的提问来源于stack exchange,提问作者GiantQuartz

