2010-01-05 7 views
6

Proces.Start 메서드를 사용하여 C#에서 MSI 파일을 실행하려고합니다. MSI 파일은 정상적으로 실행할 수 있기 때문에 정상적으로 작동하지만 일부 C# 코드에서 MSI 파일을 실행하려고하면 다음 오류가 발생합니다.MSI가 C# 내에서 실행되지 않습니다

"이 설치 패키지는 패키지 이 있는지 확인하십시오. 열 수 없습니다, 당신은 액세스 할 수 있는지, 또는 접촉 에 응용 프로그램 공급 업체는 올바른 Windows에게 설치 패키지인지"

을 다음은

어떻게 내가 할 수있는 내가 MSI 파일을 실행하는 데 사용하고있는 코드 ...

Process p = Process.StartApplication.StartupPath "/Packages/Name.msi"); 

p.WaitForExit(); 

입니다 이 문제를 해결 하시겠습니까?


이제 알았습니다. 방금 MSI 파일을 실행하는 대신 MSI 파일로 생성 된 setup.exe 파일을 실행하도록 변경했습니다 ...

답변

14

msi 파일을 단독으로 실행할 수 없습니다. 당신이 그들에 더블 클릭하면, 윈도우는

msiexec /i PathToYour.msi

가 명시 적으로 그렇게하려고 했 시작?

예 : (의례 @Webleeuw)

Process p = new Process(); 
p.StartInfo.FileName = "msiexec"; 
p.StartInfo.Arguments = "/i PathToYour.msi"; 
p.Start(); 
+0

이 지연 것에 대해 용서,하지만 난이 Process.Start를 함께 어떻게 그렇게 할 것입니다 : 당신이 UseShellExecutetrue로 설정하면이됩니까? – Cwisking

+0

전체 샘플에 대한 Webleeuw의 답변을 참조하십시오. –

9

추가하는 벤자민의 대답에 포스터의 주석 질문 :

Process p = new Process(); 
p.StartInfo.FileName = "msiexec"; 
p.StartInfo.Arguments = "/i PathToYour.msi"; 
p.Start(); 
+2

나를 위해 작동하지 않습니다. 어떤 이유로 Windows Installer 상자에 지침이 표시됩니다. – alice7

6

를 관련된 직접 .msi 파일을 실행하는 것도 가능합니다 신청.

Process.Start(new ProcessStartInfo() 
    { 
     FileName = @"c:\somepath\mySetup.msi", 
     UseShellExecute = true 
    }); 
+0

이것은 나를 위해 일하는 동안/나는 어떤 이유로 ...하지 않았다. – Niklas

관련 문제