C# Process.Start(string fileName) 이용 시에 0x80004005 발생 해결 방안 모색
매개변수에 입력되는 fileName , 즉 File이 위치하는 Path에도 정상적인 파일이 존재하는데도 Process.Start를 이용하여 실행시에 0x80004005 발생 시에 해결 방안을 모색해보았습니다.
마찬가지로 0x80004005의 경우
실행하는 프로젝트가 32bit 이며 , Process.Start로 실행하려는 파일은 64bit 프로세스 입니다.
서로 다른 프로세스(?)로 인식하여 파일이 존재하지 않는 것 처럼 오류가 발생 하였습니다.
해결 방안에 대해서는 2가지 방법을 모색 하였습니다.... ( 더 좋은 방안이 많을 것 같습니다... )
(1) 실행하는 프로젝트와 실행하려는 프로세스의 플랫폼을 일치 시키거나 ( any cpu 사용시에 32bit로 통일 시켰습니다. )
(2) 프로젝트 구조 , 의존성 , 특성 등으로 인하여 플랫폼을 변경하지 못할때 , 서로 플랫폼이 틀릴때는 실행하는 프로젝트의 Process 실행 시에 아래와 같이 UseShellExecute를 true로 설정 해주니 문제 없이 실행 되었습니다...
using (Process ps = new Process())
{
ProcessStartInfo psi = new ProcessStartInfo("D:\\test.exe");
psi.UseShellExecute = true;
//psi.Verb = "open";
//psi.CreateNoWindow = true;
ps.StartInfo = psi;
ps.Start();
ps.WaitForExit();
ps.Close();
}
'C#' 카테고리의 다른 글
[C#] HttpClient 에 CookieContainer 이용 JSESSIONID 설정 진행 예제 (0) | 2024.02.04 |
---|---|
특정 위치에 파일 중복 여부 체크 하고 새로운 파일명 구하기 예제 (0) | 2023.08.23 |
[C#] HttpWebRequest/HttpWebResponse Memory leak 현상 발생 관련 사항 (0) | 2022.08.12 |
[C#] WebView2 Control 이용 PDF 파일 오픈 후 Key , mouse 입력 인쇄 시도 (0) | 2022.05.26 |
[RTSP] TCPClient를 이용하여 OPTIONS 요청 결과 받기 (0) | 2022.03.03 |