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 链接的主要内容,如果未能解决你的问题,请参考以下文章

dll综合解决工具怎么样

如何在 Windows 上获取 lib_mysqludf_sys.dll 文件

文件签名 exe,dll,sys

底层驱动文件sys和dll是不是一定要数字签名?有效期过了是不是要重签?dll文件是不是还要WHQL认证?

Dll Hijacker

lua中怎么加载dll文件?