Я в основном согласен с Ответом Стефана за исключением того, что он может не работать, если вы хотите правильно работать с UAC в Windows Vista или Windows 7, и ваше приложение правильно установлено в папке Program Files или требует других устанавливаемые зависимости, которые требуют повышенных разрешений.
В этом случае вы либо выполняете установку / исправление на основе MSI, либо устанавливаете службу Windows, которая работает с необходимой безопасностью для перезаписи файлов в папке Program Files.
Другой вариант, если ваше приложение является интерактивным, - это делать, как предлагает Игорь Брейц, и инициировать новый процесс, который выполняет обновление, которое дает вашему приложению возможность запрашивать повышение разрешений во время обновления. Использование исправления или параметра службы Windows, как упомянуто выше, позволит улучшить взаимодействие с пользователем независимо от сценария (интерактивный / неинтерактивный).