사용자 정의 작업에서 Setup.exe의 위치를 얻습니다
-
11-09-2019 - |
문제
C# 2005
XML 구성 파일에서 읽을 사용자 정의 작업이 필요하므로 설치 프로그램 클래스를 사용하고 있습니다.
따라서 사용자가 설정을 두 번 클릭하면 동일한 폴더에 config.xml 파일이 있습니다. 설치 이벤트 에서이 config.xml 파일을 읽고 싶습니다. 폴더에는 setup.exe 및 config.xml이 포함됩니다
그러나 c : windows system32에서 찾고있는 config.xml 파일을 찾을 수 없습니다. ApplicationStartup.path를 사용하여 이것을 찾았습니다. 그러나 설정 및 config.xml이 포함 된 설정 폴더는 데스크톱에 있습니다.
나는 그것이 현재 위치에서 그것을 찾을 것이라고 생각했다. 설정 폴더입니다.
어려움은 내 설정 폴더가 인터넷에서 다운로드되고 모든 사용자가 다운로드하여 컴퓨터의 어느 곳에서나 압축을 풀 수 있다는 것입니다.
다음은 ON 설치 이벤트를위한 내 코드 스 니펫입니다.
조언에 감사드립니다
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());
}
해결책 3
나는 이것을 해결할 수 있습니다.
답은 단지 모든 작업을 수행 할 간단한 박쥐 파일을 작성하는 것이 었습니다. BAT 파일은 설정을 호출하여 응용 프로그램을 설치합니다.
감사,
다른 팁
MSI에 대해 이야기하고 있다고 가정하면 OriginalDatabase 재산?
당신이 안개가 쓰지 않는다고 가정합니다 CAT_TargetDir
대신에 TARGETDIR
다음과 같은 해결 방법을 수행 할 수 있습니다. 사용자 정의 액션에 대한 인수로 CustomActionData를 설정하고 TargetDir를 통과하십시오. 가장 우아한 솔루션은 아니지만 매우 쉽게 작동해야합니다.
당신은 또한 이것을 시도 할 수 있습니다 : MSI 소스 디렉토리에서 파일을 복사하는 MSI 사용자 정의 작업이 필요합니다.