Привет. По-хорошему, лучше сделать два проекта, запустить их в параллели и каким-то образом (через модный MessageBus, или каким-нибудь RESTful запросом) дергать второй процесс из первого.
Но если очень хочется влоб, то могу посоветовать разве что покопать вот эту штуку:
https://docs.microsoft.com/ru-ru/dotnet/api/system...
Ещё важно будет учесть, что тут загружаемая ассембли грузится в домен приложения. Если в этом домене уже загружена та же ассембли другой версии могут быть накладки. Поэтому хорошо бы ещё поизучать тему доменов, вот тут, например
https://docs.microsoft.com/ru-ru/dotnet/framework/...
Я сам тему предметно не копал, изучал только в ходе подготовки к экзамену, но как я это понял, суть будет почти та же, что и первый вариант — по сути, из основного кода запускается второй поток в другом домене. Разница только в том, что можно попробовать сделать одно приложение, которое в себе содержит второе и умеет его запускать.