WiX로 MSI 설치 프로그램을 만들었습니다. 구체적으로 Windows XP SP3 + 을 대상으로합니다. 설치가 완료되면 사용자 지정 작업을 실행하여 NSSM.exe를 통해 응용 프로그램을 서비스로 등록합니다. 명령 줄에서 실행할 때 배치 파일은 작성된 내용을 수행하지만 설치 프로그램의 일부로 실행하여 설치를 완료합니다. 명령 프롬프트가 열려 있고 스크립트가 실행되는 것을 볼 수 있지만 응용 프로그램은 등록되어 있지 않습니다. WiX : Windows XP에서 설치 중, 사용자 지정 작업이 "성공적으로"일괄 처리 스크립트를 실행하지만 작업이 완료되지 않았습니다.
<CustomAction Id="installLoft"
Directory="ModulesFolder"
ExeCommand="[ModulesFolder]winInstall.cmd"
Execute="deferred"
Return="check"
HideTarget="no"
Impersonate="no" />
<InstallExecuteSequence>
<Custom Action="installLoft" Before="InstallFinalize"><![CDATA[ (NOT Installed) AND (NOT REMOVE) ]]></Custom>
</InstallExecuteSequence>
배치 스크립트 내용
은 다음과 같습니다 그래서@ECHO OFF
SET PATH=%PATH%;%APPDATA%\app1\
IF "%ProgramFiles(x86)%"=="" (
set PATH=%PATH%;%ProgramFiles%\app1\
) ELSE (
set PATH=%PATH%;%ProgramFiles(x86)%\app1\
)
"app1\modules\bin\nssm.exe" install my_service_name_app1 app1.cmd -g
, APP1 서비스로 실행해야하는 스크립트, 모든 구성 요소가/파일이 설치 NSSM.exe 에 따라서 필요가있다 올바른 장소에.
내가 놓친 Win XP 경고가 있습니까? 설치 프로그램을 실행 한 사용자와 함께 수동으로 배치를 실행하면 서비스가 등록됩니다.
도움 주셔서 감사합니다.
왜 사용자 지정 작업을 사용하여 ServiceInstall 및 ServiceControl 요소 대신 NSSM.exe를 실행하고 있습니까? –
NSSM ** 자체는 서비스를 등록하기 때문에 **. – mspisars