MySQLConnector DLL 错误 System.Threading.Tasks.Extensions 链接
Posted
技术标签:
【中文标题】MySQLConnector DLL 错误 System.Threading.Tasks.Extensions 链接【英文标题】:MySQLConnector DLL Error System.Threading.Tasks.Extensions linking 【发布时间】:2021-07-21 05:27:29 【问题描述】:我尝试将我的应用程序(C#、Desktop-WPF、.NET Framework 4.8)发布到测试系统,我的问题是:
如果我使用 nuget 包 mysqlconnector (1.3.7) 而没有(!)升级自动安装的 System.Buffers/Memory/Numerics/Threading ... 包并且我尝试连接到服务器,我收到以下错误我的开发系统:
Die Datei oder Assembly "System.Threading.Tasks.Extensions, 版本=4.2.0.1,文化=中性,PublicKeyToken=cc7b13ffcd2ddd51" oder eine Abhängigkeit davon wurde nicht gefunden。死神 Manifestdefinition der Assembly stimmt nicht mit dem Assemblyverweis überein。 (Ausnahme von HRESULT: 0x80131040)
但是如果我在我的测试系统上运行应用程序,它就可以工作。
当我升级其他 nuget 包时,它将在我的开发系统上运行,但在测试系统上不再运行(删除所有旧文件),现在在我的测试系统上,如果我尝试连接,则会出现以下消息:
Die Datei oder Assembly "System.Threading.Tasks.Extensions, 版本=4.1.0.0,文化=中性,PublicKeyToken=cc7b13ffcd2ddd51" oder eine Abhängigkeit davon wurde nicht gefunden。死神 Manifestdefinition der Assembly stimmt nicht mit dem Assemblyverweis überein。 (Ausnahme von HRESULT: 0x80131040)
一个非常简单的解决方法是用我的测试系统上的旧 DLL 文件替换新的 DLL 文件,但这不是解决方案,我删除并重新安装了 nugetpackages 但它总是一样的,我认为某处必须是一个条目链接到错误的文件/版本
csproj 文件中的原始行(我尝试了不同的数字但没有任何帮助):
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll</HintPath>
</Reference>
【问题讨论】:
【参考方案1】:好的,我找到了解决方案:
卸载 mysqlconnector nuget 和自动安装包
打开 App.config 并删除:
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.1" newVersion="4.2.0.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.4.0" newVersion="4.1.4.0" />
</dependentAssembly>
在没有更新自动安装包的情况下重新安装了 mysqlconnector,现在它可以在 dev 和 testsystem 上运行。
【讨论】:
以上是关于MySQLConnector DLL 错误 System.Threading.Tasks.Extensions 链接的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Windows 上获取 lib_mysqludf_sys.dll 文件