Проект развертывания в VS не перезаписывает файлы. Случается так, что поскольку для параметра RemovePreviousVersions установлено значение true, при изменении версии программного файла и GUID ProductCode проекта установки он сначала удалит предыдущую версию, а затем выполнит чистую установку новой версии.
Чтобы некоторые файлы не перезаписывались, я обычно исключаю их из выходных файлов контента или первичных файлов (где бы они ни находились), а затем добавляю их отдельно в проект установки. Делая это, вы можете индивидуально установить свойства для этих файлов. Свойство, которое вы ищете, называется Permanent, которое, если установлено в true, никогда не удалит рассматриваемый файл и, следовательно, никогда не перезапишет его новой версией. Единственный недостаток - это то, что при удалении продукта постоянные файлы не будет удален из их целевого расположения, но в моем случае (обычно это локальные файлы БД), это хорошо;)
Ура! * * 1005
[править] Вышесказанное верно для VS 2008 SP1. Не пробовал его в других версиях, так что, надеюсь, вы используете ту же версию VS или она работает для той версии, которую вы используете.
[edit2] О, вы также можете использовать свойство «Condition» для достижения чего-то похожего. Если вы сделаете это, убедитесь, что для параметра «Transitive» установлено значение True, чтобы условие всегда оценивалось. Не пробовал это с Условиями, но это еще один вариант, на который вы можете посмотреть. Помимо этих двух, я думаю, что это в значительной степени это для проектов развертывания VS.