Смотрим в сторону MEF или иного механизма плагинов. Проверка обновленных файлов задача не сложная, но само обновление должно уметь подменить библиотеки и исполняемый файл. Так как в проекте .NET все файлы завязаны друг на друге, их приходится обновлять все вместе (обновилась одна библиотека, обновляются все остальные, которые от нее зависят, в том числе и экзешник), нужно подключать библиотеки через имя файла без strong assembly. MEF это позволяет