Подтвердить что ты не робот

Установка новой версии проекта развертывания поверх старой версии

У меня есть проект развертывания, который не позволит мне установить более старую версию. В файле msi необходимо сначала удалить программу из "Установка и удаление программ". Это не очень хороший пользовательский интерфейс. Как это сделать, чтобы установщик сначала просто удалил программное обеспечение, а затем установил новую версию?

4b9b3361

Ответ 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 или более позднюю версию,

  1. Если у вас уже есть папка установщика в папке решения, просто откройте Ассистент проекта в Установщике и дважды щелкните по ней.

2. После того, как вы откроете Project Assistant, вы увидите информацию о приложении, здесь вы можете ввести версию, которую вы хотите изменить.