나는 내 솔루션System.Configuration.Install.Installer를 사용하여 설치 프로젝트에서 변수를 가져 오는 방법은 무엇입니까?
Windows 서비스에서이 개 프로젝트가
그것의 설치 프로젝트 내가 OnAfterInstall라는 내
ProjectInstaller : System.Configuration.Install.Installer
의 방법은에서ProductName
을 얻을 것을 필요
설치 프로젝트. 어떻게해야합니까?
나는 내 솔루션System.Configuration.Install.Installer를 사용하여 설치 프로젝트에서 변수를 가져 오는 방법은 무엇입니까?
Windows 서비스에서이 개 프로젝트가
그것의 설치 프로젝트 내가 OnAfterInstall라는 내 ProjectInstaller : System.Configuration.Install.Installer
의 방법은에서 ProductName
을 얻을 것을 필요
설치 프로젝트. 어떻게해야합니까?
프로젝트 내에서 프로젝트를 마우스 오른쪽 단추로 클릭하고보기> 사용자 지정 작업을 선택하십시오. 사용자 지정 작업을 추가하십시오. 이제 출력 추가를 선택하고 웹 서비스 프로젝트를 선택한 다음 확인을 클릭하십시오.
이 이제 사용자 지정 작업을 선택하고 /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();
포함되어 있습니다.
희망이 도움이됩니다.
Excelent! 고맙습니다! –
나는 2 가지 문제를 겪었다. (1) 작동하지 않는다. (2) 디버깅 할 때 : '현재의 코드가 최적화 되었기 때문에 식을 평가할 수 없다.' –
당신의 눈이 보이지 않으면 어떤 문제인지 모르겠다. 코드 또는 자세한 details.the 오류가 점점 귀하의 점점 많은 지역에 대한 오류가 발생합니다. 원한다면 셋업 프로젝트의 정돈 된 버전을 나에게 보낼 수 있습니다. 병이 무엇인지 잘못 볼 수 있는지 확인해보십시오. – Somedeveloper