Использование JScript или VBScript для пользовательских действий - PullRequest
0 голосов
/ 15 июля 2010

В моем инсталляторе мне нужно сделать следующее: получить местоположение внешнего приложения из реестра и создать папки для руководителя моего приложения и различные файлы в этом «родительском» каталоге.Я знаю, как получить этот каталог из реестра, но, к сожалению, полученная строка выглядит следующим образом: C: / Programm Files / Manufacturer / ExtApplication / extapp.exe.

Конечно, меня это не устраивает.Итак, как я понимаю, мне нужно удалить из него часть «extapp.exe».Я пытался сделать это через CustomAction, используя VBScript или JScript, но я не достаточно опытен ни в этих сценариях, ни в самих wix.Я читал о Type51, Type 35 и т. Д. С типами CustomAction, но не могу понять, как мне следует 1) удалить часть строки;2) использовать его в элементе Directory;3) сделать все это перед установкой файлов.

Буду благодарен за любые советы (также без использования скриптов).

1 Ответ

1 голос
/ 16 июля 2010

Во-первых, вы не должны использовать пользовательские действия скрипта.Они очень хрупкие:

http://blogs.msdn.com/b/robmen/archive/2004/05/20/136530.aspx

Вот как я бы прокрутил:

1) Используйте RegLocator / AppSearch, чтобы вывести значение реестра в свойство в началеиз isntall.Затем вызовите пользовательское действие C ++, которое анализирует имя файла.Это пользовательское действие должно быть запланировано до CostInitialize.

Здесь вы не будете использовать 51 или 35, вы будете использовать тип 1 с вызовом MsiSetProperty (), который эквивалентен типу 51. Разницаот 51 до 35, если вы используете 51 до калькуляции и 35 после калькуляции.

Имя свойства, которое вы устанавливаете, должно совпадать с именем Id для строки таблицы Справочника, которую вы используете.Любые дочерние элементы в этом ряду будут относительным путем к тому, что вы установили.

...