2017-05-22 9 views
-1

JRE exe를 설치하려고하는 자체 msi가 있습니다. 이런 식으로 다른 EXE를 실행할 수 있습니다. 그러나 JRE EXE가 설치되지 않습니다. 다음은 내가 받고있는 오류입니다.내 MSI를 통해 자동으로 JRE EXE를 설치하려면 어떻게합니까?

MSI (s) (A0:C4) [05:10:08:690]: Executing op: CustomActionSchedule(Action=RUN_JAVA,ActionType=1042,Source=C:\Program Files (x86)\preRequisites\Java.exe,Target=/s,) 
MSI (s) (A0:B8) [05:10:32:587]: Running as a service. 
CustomAction RUN_JAVA returned actual error code 1618 (note this may not be 100% accurate if translation happened inside sandbox) 
MSI (c) (FC:BC) [05:10:35:397]: Font created. Charset: Req=0, Ret=0, Font: Req=MS Shell Dlg, Ret=MS Shell Dlg 

Error 1722. There is a problem with this Windows Installer package. A program run as part of the setup did not finish as expected. Contact your support personnel or package vendor. Action RUN_JAVA, location: C:\Program Files (x86)\preRequisites\Java.exe, command: /s 
Action ended 5:10:38: InstallFinalize. Return value 3. 
Action ended 5:10:39: INSTALL. Return value 3. 

다음은 MSI 용 WiX 파일입니다.

<Directory Id="TARGETDIR" Name="SourceDir"> 
     <Directory Id="ProgramFilesFolder"> 
     <Directory Id="INSTALLLOCATION" Name="preRequisites"> 
      <Component Id="ProductComponent" Guid="7927FC46-E8C5-4FEA-A683-C275C08FB4D5" KeyPath="yes"> 
      <File Id="VC2013.exe" Name="VC2013.exe" Source="../../Setups/PreRequisites/kkube-prerequisites/vcredist_x86_2013.exe" DiskId="1"/> 
      <File Id="VC2015.exe" Name="VC2015.exe" Source="../../Setups/PreRequisites/kkube-prerequisites/vcredist_x86_2015.exe" DiskId="1"/> 
      <File Id="Java.exe" Name="Java.exe" Source="../../Setups/PreRequisites/kkube-prerequisites/jre-8u92-windows-x64.exe" DiskId="1"/> 
      <File Id="dotNet4.5Installer.exe" Name="dotNet4.5Installer.exe" Source="../../Setups/PreRequisites/kkube-prerequisites/dotNet4.5Installer.exe" DiskId="1"/> 
      </Component> 
     </Directory> 
     </Directory> 
    </Directory> 

    <CustomAction Id="RUN_VC2013" FileKey="VC2013.exe" ExeCommand="/q" Execute="deferred" Return="check" /> 
    <CustomAction Id="RUN_VC2015" FileKey="VC2015.exe" ExeCommand="/q" Execute="deferred" Return="check" /> 
    <CustomAction Id="RUN_JAVA" FileKey="Java.exe" ExeCommand="/s" Execute="deferred" Return="check" /> 
    <CustomAction Id="RUN_DOTNET" FileKey="dotNet4.5Installer.exe" ExeCommand="/q" Execute="deferred" Return="check" /> 

    <InstallExecuteSequence> 
     <Custom Action="RUN_VC2013" Before="InstallFinalize">NOT Installed</Custom> 
     <Custom Action="RUN_VC2015" Before="InstallFinalize">NOT Installed</Custom> 
     <Custom Action="RUN_JAVA" Before="InstallFinalize">NOT Installed</Custom> 
     <Custom Action="RUN_DOTNET" Before="InstallFinalize">NOT Installed</Custom> 
    </InstallExecuteSequence> 

    <Feature Id="ProductFeature" Title="preRequisites" Level="1"> 
     <ComponentRef Id="ProductComponent" /> 
    </Feature> 

"/ s"명령으로 jre를 실행 해 보았습니다. 자동으로 설치됩니다. MSI를 통해 설치할 때 왜 실패합니까? 이것을 어떻게 할 수 있습니까? 어떤 도움이라도 대단히 감사 할 것입니다.

EDIT : 아래와 같이 설치 순서를 시도했습니다.

<InstallExecuteSequence> 
    <Custom Action="RUN_DOTNET" Before="InstallFinalize">NOT Installed</Custom> 
    <Custom Action="RUN_VC2013" After="RUN_DOTNET">NOT Installed</Custom> 
    <Custom Action="RUN_VC2015" After="RUN_VC2013">NOT Installed</Custom> 
    <Custom Action="RUN_JAVA" After="RUN_VC2015">NOT Installed</Custom>  
</InstallExecuteSequence> 

그러면 아래에 표시된 오류가 발생합니다.

MSI (s) (40:7C) [05:25:40:920]: Executing op: ActionStart(Name=RUN_DOTNET,,) 
MSI (s) (40:7C) [05:25:40:920]: Executing op: CustomActionSchedule(Action=RUN_DOTNET,ActionType=1042,Source=C:\Program Files (x86)\preRequisites\dotNet4.5Installer.exe,Target=/q,) 
MSI (s) (40:7C) [05:28:05:286]: Executing op: ActionStart(Name=RUN_VC2013,,) 
MSI (s) (40:7C) [05:28:05:286]: Executing op: CustomActionSchedule(Action=RUN_VC2013,ActionType=1042,Source=C:\Program Files (x86)\preRequisites\VC2013.exe,Target=/q,) 
MSI (s) (40:F8) [05:28:15:574]: Running as a service. 
MSI (s) (40:F8) [05:28:21:953]: Running as a service. 
MSI (s) (40:F8) [05:28:27:994]: Running as a service. 
MSI (s) (40:F8) [05:28:34:119]: Running as a service. 
CustomAction RUN_VC2013 returned actual error code 1618 (note this may not be 100% accurate if translation happened inside sandbox) 
MSI (s) (40:7C) [05:28:34:431]: Note: 1: 1722 2: RUN_VC2013 3: C:\Program Files (x86)\preRequisites\VC2013.exe 4: /q 
MSI (s) (40:7C) [05:28:34:431]: Note: 1: 2205 2: 3: Error 
MSI (s) (40:7C) [05:28:34:431]: Note: 1: 2228 2: 3: Error 4: SELECT `Message` FROM `Error` WHERE `Error` = 1722 
MSI (c) (84:D8) [05:28:34:541]: Font created. Charset: Req=0, Ret=0, Font: Req=MS Shell Dlg, Ret=MS Shell Dlg 

Error 1722. There is a problem with this Windows Installer package. A program run as part of the setup did not finish as expected. Contact your support personnel or package vendor. Action RUN_VC2013, location: C:\Program Files (x86)\preRequisites\VC2013.exe, command: /q 
MSI (s) (40:7C) [05:28:48:603]: Note: 1: 2205 2: 3: Error 
MSI (s) (40:7C) [05:28:48:603]: Note: 1: 2228 2: 3: Error 4: SELECT `Message` FROM `Error` WHERE `Error` = 1709 
MSI (s) (40:7C) [05:28:48:603]: Product: KubePreRequisites -- Error 1722. There is a problem with this Windows Installer package. A program run as part of the setup did not finish as expected. Contact your support personnel or package vendor. Action RUN_VC2013, location: C:\Program Files (x86)\preRequisites\VC2013.exe, command: /q 

Action ended 5:28:48: InstallFinalize. Return value 3. 

답변

3

Java EXE 설치 프로그램에는 Java MSI가 있습니다. Windows Installer에는 하나의 MSI가 다른 MSI를 설치하지 못하게하는 mutex이 있습니다. 다른 프로세스에서 하나의 MSI를 설치 한 다음 다른 하나를 설치해야합니다.