c# - 带有程序集引用的 asp.net 3.5 引用项目在单元测试中抛出签名/强名称错误

标签 c# .net reference .net-assembly

我在数据层中引用了 MySQL.Data 5.2.3 程序集,太棒了。我目前有一个小型控制台应用程序 inteh 引用 JUST THIS 数据层的相同解决方案,它连接得很好。然后我创建了一个单元测试项目(也在同一个解决方案中)并引用了同一个数据层项目,从中我得到:

Test method LTTests.WrapperTest.LoginTest threw exception: System.IO.FileLoadException: Could not load file or assembly 'MySql.Data, Version=5.2.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d' or one of its dependencies. Strong name signature could not be verified. The assembly may have been tampered with, or it was delay signed but not fully signed with the correct private key. (Exception from HRESULT: 0x80131045).

所以我想了解...我可以为控制台 exe 执行此操作并且它可以工作但不能进行单元测试?这让我对在明显有缺陷的东西上进行构建感到紧张,但我不知道下一步该怎么做。我迷路了,我一直在重新添加各种东西来寻找交易是什么,但我不知道。

异常来自数据层而不是来自测试(每个堆栈)所以它就像测试正在调用层的方法(duh)并且数据层正在呕吐但不是针对控制台?

谢谢。

最佳答案

这不是错误原因的答案,而是一种可能的找出错误的方法:

您可以使用属于 dotnet sdk 的“Assembly Binding Log Viewer”(Fuslogvw.exe) 来找出加载的内容和原因。

如果启用日志记录,它可以向您显示从哪个目录加载了哪些程序集,以及哪个程序集导致它加载。

有关详细信息,请参阅 http://msdn.microsoft.com/en-us/library/e74a18c4(v=vs.80).aspx

所以可能存在不同版本的 MySql.Data,错误消息意味着找到的版本号不是它期望的版本号。

关于c# - 带有程序集引用的 asp.net 3.5 引用项目在单元测试中抛出签名/强名称错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4846718/

相关文章:

c# - 使用 Roslyn 创建诊断分析器时缺少包

C# getters 和 setters 方法定义 - 初学者

c# - 在 winforms 应用程序中上传图像

c++ - 使用 std::forward 时,为什么我可以在传入右值时调用左值引用函数?

perl - hashref 查找中的语法错误,看不出原因

java - 垃圾收集器是否处理 java 中的静态变量或方法?

c# - 检索系统日期

c# - 从数据 GridView 中动态删除列

c# - vs2010循环依赖问题

c# - HTTPListener 不在 .NET 4.6 和 Server2012R2 上使用 TLS 1.1/1.2