Не удается установить измененную сборку в глобальном кэше сборок - PullRequest
0 голосов
/ 04 января 2019

Использование Редактор сборок dnSpy Я изменил сборку IBM (DLL), защищенную авторским правом. Я исправил ошибку в исходном коде. После компиляции кода обратно в DLL я попытался установить его в GAC.

Но при этом InstallAssembly выдал следующую ошибку:

InstallAssembly failed with error -2146234299

Кто-нибудь знает, что это значит? Спасибо за любую помощь!

EDIT

На docs.microsoft.com Я вижу, что -2146234299 означает FusionErrorSignatureCheckFailed. Так что я не могу изменить DLL?

Ответы [ 2 ]

0 голосов
/ 04 января 2019

Я очень рад, что вы не можете это сделать ?.Это в точности , что и предполагалось:

Сборки, развернутые в глобальном кэше сборок, должны иметь строгое имя.Когда сборка добавляется в глобальный кэш сборок, проверка целостности выполняется для всех файлов, составляющих сборку. Кэш выполняет эти проверки целостности, чтобы гарантировать, что сборка не была подделана , например, когда файл был изменен, но манифест не отражает изменение.

Источник: Глобальный кэш сборок

0 голосов
/ 04 января 2019

Если вы измените сборку, ее подпись больше не будет действительной.

Вам придется создать для нее новую подпись, но вы не сможете этого сделать, потому что у вас нет доступа к закрытому ключу, который IBM использовал при создании исходной подписи.

Так что, боюсь, тебе не повезло.

...