Пакет установки .NET иногда не полностью удаляет предыдущие версии - PullRequest
4 голосов
/ 14 ноября 2008

Я распространяю свое приложение, используя установочный пакет VS2008, который обычно прекрасно работает. Когда я создаю новые версии приложения, я захожу и увеличиваю свойство Version в пакете установки и проверяю, что для свойства RemovePreviousVersions установлено значение True.

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

Однако иногда инсталляционный пакет запускается успешно, но при запуске программы запускается старая версия. Очевидно старая версия .exe все еще присутствует.

Мне приходится полностью удалять программное обеспечение и устанавливать новую версию, которая всегда работает, но это неприятно.

Насколько я могу судить, файл не используется, а установочный пакет не требует перезагрузки.

Есть идеи о том, что здесь происходит?

Ответы [ 3 ]

4 голосов
/ 19 декабря 2008

Не прямой ответ, но ключевое различие между обновлением и удалением + повторной установкой заключается в том, что любые пользовательские этапы удаления не вызываются в 2k8, а выполняются в 2k5.

На это ссылаются в Visual Studio 2005 -> 2008/10 Проблема обновления проекта установщика службы

Другое отличие, связанное с этим, заключается в том, что в 2k8 файлы обновляются на основе информационного ресурса версии - если ваши модули не имеют более новых версий, они не заменяются.

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

3 голосов
/ 19 февраля 2010

секунда При использовании orca

Orca - утилита для изменения файлов MSI.

Вы можете скачать Orca по следующим ссылкам. http://www.softpedia.com/get/Authoring-tools/Setup-creators/Orca.shtml

Шаги:

 a. Install orca into your computer.
 b. Open orca
 c. Drag and drop your msi into orca UI
 d. Into left panel it will list the name of tables
 e. select property table
 f. go to right panel and right click
 g. click on 'Add Row'
 h. into 'Property' type REINSTALLMODE
 i. into 'Value' type amus
 j. save msi file
 k. and that's it

Теперь при установке будут перезаписаны все файлы.

0 голосов
/ 19 февраля 2010

Нам нужно установить свойство REINSTALLMODE нашего msi-файла в amus.

Ниже приведена ссылка, чтобы узнать больше о значении 'amus' http://msdn.microsoft.com/en-us/library/aa371182%28VS.85%29.aspx

Есть два способа сделать это.

  1. Используя msiexec.exe, который поставляется с .NET SDK (если у вас VS 2005 или VS 2008, он будет поставляться с ним, просто перейдите в командную строку Visual Studio, и вы найдете его там)

как только вы найдете msiexec.exe, просто введите следующую команду, чтобы установить для свойства REINSTALLMODE значение amus для вашего установщика.

msiexec.exe / i foo.msi REINSTALLMODE = amus

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