我想在Windows Server 2008 R2上将程序集安装到全局程序集缓存(gac)。自上次Windows更新以来它无法正常工作。
例如,我采用AjaxControlToolkit:
首先我用工具sn检查它,之后,我尝试使用gacuil和-i选项使用gacutil安装它。命令提示符显示以下内容:
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无法验证强名称签名。
答案 0 :(得分:0)
您的程序集可能会因错误提示而延迟签名。您可能正在使用sn.exe -Vr选项跳过验证。尝试以下操作并验证程序集而不跳过验证(请注意使用-vf而不是-v)。
sn.exe -vf AjaxControlToolkit.dll
gacutil没有跳过验证的原因可能是因为你的sn.exe是32位而gacutil.exe是64位还是相反。验证跳过可能会有所不同,具体取决于流程的位数。
如果程序集有延迟签名,请确保在将其添加到GAC之前对其进行签名。
答案 1 :(得分:-1)
D:\ lib \ 40> sn.exe -vf AjaxControlToolkit.dll
Microsoft(R).NET Framework强名称实用程序版本4.0.30319.1 版权所有(c)Microsoft Corporation。保留所有权利。
汇编' AjaxControlToolkit.dll'是有效的