无法在全局程序集缓存中安装修改后的程序集

Can't install a modified assembly in Global Assembly Cache

使用 dnSpy assembly editor 我修改了一个受版权保护的 IBM 程序集 (DLL)。我修复了源代码中的错误。将代码编译回 DLL 后,我尝试将其安装到 GAC 中。

但是在此期间,InstallAssembly 抛出以下错误:

InstallAssembly failed with error -2146234299

有人知道这是什么意思吗?感谢您的帮助!

编辑

docs.microsoft.com 上我可以看到 -2146234299 表示 FusionErrorSignatureCheckFailed。所以我不能修改DLL?

如果修改程序集,其签名将不再有效。

您必须为其创建一个新签名,但您无法这样做,因为您无权访问 IBM 在创建原始签名时使用的私钥。

所以恐怕你运气不好。

很高兴您不能这样做。这正是的目的:

Assemblies deployed in the Global Assembly Cache must have a strong name. When an assembly is added to the Global Assembly Cache, integrity checks are performed on all files that make up the assembly. The cache performs these integrity checks to ensure that an assembly has not been tampered with, for example, when a file has changed but the manifest does not reflect the change.

来源:Global Assembly Cache