2012-10-26 2 views
2

많은 사람들이 큰 소리로 외치 겠지만 다른 방법은 없습니다. WIX 설치시 설치 프로그램에서 설정 한 속성을 사용하여 대화 상자에서 제품 유형 (버전 유형 등)을 결정하고 알고리즘과 연결해야하는 잠금 코드를 생성해야합니다. 이들을 기반으로 사용자는 잠금 해제 키를 입력하고 사용자 지정 작업은 세 텍스트 상자의 세부 정보를 가져와 올바른지 확인합니다. 나는 이들을 생성하기위한 알고리즘을 작성하지 않았고 불행히도 그것을 변경할 수 없다.즉각적인 사용자 지정 작업이 향상되었습니다.

제 문제는이 대화 상자가 나타나기 전에 레지스트리에 제품 키를 만들어서 잠금 코드 알고리즘을 읽을 수 있어야한다는 것입니다. 그래서 기본적으로 나는 커스텀 액션을 올려야합니다. 나는 어딘가에 누군가가 msiexec을 호출하기 위해 사용자 정의 액션을 구현했지만 지금은 그것을 찾을 수없고 이것을 생성하는 방법을 모를 것입니다. 누구도 같은 문제를 겪은 적이 있습니까? 나는 사람들이 가지고있는 것을 읽었지 만 나는 그들의 해결책을 찾지 못하거나 하나가 있다고 생각할 수 없다. 미리 감사드립니다.

+0

방금 ​​여기에 같은 주제의 답변을했습니다 : [mt.exe를 사용하여 생성 된 msi에 매니페스트를 적용하는 문제] (http://stackoverflow.com/questions/14275483/issue-applying- a-manifest-to-a-wix 생성 -msi-using-mt-exe/15187354 # 15187354). 희망이 도움이됩니다. – rocky

+0

MSI를 표시 할 수 없습니다. 실행 파일이 아닙니다. –

답변

5

바로 사용자 지정 작업을 수행 할 수 없습니다. 기간, 이야기의 끝. #FACT

무엇을 할 수 있습니까?

1) 관리자와 MSI에서 부트 스트 래퍼에 의해 실행 된 실행 조건이 필요함을 알리는 setup.exe 부트 스트 래퍼를 사용하십시오. (부트 스트 래퍼가 MSI에 속성을 전달하면 SETUPEXEDRIVEN = 1이 InstallShield에서 호출합니다.) 이렇게하면 전체 UI 시퀀스가 ​​향상됩니다. (아니 가장 좋은 방법하지만 난 당신을 위해 거기를 알리거야.)

2) 것이다 가능성이 리팩토링 할 라이센스 코드가 필요하지만, 헤이가 깨진 디자인 어쨌든이었다 (대신 HKLM의 HKCU에 씁니다.)

3) 라이센스 API에 대한 설치 프로그램 인터페이스를 리펙터링하십시오. 나는 전에 이것을했다. 한 번은 설치 관리자가 EXE를 호출하여 라이센스의 유효성을 검사 할 것으로 예상했던 회사에서 근무했습니다. 하나의 큰 문제는 EXE가 프로세스가 중단되어 설치 프로그램과 통신 할 수 없다는 것입니다. 그래서 그들은 레지스트리에 "ISVALID"를 쓰기 시작했고 EXE를 중심으로 VBScript를 작성하여 값을 비우고 exe를 호출 한 다음 값을 확인하고 MSI 속성을 설정해야했습니다. 음, #FAIL이라고 할 수 있니? 최적의 솔루션은 개발자 팀이 높은 수준의 권한이나 다른 해커가 필요하지 않은 표준 MSI 사용자 지정 작업에서 직접 호출 할 수있는 라이선스 코드 용 API를 만들도록 강요하는 것이 었습니다.

+3

NC1, 때로는 개발 단계로 되돌아가 올바른 방향으로 일하는 방법을 배워야합니다. 설치 프로그램은 어리석은 일을하도록 강요 받아서는 안됩니다. 당신의 기술을 배우고 다시 열심히 시작하십시오. 이것이 Fortune 50 대 기업의 "포장기"에서 건축가가되는 방식입니다. –

관련 문제