2009-04-18 2 views
1

C# 2005사용자 지정 작업에서 setup.exe의 위치를 ​​얻는 중

xml 구성 파일에서 읽을 사용자 지정 작업이 필요하므로 설치 관리자 클래스를 사용하고 있습니다.

사용자가 설정을 두 번 클릭하면 동일한 폴더에 config.xml 파일이 있습니다. 설치 이벤트에서이 config.xml 파일을 읽고 싶습니다. 폴더에 setup.exe 및 config.xml이 포함됩니다.

그러나 config.xml 파일은 C : \ windows \ system32에서 찾고 있기 때문에 찾을 수 없습니다. 나는 이것을 applicationstartup.path를 사용하여 발견했다. 그러나 setup 및 config.xml이 들어있는 setup 폴더는 내 바탕 화면에 있습니다.

나는 그것이 현재 위치에서 그것을 찾을 것이라고 생각했다. 어떤 설정 폴더가 될 것입니다.

어려운 점은 내 설치 폴더가 인터넷에서 다운로드되고 모든 사용자가이 파일을 다운로드하여 컴퓨터의 어느 곳에서나 압축을 해제 할 수 있다는 것입니다.

다음은 on install 이벤트에 대한 코드입니다. 당신은 MSI에 대해 얘기하고 조언

protected override void OnAfterInstall(System.Collections.IDictionary savedState) 
    { 
     DataTable dt = new DataTable(); 
     MessageBox.Show(Application.StartupPath.ToString()); 
     dt.ReadXml("config.xml"); 

     MessageBox.Show(base.Context.Parameters["CAT_TargetDir"].ToString()); 
    } 

답변

0

나는 이것을 해결할 수 있었다.

대답은 단지 나를위한 모든 작업을 수행 할 간단한 박쥐 파일을 작성하는 것이 었습니다. 그러면 박쥐 파일이 설치 프로그램을 호출하고 응용 프로그램을 설치합니다.

감사합니다,

1

TARGETDIR 대신 CAT_TargetDir을 잘못 입력하지 않으면 다음과 같은 해결 방법을 수행 할 수 있습니다. CustomActionData를 설정하고 TARGETDIR을 사용자 지정 작업의 인수로 전달합니다. 가장 우아한 솔루션은 아니지만 매우 쉽게 작동합니다.