사용자가 입력 한 등록 번호를 확인하기 위해 사용자 정의 dll을 사용하려고했지만 매번 "마법"동작으로 실행됩니다. 자습서 예제 http://wix.tramontana.co.hu/tutorial/events-and-actions/whats-not-in-the-book에서 사용자 지정 작업은 'CostFinalize'다음에 실행됩니다.이 작업은 일반적으로 파일 복사 절차 이전에 수행되어야하지만 사용권 계약과 함께 첫 번째 대화 상자가 나타나기 전에 작업이 실행됩니다. 나는 UI사용자가 입력 한 등록 번호 확인
MySerialCheckDlg에 지정된 MSI에서 PIDKEY 값을 얻을하지 않습니다MsiGetProperty (hInstall, "PIDKEY", Pid, &PidLen);
를 사용하여, DLL에
<Publish Dialog="MySerialCheckDlg" Control="Next" Event="DoAction" Value="CheckingPID">1</Publish>
<Publish Dialog="MySerialCheckDlg" Control="Next" Event="SpawnDialog" Value="InvalidPidDlg">PIDACCEPTED = "0"</Publish>
...
<CustomAction Id="CheckingPID" BinaryKey="CheckPID" DllEntry="CheckPID" />
<Binary Id="CheckPID" SourceFile="serialcheck.dll" />
대화
등록에서 "다음"버튼을 클릭의 이벤트에 작업을 할당하여 문제를 해결하기 위해 노력했다그리고 MSI PIDACCEPTED 속성에
<Control Id="CDKeyEdit" Type="Edit" X="45" Y="159" Width="220" Height="16" Property="PIDKEY" Text="[PIDTemplate]" />
이
<Publish Dialog="MySerialCheckDlg" Control="Next" Event="SpawnDialog" Value="InvalidPidDlg">PIDACCEPTED = "0"</Publish>
따라서 라인에서 확인되지되면, InvalidPidDlg는 표시되지 않습니다 설치 프로세스가 계속됩니다.
WiX Action Sequence의 순서를 지정하거나이 상황에서 사용할 수있는 다른 방법을 지정할 수 있습니까?