Создание установки Visual Studio: не удается выполнить условную установку файла на основе поиска файла - PullRequest
2 голосов
/ 21 декабря 2011

Я создал установку 7.7.0 с использованием Visual Studio 2010. Программа установки установила все файлы правильно. Теперь я создаю настройки 7.8.0. Код обновления для 7.7.0 и 7.8.0 одинаков, а код продукта отличается.

В редакторе условий запуска я добавил условие поиска FILEEXISTS1, которое ищет файл d.xml в определенном месте в системе. В редакторе файловой системы я добавил условие «НЕ FILEEXISTS1» в файл d.xml, чтобы оценить, присутствует ли файл и, если он присутствует, не устанавливать d.xml.

Моя проблема заключается в том, что при наличии этого условия файл d.xml полностью удаляется при установке 7.8.0. Однако, если у меня просто есть условие поиска FILEEXISTS1, которое ищет файл, но не оценивает его (имеется в виду, что у меня нет свойства условия NOT FILEEXISTS1, оцененного в d.xml), файл не перезаписывается.

Меня смущает это поведение. Я что-то здесь упускаю? кто-нибудь знает, почему это произошло? Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 21 декабря 2011

Крупное обновление автоматически удаляет старую версию перед установкой новой. Это означает, что старый файл удален, а новый установлен.

Таким образом, подготовка вашего нового файла не является хорошим подходом для сохранения исходного.

Чтобы определить, установлен ли новый файл, установщик Windows использует правила управления версиями файлов для пути ключа компонента . Вот статья с более подробной информацией: http://setupanddeployment.com/windows-installer-bugs/missing-files-upgrade

Решением для сохранения старого файла является создание резервной копии перед началом обновления и восстановление этой резервной копии после ее завершения. Это можно сделать с помощью пользовательских действий . Возможно, это поможет: http://setupanddeployment.com/installer-concepts/preserve-data-install

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...