如何修复,无法加载文件或程序集"XXX"或其依赖项之一.强名称签名无法验证

use*_*567 14 c# asp.net asp.net-mvc

目前我有System.Web.Mvc程序集的源代码.建筑很好.但是在运行时它抛出,

无法加载文件或程序集"System.Web.Mvc"或其依赖项之一.强名称签名无法验证.程序集可能已被篡改,或者是延迟签名但未使用正确的私钥完全签名.(HRESULT异常:0x80131045)

我该怎么调试呢?我正在使用Windows 7.

Dar*_*rov 17

您似乎正在尝试调试ASP.NET MVC源代码并构建自己的System.Web.Mvc程序集版本.这种方法的问题是你不能用官方密钥签名.这意味着您可能正在使用并依赖于System.Web.Mvc的任何第三方组件也应该根据您自己的版本进行重新编译.以Razor为例.它还取决于System.Web.Mvc.你也重新编译了吗?

就个人而言,我发现构建自己的System.Web.Mvc版本非常困难.实际上,我使用公开的PDB符号来调试源代码.所以我建议你不要编译自己的版本,而是与官方版本一起工作.看一下这篇文章:https://stackoverflow.com/a/13610108/29407


ily*_*lya 5

刚刚解决了同样的问题:

  • 使用asp.net源代码构建解决方案(我的称为“ Runtime.sln”)
  • 从中卸载测试文件夹
  • System .Web.Mvc项目的打开属性
  • 取消选中“签名”选项卡上的“签名”
  • 尝试重建解决方案
  • 取消选中每个失败项目的“签名”选项卡上的“签名”

我还从AssemblyInfo.cs的InternalsVisibleTo属性中删除了强名称详细信息,但仅当您也要构建测试项目时才可能需要。

之后,我将System.Web.Mvc,System.Web.WebPages.Deployment和System.Web.WebPages项目作为现有项目添加到新解决方案中,现在可以调试其源代码了。