Wix 설정이있는 C# 응용 프로그램이 있습니다. ExitDialog
을 2 개의 체크 박스 (this 다음)로 사용자 정의하고, 내 응용 프로그램을 실행하는 데 사용하며, 다른 하나는 선택적 설치 (uEye 카메라 용)를 실행하는 데 사용됩니다.Wix 설정에서 .exe를 실행할 수 없습니다.
첫 번째 체크 박스는 다음과 같습니다
<!-- Set checkbox for launch my application -->
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="Launch $(var.product)"/>
<CustomAction Id="SetExecVR3" Property="WixShellExecTarget" Value="[#MyApplication.exe]"/>
<CustomAction Id="DoExec" BinaryKey="WixCA" DllEntry="WixShellExec" Impersonate="yes" Return ="ignore"/>
두 번째 : 내 설치가
<UI>
<UIRef Id="WixUI_Custom"/>
<Publish Dialog="MyExitDialog"
Control="Finish"
Event="DoAction"
Value="SetExecVR3">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish>
<Publish Dialog="MyExitDialog"
Control="Finish"
Event="DoAction"
Value="DoExec">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish>
<Publish Dialog="MyExitDialog"
Control="Finish"
Event="DoAction"
Value="SetExecUEye">WIXUI_EXITDIALOGUEYECHECKBOX = 1 and NOT Installed</Publish>
<Publish Dialog="MyExitDialog"
Control="Finish"
Event="DoAction"
Value="DoExec">WIXUI_EXITDIALOGUEYECHECKBOX = 1 and NOT Installed</Publish>
</UI>
:
<!-- Set checkbox for launch install uEye -->
<Property Id="WIXUI_EXITDIALOGUEYECHECKBOXTEXT" Value="Launch install uEye"/>
<CustomAction Id="SetExecUEye" Property="WixShellExecTarget" Value="./Resources/uEye64_47100_WHQL.exe"/>
그리고 내 윅스 UI (this 나를 도와)가있다 :
MyApplication.exe의 체크 박스는 정상적으로 작동하지만 다른 하나는 정상적으로 작동하지 않습니다. 생성은 로컬 디렉토리에 uEye64_47100_WHQL.exe
을 복사하지 않았고 옵션을 체크하지 않으면 아무것도 추가하지 않습니다.
나는 WiX로 시작하고 있는데, 나는 무엇을 놓쳤는가?
편집 :
지금 나는.exe
와 구성 요소를 가지고있다. 파일이 복사되었지만 실행할 수 없습니다. MSIEXEC와 로그 I은 할 :
MSI는 (c) (C4 : B8) 12 : 45 : 35 : 109] 참고 : 1 : 2,228 2 : 3 : 오류 4 :
Error
Error
FROMMessage
를 선택 = 1721 정보 1721.There이 Windows Installer 패키지에 문제가 있습니다. 이 설치를 완료하는 데 필요한 프로그램을 실행할 수 없습니다. 지원 담당자 또는 패키지 공급 업체에 문의하십시오. 작업 : SetExecUEye, 위치 : C : \ uEye64_47100_WHQL.exe, 명령 :이 오류를 이해하지 않고, 파일이 C에 왜 몰라
는 : \ (나는 그것을 찾을 수 SourceDir
을 사용)
Edit2가 :
생성 된 구성 요소 :
<Component Id="uEye64_47100_WHQLexe" Directory="TARGETDIR" Guid="{1BD47632-42D5-4C56-B207-1E6B1005488C}">
<File Id="uEye64_47100_WHQLexe" Source="./Resources/uEye64_47100_WHQL.exe" KeyPath="yes" Checksum="yes" Compressed="no" Vital="no"/>
</Component>
그리고 디렉토리 :
uEye64_47100_WHQLexe를 내 릴리스 폴더에서만 복사하도록 정의하는 방법은 무엇입니까? TARGETDIR
이 C : \
'CustomAction'을 모두 수정했습니다. 이제 Action에 의해 하나의'Publish' 만 있습니다 :-). 또한 uEye.exe의 구성 요소를 추가했습니다. 이제 파일이 내 설치 폴더에 복사됩니다. 하지만 "Install install uEye"상자를 체크하면 커서가 1 초 동안 기다리면서 설정이 닫히고 아무 일도 일어나지 않습니다. .exe 파일에는 관리자 권한이 필요합니다. 이유가 있습니까? –
로그를 사용하여 코드를 편집했습니다. –
이제 설치 위치에 파일을 복사하지만 C : \에서 실행하려고합니까? 지금 보시다시피 Component와 CustomAction 코드를 추가 하시겠습니까? 구조가 이상적입니까? Btw SourceDir은 루트 디렉토리를 의미합니다. 디렉토리 트리가 만들어 졌으므로 C : \ –
Mischo5500