Проект установки / развертывания: запретить удаление измененных файлов при удалении

#c# #.net #visual-studio-2010 #windows-installer #setup-project

#c# #.net #visual-studio-2010 #windows-установщик #установка-проект

Вопрос:

У меня есть проект установки. Если пользователь изменяет один из установленных файлов, а затем деинсталлирует приложение, я бы хотел, чтобы файл НЕ удалялся при удалении (чтобы при повторной установке пользователя позже использовался измененный файл, а не тот, который обычно используется установщиком по умолчанию). Возможно ли это вообще?

Примечание: Файлы, которые не были отредактированы, должны быть применимы для обновлений / удаления.

Ответ №1:

Чтобы предотвратить удаление, вы должны пометить компонент файлов как постоянный

http://msdn.microsoft.com/en-us/library/windows/desktop/aa368007 (v = против 85).aspx

Комментарии:

1. Я думаю, что они не хотят оставлять установленные вещи — они просто хотят оставить любые пользовательские настройки вместо того, чтобы удалять их.

2. Это правильно. Файлы, которые не были отредактированы, должны быть применимы для обновлений / удаления.

3. Затем вы должны использовать некоторые пользовательские действия для резервного копирования файлов перед действием RemoveFiles, а затем восстановить послесловие.

4. Спасибо, я пытался избежать пользовательских действий, но, похоже, другого способа нет.

Ответ №2:

Поскольку невозможно запретить проекту установки удалять измененные файлы при удалении, лучший подход, который я нашел (как упоминалось Ciprian), заключается в создании пользовательского действия, которое создает резервные копии измененных файлов перед удалением и восстанавливает их в другом пользовательском действии впоследствии.