Как создать проект установки и развертывания, который может запускаться на компьютере любое количество раз без необходимости удаления? - PullRequest
3 голосов
/ 21 февраля 2009

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

Я создал установщик для установки службы WCF в каталог IIS. Он делает больше, чем просто xcopy, он задает вопросы пользователям для правильной настройки web.config.

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

"Другая версия этого продукта уже установлена ​​...."

Обычно служба будет иметь 10-15 отдельных экземпляров на сервер (каждый экземпляр, скорее всего, указывает на отдельную базу данных или другой контекст безопасности)

Я не могу понять, как настроить установщик для этого.

Ответы [ 3 ]

3 голосов
/ 04 марта 2009

Хорошо, у меня это работает, я решил ответить.

  1. Я скачал инструмент редактирования установщика Windows Orca (часть Windows SDK)
  2. В таблице InstallExecuteSequence изменили следующие значения на 0

    RegisterUser RegisterProduct PublishFeatures PublishProduct

Это должно позволить установщику запускаться снова и снова без удаления.

0 голосов
/ 26 февраля 2009

Если вы хотите установить несколько версий одного и того же приложения, вы должны сделать 3 вещи:

  1. Убедитесь, что каждая версия устанавливается в отдельную папку, поэтому последующие установки не будут заменять предыдущие Это можно сделать, изменив свойство DefaultLocation папки приложения на панели файловой системы. проекта развертывания. Хорошая политика - использовать версию приложения как часть местоположения; например [ProgramFilesFolder] \ [Производитель] \ [ProductName] \ [ProductVersion].
  2. Убедитесь, что свойство ProductCode вашего проекта развертывания отличается, поэтому последующие установки не удалит предыдущую версию. Самый простой способ сделать это - ...
  3. Измените свойство Version вашего проекта развертывания. Visual Studio спросит, хотите ли вы изменить свойство ProductCode; вы делаете.
0 голосов
/ 21 февраля 2009

Похоже, что ваша программа состоит из 2 частей, объединенных в 1 - установщика и 1 службы обновлений на основе пользовательского интерфейса. Не могли бы вы разделить 2 и заставить программу установки проверить, что она уже установлена, и, если это так, запустить программу пользовательского интерфейса для запуска настройки конфигурации.

...