Я закончил тем, что построил проект отдельно и перенес эту версию в другое пространство имен. Это, очевидно, не так редко. Например, Hibernate сохраняет CGLIB в своем собственном пространстве имен, чтобы избежать конфликтов версий из -за изменений API.
Первое предложенное решение имело проблему, когда использовался проект, который я использовал, также использовался в другой зависимости, что привело к тому, что моя модифицированная версия и обычный Версия была на пути класса, что привело к очень странному поведению из -за конфликтов именования.
Второе и третье предложение имели аналогичные проблемы, что и первое предложение. Кроме того, я прервал совместимость с другими версиями зависимости.
Даже это звучит болезненно: выход из пространства имен и предоставление отдельной сборки является обязательным, даже если вы измените только несколько строк кода.