Installshield 12: изменение места назначения модуля слияния во время выполнения - PullRequest
1 голос
/ 16 февраля 2010

Я пытаюсь изменить назначение модуля слияния во время выполнения ...

Позвольте мне объяснить: У меня есть модуль слияния, назначение которого указано в папке [SystemFolder].

И у меня есть много проектов MSI, указывающих на этот один модуль слияния, и все они указывают место назначения модуля слияния (Компонент) на «(Использовать место назначения модуля слияния по умолчанию)».

Вопрос: Один из проектов MSI должен установить модуль слияния в папку «Common File» (не в папку systyem32).

Таким образом, если я изменю назначение модуля слияния (Component) в проекте MSI на [CommonFileFolder], то ничего не произойдет (потому что назначение модуля слияния все еще установлено на [SystemFolder])

Или, если я изменил место назначения модуля слияния на [TARGETDIR], а затем изменил место назначения моего модуля слияния (Компонента) в проекте MSI на [CommonFileFolder], тогда это работает нормально. Но тогда все мои другие проекты MSI установят модуль слияния на корневой диск, потому что другие проекты MSI по-прежнему указывают место назначения модуля слияния (Компонент) на «(Использовать место назначения модуля слияния по умолчанию)».

Я не могу сделать эти две вещи: Я не хочу менять каждый проект MSI на [SystemFolder] или [CommonFileFolder]).

И я также не хочу создавать два одинаковых модуля слияния (один указывает на [SystemFolder], а другой - на [CommonFileFolder]), поэтому мне нужно изменить только один проект MSI

Являются ли они способом, которым я мог бы изменить назначение модуля слияния, если проект MSI указывает на модуль слияния на «(Использовать назначение модуля слияния по умолчанию)»?

Например: Если TARGETDIR = ‘(Использовать назначение по умолчанию для модуля слияния)’, тогда установить TARGETDIR = [SystemFolder]. В противном случае используйте [TARGETDIR]

Или есть другой способ исправить это?

Спасибо BillyBobLee

1 Ответ

5 голосов
/ 25 февраля 2010

Когда вы создаете компонент в модуле слияния, оставьте пункт назначения в INSTALLDIR.

Когда вы используете модуль слияния в базовом проекте MSI (представление перераспределяемых файлов), щелкните правой кнопкой мыши модуль слияния и выберите свойства. Затем используйте пункт «Назначение» для настройки отношений. Файл в модуле слияния теперь будет идти туда, куда вы говорите.

Примечание: после слияния модули слияния больше не существуют. Взгляните на встроенный MSI в Orca, и вы увидите, что есть записи таблицы каталогов, которые выглядят следующим образом (предположим, вы настроили модуль для SystemFolder)

DIR | DIR_PARENT | DefaultDir

TARGETDIR SourceDir ProgramFilesFolder TARGETDIR.: PROGRA ~ 1 | программные файлы ISMyCompanyDir ProgramFilesFolder MYCOMP ~ 1 | Название моей компании ISMyProductDir ISMyCompanyDir MYPROD ~ 1 | Имя моего продукта INSTALLDIR IsMyProductDir. INSTALLDIR.SOMEGUID SystemFolder.

"." представляют «текущий каталог» или «такой же как родительский».

Таким образом, в этом случае вы создаете этот INSTALLDIR = C: \ Program Files \ My Company Name \ My ProductName \ и этот INSTALLDIR.SOMEGUID = C: \ Windows \ System32

Имеет смысл? Таким образом, вы можете использовать модуль в разных продуктах, развернутых в разных местах.

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