Как патчить подписанную dll

У меня есть проект C#, который использует стороннюю библиотеку, которая зависит от старой версии DevExpress. В dll(DevExpress.Utils.v9.2.dll) есть ошибка этой версии DevExpress. Я использую.NET Reflector и Reflexil для исправления DLL и использую исправленную DLL вместо старой. Затем, когда я перестраиваю решение, Visual Studio показывает мне ошибку:

Ошибка CS0012 Тип 'XtraForm' определен в сборке, на которую нет ссылок. Вы должны добавить ссылку на сборку 'DevExpress.Utils.v9.2, Версия =9.2.6.0, Культура = Нейтральная, PublicKeyToken=b88d1754d700e49a'.

Кажется, оригинальная DLL подписана, что вызывает проблему. Я пытался удалить строгое имя, но оно не работает. Как решить?

2 ответа

Используйте отличную альтернативу ILSpy и друзьям: dnSpy.

Проблема в том, что другие сборки ссылаются на подписанный DevExpress.Utils.v9.2.dll. После внесения исправлений dll не размечается, поэтому он не работает. Я сам решаю эту проблему, добавляя ссылочные сборки для обновления и удаления строгих имен и обновляя ссылочные сборки с помощью средства удаления строгих имен, поставляемого в комплекте с Reflexil.

Другие вопросы по тегам