Установка новой версии проекта развертывания поверх старой версии - PullRequest
24 голосов
/ 11 июня 2010

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

Ответы [ 5 ]

27 голосов
/ 11 июня 2010

Это сложно, вам нужно выполнить следующие шаги:

  1. Установить Удалить предыдущую установку как True
  2. Установить Определить новую версию как True
  3. Ваша программа на C #версия должна увеличиваться с каждым развертыванием
  4. Вам следует изменить версию вашего установщика на более новую версию, и вам будет предложено изменить код продукта, выберите ДА.
  5. Не меняйте код обновления, разрешитеэто будет то же самое.

Если вы не выполните 3-й шаг правильно, установщик все равно установит и сохранит старый файл, версия вашего файла каждого файла должна быть новой, если вы изменили содержимое.

13 голосов
/ 25 июня 2010

Я опробовал несколько сценариев, может быть, это поможет кому-то сэкономить время

Если меняется версия сборки И меняется версия установщика проекта (также с изменением Guid ProductCode) -> Приложение устанавливается поверх существующего-> Обновляются версии dll и exe -> Если путь к файлу установлен другой, существующие изначально установленные файлы проекта удаляются с того места, где они были установлены.(и файлы, созданные с тех пор, остаются)

Если изменяется версия сборки И изменяется версия установщика проекта (без изменения Guid ProductCode) -> Пользователю предлагается вручную удалить приложение -> если они идут вперед и сначала удаляют с панели управленияПосле этого приложение может быть установлено, и библиотеки dll и exe обновляются до новой версии

Если изменяется ТОЛЬКО версия сборки или изменяется только версия установщика проекта (без изменения Guid ProductCode) -> Пользователю предлагается вручную удалитьapplication -> если они сначала удаляются и сначала удаляются из панели управления, то приложение может быть установлено, а dll и exe обновляются до новой версии

Если меняется ТОЛЬКО версия установщика проекта (также с изменением Guid ProductCode Guid) -> MSI проходит процесс установки, но dll и exe не меняют версию - они соответствуют версии сборки и заменяются файлами с той же версией сборки сборки -> Если путь к файлу установлен другой, существующие изначально установленные файлы проекта удаляются fРом, где они были установлены.(любые файлы, созданные с тех пор, остаются)

Если версия установщика проекта изменяется (с изменением также ProductCode Guid) и версия сборки ниже установленной версии -> Установка начнется, когда конечный пользователь получит уведомление, что установка завершится неудачно, поскольку старая версия,

5 голосов
/ 11 июня 2010

Установить свойство проекта установки RemovePreviousVersions True

Но вы должны использовать один и тот же UpgradeCode в обоих приложениях установки

0 голосов
/ 17 июня 2019

Если вы используете Visual Studio 2012 или более позднюю версию,

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

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

0 голосов
/ 10 декабря 2013

Вы можете сделать это иногда после установки новой версии, старый продукт останется прежним.

Вам нужно изменить порядковый номер RemoveExistingProducts, он должен планироваться между Установите действие Validate и InstallInitialize. Вы можете сделать это по ORCA

Для Ex InstallValidate = 1400 InstallInitialize = 1500

Тогда RemoveExistingProducts = 1450

...