Есть много способов подойти к этому, но есть один способ.
Я предполагаю, что вы не хотите, чтобы каждый файл в вашем исходном хранилище существовал на вашем конечном сервере. Лучший способ надежно извлекать то, что вам нужно из вашего источника на регулярной основе, - через файл сборки. Для этого есть два варианта: nant и msbuild.
После того, как у вас есть набор файлов, которые вы хотите развернуть, вам нужен способ распространить их на целевой сервер, а также остановить и запустить IIS. Опять же, есть варианты, но я лично рекомендую для этого PowerShell (с оснасткой IIS).
Если вы хотите, чтобы это происходило регулярно, рассмотрите пакетный файл, выполняемый некоторым таймером, например, запланированной задачей или, что еще лучше, решением CI, таким как TeamCity.
Для полного изложения, есть примеры в моем PowerUp проекте, который делает это.