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

时间:2011-01-31 00:51:21

标签: c# .net reference .net-assembly

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

  

测试方法LTTests.WrapperTest.LoginTest抛出异常:System.IO.FileLoadException:无法加载文件或程序集'MySql.Data,Version = 5.2.3.0,Culture = neutral,PublicKeyToken = c5687fc88969c44d'或其中一个它的依赖关系。强名称签名无法验证。程序集可能已被篡改,或者是延迟签名但未使用正确的私钥完全签名。 (HRESULT异常:0x80131045)。

所以我试图理解......我可以为控制台执行此操作并且它可以工作但不是单元测试?这让我很紧张,建立在显然存在缺陷的东西上,但我不知道接下来要做什么。我迷路了,我一直在重新添加各种东西,寻找这笔交易,我不知道。

异常来自数据层,而不是来自测试(每个堆栈),所以它就像测试调用图层的方法(duh)而数据层正在调整而不是控制台?

感谢。

1 个答案:

答案 0 :(得分:1)

这不是为什么会出现错误但可能找到它的方法的答案:

您可以使用属于dotnet sdk的“程序集绑定日志查看器”(Fuslogvw.exe)来查找加载的内容和原因。

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

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

因此可能存在不同版本的MySql.Data,错误消息表示找到的版本号不是它所期望的版本号。