0
이 사용자 지정 동작이 실패합니다. cmd /c blah blah & pause
와WIX 사용자 지정 동작에서 경로를 해결하는 방법
<CustomAction Id="SetIntegrityLevel" Return="check"
Directory="TARGETDIR" Impersonate="no" Execute="deferred"
ExeCommand="cmd /c icacls UiProxy.exe /SetIntegrityLevel High & pause" />
사업은 실패한 명령 줄 작업에 무슨 일이 있었는지에 대한 몇 가지 가시성을 얻기를위한 나의 작은 트릭입니다.
UiProxy.exe: The system cannot find the file specified.
Successfully processed 0 files; Failed processing 1 files
Press any key to continue . . .
이것은 놀랍습니다. UiProxy.exe는 TARGETDIR에서 지정한 폴더에 있습니다.
INSTALLDIR 기호를 명령 문자열로 해석 할 수있는 방법이 있습니까? 나는 이런 것을 만들어야합니다.
icacls "C:\Program Files (x86)\UiProxy\UiProxy.exe" /SetIntegrityLevel High
분명히 나는 다음과 같이 명시 적으로 뭔가를 따옴표를 넣어해야합니다 :
<CustomAction Id="SetIntegrityLevel" Return="check"
Directory="TARGETDIR" Impersonate="no" Execute="deferred"
ExeCommand="icacls "[INSTALLDIR]UiProxy.exe" /SetIntegrityLevel High" />
어디했습니다 [INSTALLDIR] 내가 해결 기호를 필요로했습니다. 문제는이를 표현하는 방법입니다. 나중에 코드에서
일반적으로 설치된 파일의 위치를 사용하려면 (설치자가 UIProxy.exe를 설치 했으므로) [# UIProxy.exe의 파일 ID]를 사용하여 구성 요소의 전체 경로를 지정할 수 있습니다. 이것은 일반적으로 단축키에서 사용됩니다. –
나는 이것을 시도하고 당신이 옳다. 좀 더 유지 보수가 잘되는 이유는 그것을 왜 더 좋은 방법이라고 설명하는 답으로 제안하고 받아 들일 것입니다. –
@PeterWone이 CustomAction을 실행할 순서를 제안 할 수 있습니까? 나는 InstallFiles (4000) 후에도 필요한 프로그램이 설치되지 않았다고 말합니다. – vijiboy