asp.net 如何修复,未能加载文件或程序集“Pinterest”或它的某一个依赖项,未能验证强名称签名

7gs2gvoe  于 2022-12-20  发布在  .NET
关注(0)|答案(6)|浏览(310)

目前我有System.Web.Mvc程序集的源代码。构建很好。但是在运行时它会抛出,
未能加载文件或程序集“System.Web.mvc”或它的某个依赖项。未能验证强名称签名。该程序集可能已被篡改,或者它被延迟签名但未使用正确的私钥完全签名。(HRESULT异常:0x80131045)
我怎么调试呢?我用的是windows7。

c90pui9n

c90pui9n1#

您似乎正在尝试调试ASP.NET MVC源代码,并且生成了自己版本的System.Web.Mvc程序集。此方法的问题是您无法使用正式密钥对其进行签名。这意味着您可能正在使用并且依赖于System.Web.Mvc的任何第三方组件也应该根据自己的版本重新编译。以Razor为例。它也依赖于System.Web。Mvc.你也重新编译了吗?
就我个人而言,我发现构建自己的System.Web.Mvc版本是非常困难的。实际上,我通过使用公共可用的PDB符号来调试源代码。所以我建议你不要编译自己的版本,而是使用官方版本。请看这篇文章:https://stackoverflow.com/a/13610108/29407

w8rqjzmb

w8rqjzmb2#

刚刚解决了同样的问题:

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

我还从AssemblyInfo.cs的InternalsVisibleTo属性中删除了强名称细节,但只有当您还想构建测试项目时才需要它。
之后,我将System.Web.Mvc、System.Web.WebPage.Deployment和System.Web.WebPages项目作为现有项目添加到我的新解决方案中,现在我可以调试它们的源代码了。

w8rqjzmb

w8rqjzmb3#

我以前遇到过这种情况,删除对System.Web.mvc的引用并重新添加它是有效的。
我还做了一个清洁和重建工作。
希望能有所帮助

9lowa7mx

9lowa7mx4#

在AssemblyInfo.cs文件中,将有一行[assembly:System.Reflection.AssemblyDelaySign(true)],如果将其删除,则GAC问题将得到解决

lqfhib0f

lqfhib0f5#

我试着用Visual Studio性能分析器分析我的应用程序,但第三方程序集出现了这个错误。我做了一个干净的重新构建的解决方案,它工作了。

px9o7tmv

px9o7tmv6#

将以下行添加到配置文件中:〈托管环境影子复制二进制程序集=“false”/〉

相关问题