MySQLConnector DLL 错误 System.Threading.Tasks.Extensions 链接

问题描述 投票:0回答:2

我尝试将我的应用程序(C#、Desktop-WPF、.NET Framework 4.8)发布到测试系统,我的问题是:

如果我使用 nuget 包 mysqlconnector (1.3.7) 而不升级自动安装的 System.Buffers/Memory/Numerics/Threading ... Packs 并且我尝试连接到服务器,我的开发上会出现以下错误系统:

Die Datei oder Assembly“System.Threading.Tasks.Extensions, 版本=4.2.0.1,文化=中性,PublicKeyToken=cc7b13ffcd2ddd51” 否则,可能会发生这种情况。迪吉丰丁 装配清单定义与装配规范无关 überein。 (Ausnahme von HRESULT:0x80131040)

但是如果我在我的测试系统上运行该应用程序,它就可以工作。

当我升级其他 nuget 包时,它将在我的开发系统上运行,但不再在测试系统上运行(删除了所有旧文件),现在,如果我尝试连接,在我的测试系统上会出现以下消息:

Die Datei oder Assembly“System.Threading.Tasks.Extensions, 版本=4.1.0.0,文化=中性,PublicKeyToken=cc7b13ffcd2ddd51” 否则,可能会发生这种情况。迪吉丰丁 装配清单定义与装配规范无关 ü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>
c# .net-assembly mysql-connector
2个回答
1
投票

好的,我找到了解决方案:

  1. 卸载了 mysqlconnector nuget 和自动安装的包

  2. 打开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>
    
  3. 重新安装了mysqlconnector而不更新自动安装的包,现在它可以在开发和测试系统上运行。


0
投票

我通过使用 MySQL.Data DLL 文件版本 8.0.33 而不是版本 8.0.28 解决了该问题。

© www.soinside.com 2019 - 2024. All rights reserved.