2011-04-24 5 views
0

다른 WPF 응용 프로그램 (4.0 응용 프로그램)에서 하나의 WPF exe (3.5 프레임 워크에 있음)를 실행하는 방법.WPF 응용 프로그램 내에서 .exe를 호출하는 방법

이유는 위에 있습니다 :
3.5 프레임 워크 만 지원하고 기존 응용 프로그램은 4.0을 사용하는 제 3자를 사용하고 있습니다. 내 현재 응용 프로그램 대상 유형을 변경할 수 없습니다. 변경하려면 약 200 개 프로젝트가 필요합니다.

나는이 문제에 고착되어있다. 또한이 문제의 인자로 문자열을 전달해야한다.

다음은 내가 노력 코드,하지만 그 어떤 행운을하지 않았다 :

var processInfo = new ProcessStartInfo(path, param); 
Process.Start(processInfo); 

편집 : 내가 경로를 변경하고 나를 위해 작동합니다. 하지만 이제 문제는 .exe 응용 프로그램에서 명령 줄 인수를 가져올 수 없다는 것입니다. 현재 필자는 .exe에 대한 인수로 "param"(배열의 문자열 유형 임)을 전달합니다. 하지만 아무도 내게 .exe 파일에서이 매개 변수를 얻는 방법을 도울 수 있습니다. 창에서의 의미.로드 처리기이 매개 변수를 가져오고이를 기반으로 일부 작업을 수행하려고합니다.

+0

경로를 두 번 확인하십시오. 디렉토리와 파일이 포함되어 있는지 확인하십시오. 시작 디렉토리 경로도 지나치게 많은 옵션을 허용하는 오버로드로 전달해야 할 수도 있습니다. –

+0

retagged question - WPF 또는 XAML과 관련이 없습니다. –

+0

로그를 사용하여 app 버전 4에서이 매개 변수를 가져 오는지 확인 하시겠습니까? – Rev

답변

1

제공된 경로가 상대 경로 인 경우 작업 디렉토리 (Environment.CurrentDirectory)에서이 API를 확인하고 많은 다른 API가이 경로를 기본 경로로 사용하여 상대 경로가 제공 될 때 절대 경로를 만듭니다 .

+0

안녕하세요, 답변 주셔서 감사합니다 .. 나는 경로를 변경하고 나를 위해 작동 ..하지만 지금 문제는 .exe 응용 프로그램에서 명령 줄 인수를 얻을 수 없다는 것입니다. – Peter

+0

마찬가지로 현재 "param"을 내 .exe에 인수로 전달하고 있습니다. 그러나 ca .exe 파일에서이 매개 변수를 얻는 방법을 알려주십시오. Window의 의미 .Loaded handler이 매개 변수를 얻었고이를 기반으로 일부 쿼리 또는 모든 동작을 트리거 할 수 있습니다. – Peter

+0

명령 행 매개 변수는 (시작중인 프로세스에서) main 함수의 문자열 배열에 있어야합니다. 또한 더 많은 도움이 필요하면 Environment.CommandLine – Asher

0

다른 프로세스를 시작하면 해당 응용 프로그램에 필요한 .NET CLR 버전이로드됩니다. 현재 버전과 다른 버전이 필요한 .NET 응용 프로그램을 시작하는 데 아무런 문제가 없습니다.

경로의 값이 올바른지 확인하십시오.

예외가 있으면 게시하십시오.

+0

안녕하세요, Emo, 답변 해 주셔서 감사합니다. 실제로 문제가있었습니다. 유효하지 않은 경로이지만, 이제는 명령 행 인수와 관련이 있습니다. – Peter

+0

탈출하거나 따옴표를 추가해야 할 수도 있습니다. –

0

Process.Start()을 사용하지 않고 .Net 4.0 응용 프로그램에서 .Net 3.5 응용 프로그램을 호출 할 수 있어야합니다. 3.5 exe를 참조에 추가하기 만하면 이제 해당 어셈블리의 형식을 사용할 수 있습니다.

관련 문제