2016-09-13 2 views
0

나는 WiX로 시작하고 ExitDIalog를 사용자 정의하는데 약간의 문제가 있습니다. 처음에는ExitDialog에서 사용자 정의 exe 호출

내가 원하는 :

  • 가 내 응용 프로그램에 대한 설정을 만들려면

    나는이 선택을 제안하고자 설치 한 후
  • :

    • 시작 응용 프로그램 (application.exe 새로 설치)

    • 실행 옵션 설정은

  • 옵션 설정은 .EXE입니다 (내 응용 프로그램은 사용자의 카메라로 따라 일부 드라이브를 설치해야). setup.msi 옆에 배치해야하지만 내 응용 프로그램 폴더에는 복사하지 마십시오.

내가 디렉토리를 생성 :

<Fragment> 
    <Directory Id="TARGETDIR" Name="SourceDir"> 
    <Directory Id="ProgramMenuFolder"> 
     <Directory Id="ApplicationProgramsFolder" Name="$(var.compagny)"/> 
    </Directory> 
    <Directory Id="DesktopFolder" SourceName="Desktop"/> 
    <Directory Id="ProgramFilesFolder"> 
     <Directory Id="COMPAGNYFOLDER" Name="$(var.compagny)"> 
     <Directory Id="INSTALLFOLDER" Name="$(var.product)">    
      <Directory Id="fr" Name="fr"/> 
     </Directory> 
     </Directory> 
    </Directory> 
    </Directory> 
</Fragment> 

가 어떻게 내 .EXE에 대한 참조를 추가 할 수 있습니다 ? 내가 한 :

<Component Id="ProductComponent" Guid="{2C26B191-6654-4405-8E78-F8B6EFEDC9FC}" Directory="INSTALLFOLDER"> 
    <File Id="uEye64_47100_WHQLexe" Source="./Resources/uEye64_47100_WHQL.exe" KeyPath="yes" Checksum="yes" Compressed="no" Vital="no"/> 
</Component> 

을하지만 uEye64_47100_WHQL.exe 파일이 INSTALLFOLDER에 복사 (내가 원하는하지 않는 것) 설치가와 경로를 혼합 [응용 프로그램]/빈/릴리스 (로 모른다). 로그 파일에 있습니다 :

Failed to open the file:C:\dev\MyApplication\main\SetupProject\bin\Release\MyCompagny\MyProduct\uEye64_47100_WHQL.exe for computing its hash. Error:3

그리고이 같은 .EXE (이 파일을 필요로 상승 된 권한)

<!-- Set checkbox for launch install uEye --> 
<Property Id="WIXUI_EXITDIALOGUEYECHECKBOXTEXT" Value="Launch install uEye"/> 
<CustomAction Id="SetExecUEye" FileKey="uEye64_47100_WHQLexe" ExeCommand="" Return="asyncNoWait" Impersonate="no" Execute="deferred"/> 

<UI> 
    <UIRef Id="WixUI_Custom"/>  
    <Publish Dialog="MyExitDialog" 
      Control="Finish" 
      Event="DoAction"     
      Value="SetExecUEye">WIXUI_EXITDIALOGUEYECHECKBOX = 1 and NOT Installed</Publish> 
</UI> 

가 어떻게 나의 uEye64_47100_WHQL.exe 설치 후 호출되지 수 있지만 복사 정의해야 전화 INSTALLFOLDER에?

답변

2

파일을 설치 위치에 복사하지 않고 실행하기 만하면 구성 요소 대신 이진 소스로 포함 할 수 있습니다. 이 방법은 설치 프로그램에 압축되어 있지만 설치시 배포되지 않습니다 (일부 임시 폴더에만 해당).

<Binary Id="uEye64_47100_WHQLexe" SourceFile="./Resources/uEye64_47100_WHQL.exe" /> 
<CustomAction Id="InstalluEye64exe" BinaryKey="uEye64_47100_WHQLexe" ExeCommand="" Execute="deferred" Return="ignore" Impersonate="no"/> 
+0

당신은 저를 구합니다! 윅스가 나를 미치게 만들거야. 제거 할 오류 (ErrorCode 2762)와 설정이 완료됩니다. –

+0

바이너리를 압축하지 않고 중요하지 않게 설정할 수 있습니까? 내 setup.msi는 4ko, optionnal.exe는 150Mo입니다. 'Binary'로 선언하면 내 setup.msi가 154Mo가됩니다. 적어도이 설정을 사용하지 않고 설정을해야합니다 (확인란 만 잘못됩니다) –

관련 문제