Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 无法使用gacutil将程序集安装到全局程序集缓存(GAC)_.net_.net Assembly_Gac_Global Assembly Cache - Fatal编程技术网

.net 无法使用gacutil将程序集安装到全局程序集缓存(GAC)

.net 无法使用gacutil将程序集安装到全局程序集缓存(GAC),.net,.net-assembly,gac,global-assembly-cache,.net,.net Assembly,Gac,Global Assembly Cache,我想在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.

我想在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无法验证强名称签名。

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

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

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

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

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

程序集“AjaxControlToolkit.dll”有效


AjaxControlToolkit(可在codeplex上获得)没有延迟签名。但是,由于这是操作系统的一个bug,它已被windows更新损坏,因此唯一的解决方案将是从Codeplex中卸载…AjaxControlToolkit.dll。您可以从Codeplex下载它。使用-vf会产生相同的结果(参见下面的答案)。
sn.exe -vf AjaxControlToolkit.dll