Полагаю, что интересным алгоритмом будет сериализация используемых вами сборок, а затем при запуске вы десериализуете свою конфигурацию и сравниваете, какая у вас версия каждой DLL. Затем, после обновления версии, вы сериализуете новую версию своей конфигурации и записываете имя и версию сборки в свой лог-файл или около того.
Имейте в виду, что самое важное, что нужно учитывать, - это заставить вещь делать то, что вам нужно. Остальное не важно. Как только он выполнит ту работу, которая вам требуется, возможно, есть место для улучшения. Но сначала, сделайте это! Вы просто увидите, что нужно улучшить после этого.