Лучшей идеей будет один из предложенных ответов ... например, использование перекомпоновки с MEF и ClickOnce. Тем не менее, эти решения не помогут вам для «этого развертывания». Они требуют, чтобы вы внесли изменения в исполняемый файл и / или создали исполняемый файл загрузочного ремешка, который поможет вам только при следующем развертывании.
Для этого развертывания вы можете попробовать сделать это (я никогда не делал этого раньше, но теоретически это могло бы работать):
- Скопируйте ваши новые DLL в подпапку куда-нибудь
- Добавьте команду xcopy для командной строки в ключ реестра RunOnce , чтобы скопировать новый dll из подпапки в конечную папку exe, куда вы хотите, чтобы он пошел.
- Reboot.
Ключ RunOnce содержит команды командной строки, которые запускаются один раз при перезагрузке, а затем удаляются из реестра, чтобы они больше не запускались. Вот как InstallShield позволяет перезаписывать определенные библиотеки DLL, когда они используются другими приложениями.