Я реализовал собственный установочный файл, который позволит установщику регистрировать 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: After PublishProduct
Все остальные параметры последовательности имеют значение Absent from sequence.
файл журнала
InstallShield 14:17:18: вызов функции сценария RegisterComponents InstallShield 14:17:18: не удалось запустить функцию сценария, ошибка 0x80020006 InstallShield 14:17:18: CallScriptFunctionFromMsiCA () завершается, результат 0x643 CustomAction RegisterComponents вернул фактический код ошибки1603, но будет переведен на успех из-за продолжения маркировки