2013-06-07 2 views
1

추종자로 프로젝트의 코드의 일부 :wix의 사용자 지정 작업에서 콘솔을 숨기는 방법?

<Fragment> 
    <Directory Id="TARGETDIR" Name="SourceDir"> 
     <Directory Id="ProgramFilesFolder"> 
      <Directory Id="INSTALLFOLDER" Name="SetupProjectConsole" /> 
     </Directory> 
    </Directory> 
</Fragment> 

<Fragment> 
    <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER"> 
    <Component Id="product" Guid="69513FD8-F65A-420F-8FE8-D456890DB457"> 
     <File Id="Run.bat" Name="Run.bat" Source="Resource\Run.bat"></File> 
    </Component> 
</ComponentGroup> 
<Property Id="QtExecDeferredExample" Value="&quot;[INSTALLFOLDER]Run.bat&quot;"/> 
<CustomAction Id="QtExecDeferredExample" BinaryKey="WixCA" DllEntry="CAQuietExec"  Execute="deferred" Return="check" Impersonate="no"/> 
<InstallExecuteSequence> 
    <Custom Action="QtExecDeferredExample" After="InstallFiles"></Custom> 
</InstallExecuteSequence> 
</Fragment> 

그러나 추종자로 보여주는 instlling의 로그 :

CAQuietExec: Error 0x80070002: Command failed to execute. 
CAQuietExec: Error 0x80070002: CAQuietExec Failed 
CustomAction QtExecDeferredExample returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox) 
Action ended 11:57:17: InstallFinalize. Return value 3. 

하지만 난 C:\Program Files (x86)\SetupProjectConsole\[INSTALLFOLDER]를 교체하는 경우 설치 프로그램이 오류를 표시하지 않습니다. 이 문제를 어떻게 처리합니까? 감사!

<Property Id="QtExecDeferredExample" Value="&quot;[#Run.bat]&quot;"/> 

:이 방법을 시도하면 어떻게

+0

테스트 할 수 없으므로 도움이되지 않을 수도 있지만 디렉토리 키에는 뒷부분에 백 슬래시가 사용 된 적이 없습니다. "Value ="" [INSTALLFOLDER] \ Run.bat " " –

+0

"" [INSTALLFOLDER] \ Run.bat " "을 사용했지만 오류가 발생했습니다. 감사합니다. –

답변

0

?

3

배치 파일은 실행 파일이 아닙니다. 배치 파일은 cmd.exe로 해석되는 텍스트 파일입니다. QtExec 사용자 정의 작업은 실행 파일 만 실행하므로 사용자는 인터프리터를 호출해야합니다.

다음과 같은 무언가가 잘 작동해야합니다

<Property Id="QtExecDeferredExample" Value="[SytemFolder]cmd.exe /k &quot;[INSTALLFOLDER]Run.bat&quot;"/> 

그러나 배치 파일을 호출하면 강력한 설치의 특징이 아니다.

관련 문제