2012-04-10 2 views
2

Я использую WiX 3.5 для следующего.Запустите WiX EXE CustomAction от TempFolder

У меня есть несколько файлов (EXE и DLL), которые мне нужно извлечь в папку TEMP в начале установки (перед отображением EULA), затем запустите EXE. У меня есть часть работы, которая извлекает файлы, используя http://msiext.codeplex.com/. Код выглядит следующим образом:

<CustomAction Id="SetBinaryWrite_TargetFileName_1" Property="BINARYWRITE_TARGETFILENAME" Value="[TempFolder]ActivationUtility.exe" /> 

Обратите внимание, что [TempFolder] используется и (в Windows 7) решает "C: \ Users \ имя_пользователя \ AppData \ Local \ Temp \", и это не «набор до»где-нибудь в моих файлах WXS - это свойство окна, как ProgramFilesFolder и т.д ...

Я создал свой EXE CustomAction так:

<CustomAction Id="ActivationUtility" 
        Directory="TempFolder" 
        ExeCommand="ActivationUtility.exe" 
        Execute="immediate" Return="check" /> 

компоновщик затем жалуется: LGHT0094 ошибка: неразрешенные ссылки к символу «Каталог: TempFolder». Если я использую «[TempFolder]», компилятор жалуется. Почему это свойство работает для одного CustomAction, но не другого? Что именно мне нужно сделать, чтобы ссылаться на TempFolder для вышеупомянутого CustomAction?

ответ

2

После компиляции кода для меня (не могу проверить это прямо сейчас)

Добавьте это под корень directoy

<Directory Id="TempTest" FileSource="[TempFolder]"></Directory> 

И объявить пользовательское действие, как этот

<CustomAction Id="ActivationUtility" 
       Directory="TempTest" 
       ExeCommand="ActivationUtility.exe" 
       Execute="immediate" Return="check" /> 

Вы может, конечно, изменить идентификатор вашей папки

+0

Спасибо - я, наконец, понял это, хотя я все еще d не понимают, почему они не просто сделали работу [TempFolder] в Directory =. – wade

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