Кроме того, вы можете включить саморегистрацию файла в Installshield и вообще не запускать его с помощью кода настраиваемого действия. Я думаю, что это на странице свойств для каждого файла.

лизовал собственный файл installscript, который позволит установщику регистрировать DLL. Я объединил это с пользовательским действием, чтобы фактически запустить созданную мной функцию. Я должен был сделать этот сценарий, потому что DLL не смогли зарегистрироваться с установкой свойства для самостоятельной регистрации. Таким образом, я застрял в том, как решить эту проблему с ошибкой настраиваемого действия, чтобы я мог проверить свой сценарий. Ниже мой сценарий:

#include "Ifx.h"

export prototype RegisterComponents(HWND);

function RegisterComponents(hMSI)

STRING sRunStr;

begin

sRunStr = WINSYSDIR ^ "regsvr32.exe";

LongPathToQuote(sRunStr, TRUE);

//change the directory to target directory
ChangeDirectory(TARGETDIR);

//register dll
if(LaunchAppAndWait(sRunStr, "/s " + 
"C:\NCRUniEmulatorService\NCRUniEmulatorSO.dll", 
WAIT)) < 0) then
MessageBox("NCRUniEmulatorSO.dll", SEVERE);
else
endif;

end;

Ниже приведены мои пользовательские действия:

FunctionName: RegisterComponents

Обработка возврата: синхронная

Выполнение в сценарии: отложенное выполнение

Установите Exec Sequence: после публикации продукта

Все остальные настройки последовательности установлены на «Отсутствует в последовательности».

журнальный файл

InstallShield 14:17:18: Вызов функции скрипта RegisterComponents InstallShield 14:17:18: Не удалось запустить функцию скрипта, ошибка 0x80020006 InstallShield 14:17:18: CallScriptFunctionFromMsiCA () заканчивается, результат 0x643 CustomAction RegisterComponents вернул фактический код ошибки 1603, но будет переведено на успех из-за продолжения маркировки

Ответы на вопрос(1)

Ваш ответ на вопрос