2011-02-09 2 views
8

Я запускаю блокпост с помощью InstallShield LE в VS2010. Второй раз подряд в результате setup.exe (с возрастающим номером версии), я получаю ошибкуInstallShield LE «Другая версия этого продукта уже зарегистрирована»

Другой вариант этого продукта уже зарегистрирован

К «увеличивающихся номеров версий», я имею в виду Я изменил минорной версии, номер сборки и Revision до больших чисел в AssemblyVersion и AssemblyFileVersion моего EXE-файл (DLL файлы устанавливаются в «1,0. *»)

[assembly: AssemblyVersion("0.2.103.005")] 
[assembly: AssemblyFileVersion("0.2.103.005")] 
[assembly: AssemblyInformationalVersion("Alpha 0.1 - 2/8/2011")] 

, а также обновленные версии продукта в Общая информация в проекте установки Installshield LE от 0.10.0000 до 0.11.0000.

Я встречал экземпляры этого сообщения об ошибке в других сообщениях SO и на форуме поддержки сообщества производителя, но не нашел решения, которое относится ко мне.

ответ

12

Получается, что нужно создать запись на вкладке «Пути обновления». Когда вы это сделаете, InstallShield LE представит диалог выбора файла. Если у вас есть старый установщик, возможно, вы можете просмотреть его, чтобы получить информацию о том, какую версию вы хотите обновить. В моем случае у меня не было старого установщика, поэтому я нажал кнопку «Отмена», и в любом случае была создана новая запись «Пути обновления». Затем я скорректировал свойства этой записи, чтобы указать минимальную и максимальную версию для обновления, и все работало, как ожидалось.

EDIT

(от @ lookatmike Замечание)

Вы также должны изменить версию продукта и (несколько) парадоксально код продукта на вкладке Общих сведений. Код обновления должен оставаться неизменным.

+2

Эрик, это не работает для меня. Вы делали что-то еще значимое? Я увеличиваю версию продукта на вкладке «Общая информация», и я добавил путь обновления с широким диапазоном версий Min и Max, который должен включать любую ранее установленную версию. –

+2

Чтобы расширить принятый ответ Эрика выше, в дополнение к указанию пути обновления, как он описывает, вам также необходимо изменить версию продукта и (несколько противоречиво) код продукта на вкладке общей информации. Код обновления ** должен оставаться неизменным. –

+0

@lookatmike: Спасибо, я обновил ответ с вашего комментария. Также совершенно законно для вас просто отредактировать мой ответ (при условии, что у вас есть репутация для этого). –

6

OK - эта проблема заставляла меня CRAZY - и я не нашел идеального ответа в Интернете.

Таким образом, я решил, что все закончилось.

Это не может быть «ЛУЧШИМ» способом решения проблемы. Я уверен, что существует некоторая сложная процедура «правильной обработки» на основе MSI, но я не мог понять это (я думаю, что я ? немой)

в основном мой инсталлятор просто делает установлен уверен .NET и копируют некоторые файлы в каталог Program Files, добавляет некоторые записи реестра, ярлыки и т.д.

Если у вас есть более сложная процедура установки - Я бы посоветовал вам найти «правильный» ответ в другом месте. Но для чего-то простого, как у меня (и я подозреваю, что у 95% людей, борющихся с этой проблемой) это работает нормально.

Первый - НИКОГДА не касайтесь «Код продукта». Я считаю, что это правильная процедура для MSI по всем направлениям ... вы не должны менять код продукта. И это решение основывается на этом.

Далее. Скопируйте код продукта в буфер обмена - нам понадобится его через секунду.

В принципе, мы сообщим InstallShield ВСЕГДА УДАЛИТЬ ПРОДУКТ, если он уже существует на машине.

enter image description here

enter image description here

Если вы или ваши партнеры никогда не запускайте установку беззвучно - убедитесь, что вы делаете это в обоих местах:

enter image description here

«Имя файла и командной строки ", введите:

msiexec /uninstall {YOUR PRODUCT CODE HERE} /passive

Всё. Теперь ваш установщик всегда удаляет старую версию.

ПРИМЕЧАНИЕ: ЭТО ОТКЛЮЧАЕТ ЛЮБЫЕ СОРТИРОВКИ «Я запускаю более новую версию установщика» ПРОВЕРКА.

+1

Это отличный учебник, но он НЕ применим к версии InstallShield (ISLE) с ограниченным тиражом. По крайней мере для VS2012 вам необходимо перейти на одну из платных версий InstallShield, чтобы получить доступ к пользовательским действиям «Перед системным поиском». – jimtut

0

Я часто использую проекты Visual Studio и получаю эту проблему. Как @ Эрик-J сказал, что я должен был изменить код продукта на закладке Дополнительная информация о Установка проекта установки VS:

enter image description here

Смежные вопросы