설치자가 InstallPrivileges="elevated"
입니다.관리자 권한이 상승 된 설치 관리자가 실행 파일을 상승시키지 않습니다.
<CustomAction Id="SetProp" Property="Launch" Value =""[INSTALLDIR]myapp.exe""/>
<CustomAction Id="Launch" BinaryKey="WixCA" DllEntry="CAQuietExec64" Execute="deferred" Return="ignore" Impersonate="no"/>
과 같이 일정 :
<Custom Action="SetProp" Before="Launch">NOT Installed</Custom>
<Custom Action="Launch" Before="InstallFinalize">NOT Installed</Custom>
하지만 Uachelper에 따라 나는 elevcated 상태로 실행하려면이 CA를 사용하여 파일 테이블 내부에 App.exe가
<Component Id="myapp" Guid="*">
<File Id="myapp" Source="myapp.exe"/>
</Component>
포함 클래스 (C#) 및 누락 된 결과이 프로세스는 상승되지 않지만 자세한 로그 및 myapp.exe 로그에는 오류가 표시되지 않습니다.
또한 유형 2 사용자 정의 작업 (binarykey 등), 유형 18 사용자 정의 작업 (파일 키 등)을 사용하고 myapp.exe에 필수 관리자와 함께 app.manifest를 포함하려고했습니다.
설치하는 동안 myapp.exe를 올리려고 아무 것도 작동하지 않았습니다.
해결 방법 설치가 완료된 후 myapp.exe를 수동으로 시작하는 것으로 나타났습니다 ([INSTALLDIR]로 이동하여 myapp.exe를 더블 클릭하고 uac 등을 나타낼 것입니다).하지만 피하고 싶습니다. 나는 또한 runas
을 사용하려고 생각했지만 이것이 작동하는지 또는 이것이 가능한지 확실하지 않습니다.
이 모든 내용은 http://wixtoolset.org/documentation/manual/v3/customactions/qtexec.html, https://stackoverflow.com/a/10028939/4096653 및 기타 많은 질문을 바탕으로 작성되었습니다.
무엇이 누락 되었습니까? 아니면 내가 뭘 시도 할 수 있습니까?
설명 : 상승 된 CA에 대한 요구 사항이 모두 있으며 MSI도 관리자 권한으로 실행됩니다. 그러나 2를 입력해도 18 CA를 입력하고 조용한 exec가 myapp.exe를 올리기 위해 작동하지 않습니다. 이 값을 현재 사용자 (시스템 계정이 아닌)로 올리려면 Launcher 응용 프로그램을 호출 할 다른 elevatd CA를 만들어야합니다. 이 런처 앱은 shellexecute를 사용하여 myapp.exe를 호출하여 현재 사용자에게 UAC 창을 표시합니다. 나는 그것을 올바르게 이해 했는가? – sceiler
맞습니다. 정상 체크인을하는 것이 매우 쉽고 런처가 완료되거나 실행 CA가 대기해야하는 경우 전체 설치를 계속할지 결정해야합니다. – PhilDW