错误:
An unhandled exception of type 'System.IO.FileLoadException' occurred in WindowsFormsApplication4.exe
Additional information: Could not load file or assembly 'MySql.Data, Version=8.0.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d' or one of its dependencies. Strong name validation failed. (Exception from HRESULT: 0x8013141A)
信息:
Visual Studio 2015
Windows 10-x64
C#
MySQL的6.9.9
问题:
我使用MySQL创建了一个类库,以对我的在线数据库运行各种查询。
在将dll包含在我的单独项目中之后,我正在使用的唯一代码行如下:(它将引发异常)
// Runs a simple select statement to find matches for 'John Doe' in my online MySQL database table... and stores results to a dataset
DataSet ds = MyDllNameSpace.Database.People.Load("John", "Doe");
App.Config文件:
我的dll项目:(我没有对此项目签名)
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.data>
<DbProviderFactories>
<remove invariant="MySql.Data.MySqlClient" />
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=8.0.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data></configuration>
我的单独项目:(我没有签署此项目)
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-8.0.8.0" newVersion="8.0.8.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
我搜索/尝试过的内容:
确保在两个项目中使用相同版本的MySQL
将dll放入我的项目的bin文件夹中的我的库和MySQL中,并将它们添加为参考
还尝试将我的库和MySQL的dll添加到单独的项目中,然后选择“始终复制”
更改App.config文件(假设问题在这里?)
最后,我尝试对dll项目和使用具有相同密码的dll的项目进行签名(选中对程序集进行签名)。这也什么也没做。 :(
谢谢
最佳答案
您是否尝试过签署项目?这可能会消除您的错误。
关于您的错误的此链接也许会有所帮助:https://blogs.msdn.microsoft.com/keithmg/2012/03/20/strong-name-validation-failed-exception-from-hresult-0x8013141a/
或这个stackoverflow问题:
Strong Name Validation Failed
关于c# - .net无法加载文件或程序集MySql.Data。强名验证失败(0x8013141A),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45766913/