Конечно, это не работает.GAC - это контрмер DLL Ад, он гарантирует, что любое приложение, которое опирается на конкретную версию DLL, получит конкретную версию DLL, которую они запрашивали.Последовательно, независимо от того, какой процесс попросил это.Если разрешить зависимости DLL-библиотеки GAC в пути прохождения процесса, это приведет к возвращению ада DLL в наихудший из возможных способов.Это полностью разрушает гарантию, которую предоставляет GAC, теперь DLL можно , а не доверять, чтобы она работала согласованно.
Это также не просто тонкий, в основном страшный сценарий, где базовый класспроизводный класс, определенный в сборке, которая является GAC-ed, определяется в зависимой сборке.То, на что вы надеетесь работать, позволит полностью реализовать различные базовые классы.Есть разумные шансы, что дрожание не упадет, если базовый класс не слишком отличается.Фактический результат во время выполнения довольно печален, неправильный код выполняется с несколькими способами, чтобы диагностировать почему, особенно для пользователя без отладчика.DLL Hell - это кошмар пользователя, человек, наименее способный диагностировать и устранить проблему, является жертвой.
CLR категорически отказывается разрешить вам стрелять так по ноге пользователя.Да, загрузка контекста - это ключ, Fusion - основной API.