.NET MSI Install project - перезаписать предыдущую версию - PullRequest
8 голосов
/ 22 октября 2011

У меня есть проект установщика MSI, который устанавливает службу Windows.

Мой метод нумерации версий лучше всего описывается в этом сообщении: Чем отличаются AssemblyVersion, AssemblyFileVersion и AssemblyInformationalVersion?

Я не изменяю версию моего проекта установки, поскольку она не меняется, и у меня было слишком много проблем при этом.

Я уже установил свой сервис со следующими версиями сборки

[assembly: AssemblyVersion("4.3")]
[assembly: AssemblyFileVersion("4.3.0.0")]

Я только что установил установщик MSI для этой версии:

[assembly: AssemblyVersion("4.3")]
[assembly: AssemblyFileVersion("4.3.1.0")]

Когда я запускаю MSI, он говорит мне, что мне нужно удалить предыдущую версию.

Как мне обойти это?В конечном итоге я хотел бы сделать следующее:

  1. Установить MSI
  2. Установить (повторно: обновить до) другую версию, которая перезаписывает предыдущую версию (запрос или отсутствие запроса) a.Я не хочу деинсталлировать перед установкой обновления.

Мои свойства проекта установщика:

RemovePreviousVersions - True

InstallAllUsers- True

DetectNewerInstalledVersion - False

Версия - 4.3.0

Что я пробовал:

  • Обновление версии сборкипроект.Тем не менее, это создает несколько версий одних и тех же продуктов в Add Remove Programs.Не хочу, я хочу для Windows Services
  • Изменить версию # в проекте установщика.Но это создает много ошибок при попытке установить любую версию MSI.Я даже получил предупреждения, что я устанавливал на сетевой диск!(вау).

Любая помощь будет ужасной!

Спасибо.

1 Ответ

5 голосов
/ 22 октября 2011

в свойствах проекта установки установки вам нужно увеличивать свойство «Версия» для каждой версии, сохраняя при этом тот же код UpgradeCode.

При увеличении версии вам будет предложено изменить код продукта., Ответьте «Да».

У вас также должны быть свойства для удаления предыдущей версии и обнаружения новых версий, имеющих значение true.

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