2010-01-14 4 views

답변

8

프로젝트 내에서 프로젝트를 마우스 오른쪽 단추로 클릭하고보기> 사용자 지정 작업을 선택하십시오. 사용자 지정 작업을 추가하십시오. 이제 출력 추가를 선택하고 웹 서비스 프로젝트를 선택한 다음 확인을 클릭하십시오.

이 이제 사용자 지정 작업을 선택하고 /ProductName=[PRODUCTNAME] /whateveryouwant=[Whateveryouwant] 같은 것을 포함하도록 CustomActionData 속성을 설정 (이 키 - 값 쌍 참고, 즉를 제품 이름에 액세스 할 ProductName 키이며, 값은 PRODUCTNAME입니다).

CustomActionData에는 설치 관리자 클래스에 전달할 매개 변수가 들어 있습니다. PRODUCTNAME은 사용자 인터페이스 대화 상자의 입력 컨트롤과 연결된 속성 이름이므로 사용자는 yor 설치 프로그램에서 제품 이름을 입력하라는 메시지를 표시합니다. 따라서 레이블은 "제품 이름"이고 해당 속성은 PRODUCTNAME으로 설정해야합니다 (분명히 변경할 수 있지만 유의해야 할 점은 UI 속성 이름이 CustomActionData의 속성 이름과 같아야한다는 것입니다). 이 예제가 작동합니다.

이제 설치 클래스 내에서 당신이

public override void Install(IDictionary stateSaver) 
{ 
     // If you need to debug this installer class, uncomment the line below 
     //System.Diagnostics.Debugger.Break(); 

     string productName = Context.Parameters["ProductName"].Trim(); 

     string whateveryouwant = Context.Parameters["whateveryouwant"].Trim(); 
} 

메모를 수행하여 제품 이름을 얻을 수 있습니다 난 당신이 설치 클래스를 디버깅 할 수 있도록에서 댓글을 달 수 있습니다 주석 코드 //System.Diagnostics.Debugger.Break(); 포함되어 있습니다.

희망이 도움이됩니다.

+0

Excelent! 고맙습니다! –

+0

나는 2 가지 문제를 겪었다. (1) 작동하지 않는다. (2) 디버깅 할 때 : '현재의 코드가 최적화 되었기 때문에 식을 평가할 수 없다.' –

+0

당신의 눈이 보이지 않으면 어떤 문제인지 모르겠다. 코드 또는 자세한 details.the 오류가 점점 귀하의 점점 많은 지역에 대한 오류가 발생합니다. 원한다면 셋업 프로젝트의 정돈 된 버전을 나에게 보낼 수 있습니다. 병이 무엇인지 잘못 볼 수 있는지 확인해보십시오. – Somedeveloper

관련 문제