У нас проекты не очень большие -- для обновления достаточно заменить пару файлов. Я, естественно, это дело автоматизировал, сделав два бат-файла -- у себя на компе и на целевом. Первый заливает нужные файлы в расшаренную сетевую папку, а второй скачивает их из папки и размещает по адресу.
Я мудро предвидел, что у меня будут проблемы, когда вместо обновления я по разным причинам получаю устаревший файл, поэтому в бат-файл добавил строчку, выводящую дату и время модификации каждого обновляемого файла. Поскольку я примерно помню, во сколько я делал билд (как правило, только что), это должно было бы помочь определять -- правильная версия или нет. И это помогало.
Потом оказалось, что надо обновлять файлы ещё для одного проекта. Я стал искать, куда компилятор складывает выходной файл, нашёл, добавил в список обновления. Запускаю обновление -- показывает правильное время. Запускаю -- а правки не применяются. Присмотрелся -- время-то правильное, а дата не та. Дата двухмесячной давности! Короче, я копировал файлы из папки, предназначенной для другой конфигурации. А время случайно совпало.