强名称签名无法验证

时间:2013-08-02 10:46:35

标签: strongname hresult assembly-signing

我正在Windows 2008 R2服务器上部署ASP.Net MVC 3应用程序。我使用文件系统从Visual Studio 2010发布了该应用程序。我有两个已签名延迟的程序集并具有有效的snk文件。部署是使用xcopy完成的,因为它是内部应用程序。

但是经过一段时间后,有一些解决方案相关的变化。我重命名了两个程序集但没有更改snk文件。现在部署后,我收到以下错误 -

  

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

     

描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

     

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

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

我基本上是Winforms人,在我的办公室里学习网络。最近我遇到了同样的问题,但得到了解决。我注意到,在我的情况下,我的机器上没有安装Windows SDK for Windows 7 and .NET Framework 4。尝试安装并重新启动系统。

您需要使用sn.exe验证您的程序集。在管理模式下打开命令提示符

sn.exe -Vr publicTokenNumber

以上将验证签署程序集的延迟。可以在Sn.exeC:\Program Files\Microsoft SDKs\Windows\v6.1\bin路径中找到C:\Program Files\Microsoft SDKs\Windows\v6.1\bin\x64。尝试运行exe文件并验证您的程序集。我给出了类似的答案here。你也可以参考。

希望它有所帮助。