Звучит так, будто вы хотите перестроить вторую сборку и подписать ее другим ключом, что было бы легко, если бы у вас был исходный код, поэтому, я думаю, у вас его нет?
Я думаю, что было бы легчеперестройте первую сборку так, чтобы она ссылалась на вторую имеющуюся у вас сборку, используя маркер открытого ключа, присутствующий во второй сборке.Проще, но не совсем просто.
Я думаю, что вы сможете достичь этого, пропустив первую сборку через ildasm.exe
, изменив токен открытого ключа в ссылке на вторую сборку, а затем запустите результатдо ilasm.exe
, чтобы создать новую версию первой сборки.
Грубый набросок необходимых шагов ...
- Выполнить
ildasm.exe /out=first.il first.dll
(или first.exe
) - Отредактируйте
first.il
и найдите внешний блок .assembly для ссылки на second.dll
- Измените маркер открытого ключа в этом блоке
- Запустите
ilasm.exe first.il
, чтобы получить first.dll
(или first.exe
)
Имейте в виду, я давно не использовал эти инструменты, и никогда не манипулирует публичнымиключевые токены таким образом, так что вам, вероятно, придется добавить немного собственной изобретательности.Но с другой стороны, я не могу придумать причину, по которой такой подход не работает.