Если вы используете стандартную технологию MSI (неважно, как она сделана) и сохраняете GUI и код обновления одинаковыми, файлы автоматически обновляются до новой версии. Однако вам придется изучить документацию по вашей технологии сборки установщика, чтобы узнать, как добавить проверку, чтобы добавлялись только более новые файлы, а не более старые. Лучше всего защитить пользователей от себя, когда это возможно. Что касается кода, файлы обновляются при перестройке вашего проекта / решения. Пока вы не меняете сигнатуры методов в вашей бизнес-логике, тогда действительно не должно иметь значения, что вы делаете за кулисами.