Порядковые номера файлов InstallShield - PullRequest
1 голос
/ 13 апреля 2011

Я добавляю файлы в существующий MSI-проект InstallShield, собираю MSI, а затем создаю из него MSP для применения к существующим установкам.

Проблема в том, что когда я добавляю новые файлы в проект MSI, порядковые номера не устанавливаются постепенно. Я вошел в прямой редактор и отредактировал порядковые номера, чтобы они начинались там, где остановились старые, но когда я строю проект, введенные порядковые номера игнорируются. Если порядковые номера отличаются, как это, это приведет к неправильной установке MSP.

Есть ли способ исправить порядковые номера, переопределяемые InstallShield? Если я не добавлю новые файлы в проект, порядковые номера существующих файлов останутся прежними. Как будто новые файлы, которые я добавляю, устанавливаются "посередине".

Есть мысли?

Спасибо

Ответы [ 3 ]

2 голосов
/ 14 апреля 2011

Может быть несколько вопросов ...

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

Если это не решит проблему, возможно, это связано с сочетанием того, как вы добавляете новые файлы в пакет (есть ли у вас внешние CAB-файлы?) И опцией сборки патча для сборки «бинарный» патч

1 голос
/ 14 апреля 2011

Вы можете попытаться сохранить проект в формате XML - есть некоторые странности во внутреннем «неупорядоченном» порядке базы данных, которые могут быть устранены.После первого сохранения, закрытия и перезагрузки таким образом, вы можете преобразовать обратно в бинарный проект, если хотите.Если вы попытаетесь сделать это после добавления новых файлов, обязательно измените порядок записей в XML таблицы файлов или удалите их, прежде чем пытаться это сделать.

0 голосов
/ 24 апреля 2011

Эти порядковые номера не нужно устанавливать по порядку. Фактически в большинстве случаев я склонен использовать приращения 10 для различных порядковых номеров в установщике Windows, чтобы убедиться, что я могу выполнить повторную последовательность без изменения всех чисел для всех элементов. Не связывайтесь с этими числами, просто пусть Installshield контролирует их.

user707082 правильно, что вы должны указать на предыдущую сборку MSI, чтобы позволить Installshield синхронизировать направляющие для новой настройки, но обычно это для , динамически генерируемых компоненты , и исправление может все еще не работать, если вы нарушаете правила компонента установщика Windows, переопределяя вручную.

Чтобы патчи работали, я следую некоторым правилам :

  • Один компонент на файл
  • Изменение абсолютного пути к файлу означает новый GUID компонента
  • Никогда не меняйте GUID компонента для файла, который не меняет абсолютный путь установки
  • Не использовать динамическую ссылку на файл Installshield
  • Следуйте всем правилам создания компонентов (их много, см. SDK)
  • Использовать только полные исправления файлов, но не двоичные исправления
  • Плюс еще несколько вещей, которые я сейчас не помню. Это не моя система разработчика
...