2009-09-25 6 views
2

설치 절차를 완료하기 위해 몇 가지 배치 파일을 호출해야하는 msi 설치 관리자가 있습니다. 배치 파일은 설치 프로그램의 일부 파일을 몇 개의 디렉토리에 복사 한 다음 해당 디렉토리 중 몇 가지에 대한 사용 권한을 수정합니다. 우리는 개발 일정에 많은 시간이 남아 있지 않기 때문에 배치 파일을 계속 사용하고자합니다. 나는 WIX를 사용하지 않고있다.MSI에서 배치 파일을 호출하는 방법

가능한 경우 배치 출력을 캡처하여 로그 파일에 기록하고 싶습니다.

발견 된 벨로우는 사용자 지정 작업에서 배치 파일을 실행하려고 시도하는 코드입니다. cmd 창이 열리고 잠시 동안 실행되지만 끝내지는 않습니다. 명령 프롬프트에서 동일한 배치 파일을 직접 실행하면 작동합니다.

//Set the environment to the directory containing the bat files 

ProcessStartInfo info = new ProcessStartInfo(batch); 
info.WindowStyle = ProcessWindowStyle.Hidden; 
info.UseShellExecute = false; 
info.RedirectStandardError = true; 
info.RedirectStandardOutput = true; 
if (!string.IsNullOrEmpty(argument)) 
    info.Arguments = argument; 

Process process = new Process(); 
process.StartInfo = info; 
process.Start(); 

// Capture the standard error and standard output 

내가 뭘 잘못하고 있니?

+0

문제가 밝혀으로 내가 가진 한 것은이었다 로깅 프로세스의 일부 기록 된 로그 메시지가 없으면 읽기 프로세스가 설치 프로그램을 차단합니다. 이것은 분명히 나빠서 내 인생을 슬프게 만들었습니다. – smaclell

답변

2

사용자 지정 작업을 만들어야한다고 생각합니다. this question을 참조하십시오. 설치 과정에서 .BAT 파일의 실행을 중지 할 수 있습니다

+0

나는 그것이 작동하도록 더 열심히 노력해야한다고 생각한다. 귀하의 회신에 감사드립니다. – smaclell

0

대부분의 안티 바이러스 프로그램, 당신이 정말이 사용하는 표준 Windows 설치 기능을 수행해야 또는 C++ 사용자 지정 작업

관련 문제