У меня есть проект развертывания, который не позволит мне установить более старую версию. В файле msi необходимо сначала удалить программу из "Установка и удаление программ". Это не очень хороший пользовательский интерфейс. Как это сделать, чтобы установщик сначала просто удалил программное обеспечение, а затем установил новую версию?
Установка новой версии проекта развертывания поверх старой версии
Ответ 1
Это сложно, вам нужно сделать следующие шаги:
- Установить Удалить предыдущую установку как True
- Установить Определение новой версии как True
- Ваша версия программы на С# должна увеличиваться при каждом развертывании
- Вы должны изменить версию своего установщика на одну более высокую версию, и она попросит вас изменить код продукта, выберите ДА.
- Не изменяйте свой код обновления, пусть он будет таким же.
Если вы не сделаете третий шаг правильно, установщик все равно установит и сохранит старый файл, ваша версия файла каждого файла будет новой, если вы изменили свой контент.
Ответ 2
Я опробовал несколько сценариев, возможно, это поможет кому-то сэкономить время
Если изменяется версия сборки и изменяется версия установщика проекта (с изменением ProductCode Guid) - > Приложение устанавливается поверх существующего - > dlls и exe версии обновляются - > Путь IF, установленный на другое, существующие исходные файлы проекта удаляются с того места, где они были установлены. (и файлы, сделанные с тех пор остаются)
Если изменяется версия сборки и изменения версии установщика проекта (без изменения кода ProductCode) - > Пользователю предлагается вручную удалить приложение - > если они идут вперед и сначала удаляются из панели управления, приложение может быть установлено, а библиотеки dll и exes будут обновлены до новой версии
Если изменяется ТОЛЬКО версия сборки или изменяется только версия установщика проекта (без изменения ProductCode Guid) - > Пользователю предлагается вручную удалить приложение - > если они идут вперед и сначала удаляются из панели управления, приложение может быть установлено, а библиотеки dll и exes будут обновлены до новой версии
Если изменяется ТОЛЬКО версия установщика проекта (с изменением ProductCode Guid) - > MSI проходит процесс установки, но dll и exe не меняют версию - они соответствуют версии сборки и заменяются файлами с одинаковой версией сборки - > Путь IF, установленный на другое, существующие исходные файлы проекта удаляются с того места, где они были установлены. (любые файлы, сделанные с тех пор остаются)
Если изменяется версия установщика проекта (с изменением ProductCode Guid), а версия сборки ниже установленной версии - > Установка начнется, у конечного пользователя будет установлено, что установка завершается неудачно как старая версия.
Ответ 3
Установить свойство проекта настройки RemovePreviousVersions True
Но вы должны использовать тот же UpgradeCode в обоих установочных приложениях
Ответ 4
Вы можете сделать это иногда после установки новой версии, старый продукт останется таким же.
Вам нужно изменить порядковый номер RemoveExistingProducts, он должен запланировать Установите действие Validate и InstallInitialize. Вы можете сделать это с помощью ORCA
Для Ex InstallValidate = 1400 InstallInitialize = 1500
Затем RemoveExistingProducts = 1450
Ответ 5
Если вы используете Visual Studio 2012 или более позднюю версию,
- Если у вас уже есть папка установщика в папке решения, просто откройте Ассистент проекта в Установщике и дважды щелкните по ней.
2. После того, как вы откроете Project Assistant, вы увидите информацию о приложении, здесь вы можете ввести версию, которую вы хотите изменить.