2014-05-13 6 views
0

.net 응용 프로그램을위한 설치 프로젝트를 만들었습니다. 설치 폴더 선택 후 다른 대화 상자를 추가하고 싶습니다. 사용자 인터페이스 패널에서 해당 대화 상자를 추가했습니다. enter image description here설치 프로젝트에서 사용자 지정 대화 상자를 코딩하는 방법은 무엇입니까?

나를 올바르게 보여줍니다.

enter image description here

는 지금, 나는 CustomInstallerClass에서 선택한 옵션에 따라 일부 코드를 작성합니다. 그러나 나는 Commit 프로세스에서 그 값 (선택된 라디오 버튼)을 가져 오는 방법을 모른다. 그래서, 나는 라디오 버튼 선택에 따라 그 이상의 과정을 할 수있다.

Wix 또는 다른 타사 도구를 사용하여 해당 패키지를 만들 수 없습니다. 나는 또한 this 같은 다른 게시물을 읽었습니다. 그러나, 나는 이것들에서 어떤 해결책도 찾을 수 없었다.

편집 :

나는 상황에서 사용할 수있는 매개 변수를 검색하려면 다음 코드를 사용하고 있습니다. 하지만 결과에서 내 사용자 지정 대화 상자에서 매개 변수를 찾을 수 없습니다.

protected override void OnCommitted(System.Collections.IDictionary savedState) 
{ 
    string Values = string.Empty; 
    foreach (string skey in this.Context.Parameters.Keys) 
     Values += skey + Environment.NewLine; 
    MessageBox.Show(Values); 
    base.OnCommitted(savedState);    
} 

결과가 다음과 같이 표시됩니다.

action 
installtype 
assemblypath 
logfile 

답변

1

MS는 설치 프로젝트를 VS에서 가져올 때이 작업을 수행하는 방법을 삭제 한 것처럼 보입니다. 그러나 RadioButtons (2) 대화 상자의 속성 창을 보면 대문자 속성 이름 인 BUTTON2가있는 것을 볼 수 있습니다. 0 또는 1로 설정됩니다. 설치 메소드에 매개 변수를 전달하는 방법은 인수와 유사하므로/MyButton = [BUTTON2]과 같은 것을 추가하면 대괄호가 필요합니다. 그런 다음 설치 프로그램 클래스에서 다음과 같이 말할 수 있습니다.

StringDictionary myStringDictionary = this.Context.Parameters;

사전에 키 MyButton을 사용하여 값을 가져옵니다. 이것은 당신을 가까이해야합니다.

+0

@PhilDW에 응답하는 Thnx. foreach 루프에서'this.Context.Parameter'를 시도했습니다. 하지만이'StringDictionary' 결과를 찾을 수 없습니다. 내 질문을 업데이트하고 코드를 게시했습니다. 대화 상자의 스크린 샷도 변경했습니다. – Shell

+0

설치 사용자 지정 작업에 전달한 문자열을 표시해야합니다./R1 = [RB1]/R2 = [RB2] – PhilDW

+0

고맙습니다 @PhilDW처럼 작동하지 않는 것 같습니다. 그것은'CustomAction'에서 인자를 ButtonProperty로 할당함으로써 해결되었습니다. – Shell

관련 문제