Свойства скрипта установки Installshield

У нас есть Installshield 2009 для нашего продукта. Я пытаюсь пройти через это, чтобы внести некоторые обновления (очевидно, я не первоначальный автор).

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

Мне нужно выполнить следующее, не создавая пустой объект в репозитории.

  1. Один из компонентов должен создать дерево каталогов (две папки в глубину).

  2. В этом дереве (самая глубокая папка) мне нужно создать пустой файл.

Вопросы:

  1. Нужно ли создавать два компонента, по одному для каждого уровня каталога, или дерево будет создано, если я укажу [INSTALLDIR]folder1\folder2?

  2. Я думаю, что сценарий установки будет местом для создания пустого файла на основе примера CreateFile в справке. Я заметил, что на странице компонентов, как только я ввел значение свойства Destination, в начале {FOLDER2} появился своего рода небольшой "тег". Могу ли я использовать этот тег в качестве аргумента для CreateFile и как мне на него сослаться?


person Jon    schedule 09.11.2015    source источник


Ответы (1)


Независимо от типа проекта, я бы, вероятно, предложил создать структуру папок в представлении «Файлы и папки» и добавить туда пустой файл. Это просто, и у вас будет меньше шансов на ошибку.

Что касается заданных вами вопросов, то ни проекты Basic MSI, ни проекты InstallScript не требуют компонентов для каждого уровня папок в системе. Обратите внимание: если папка еще не существует, когда она выполняется, подход CreateFile вряд ли создаст папки для вас.

В проекте Basic MSI {FOLDER2} указывает, что FOLDER2 — это имя записи каталога, и после CostFinalize будет свойство с тем же именем, которое содержит его местоположение во время выполнения. Вы можете получить его в пользовательском действии InstallScript с помощью MsiGetProperty. В чистом проекте InstallScript подход был бы немного другим, в худшем случае это было бы что-то вроде TARGETDIR ^ "folder1" ^ "folder2" (мой InstallScript заржавел).

person Michael Urman    schedule 10.11.2015
comment
Итак, похоже, что папка не создана, когда я пошел создавать файл. Я настроил скрипт, чтобы проверить наличие папки и создать ее, если она отсутствует, но на каком этапе создается структура папок в файлах и папках? - person Jon; 10.11.2015
comment
Предполагая MSI, после выполнения InstallFiles (отложенная половина). - person Michael Urman; 11.11.2015
comment
Не уверен, что вы подразумеваете под отложенной половиной, но я обнаружил, что структура папок еще не была создана (последовательность # для моего пользовательского действия была выше, чем «Установить файлы»), когда пользовательское действие выполнялось. Может кешировалось? Так же структура была пустой, просто папки, может быть и с этим связано? - person Jon; 11.11.2015