-1

我想在 Windows Server 2008 R2 上将程序集安装到全局程序集缓存 (gac)。自上次 Windows 更新以来,它无法正常工作。

例如,我采用 AjaxControlToolkit:

首先我使用工具 sn 检查它,然后我尝试使用 gacutil 使用 gacuil 和 -i 选项安装它。命令提示符显示以下内容:

D:\lib>sn -v AjaxControlToolkit.dll

Microsoft (R) .NET Framework Strong Name Utility  Version 4.0.30319.1
Copyright (c) Microsoft Corporation.  All rights reserved.

Assembly 'AjaxControlToolkit.dll' is valid

D:\lib>gacutil -i AjaxControlToolkit.dll
Microsoft (R) .NET Global Assembly Cache Utility.  Version 4.0.30319.1
Copyright (c) Microsoft Corporation.  All rights reserved.

Failure adding assembly to the cache: Strong name signature could not be verifie
d.  Was the assembly built delay-signed?

对 sn 的检查表明,程序集一切正常,并且是正确的字符串签名。但尽管如此 gacutil 无法验证强名称签名。

4

2 回答 2

-1

如错误所示,您的程序集可能是延迟签名的。您可能正在使用 sn.exe -Vr 选项跳过验证。尝试以下操作并在不跳过验证的情况下验证程序集(注意使用 -vf 而不是 -v)。

sn.exe -vf AjaxControlToolkit.dll

gacutil 没有跳过验证的原因可能是因为您的 sn.exe 是 32 位,而 gacutil.exe 是 64 位或其他方式。根据进程的位数,验证跳过可能会有所不同。

如果程序集是延迟签名的,请确保在将其添加到 GAC 之前确实对其进行签名。

于 2015-02-17T22:29:00.337 回答
-1

D:\lib\40>sn.exe -vf AjaxControlToolkit.dll

Microsoft (R) .NET Framework 强名称实用程序版本 4.0.30319.1 版权所有 (c) Microsoft Corporation。版权所有。

程序集“AjaxControlToolkit.dll”有效

于 2015-02-18T10:18:46.057 回答