2017-03-08 1 views
1

패치 파일의 URL을 전달하여 업데이터 응용 프로그램을 시작해야합니다. 기본 Process.Run 잘 작동하지만 인수를 통과하면 아무 일도 일어나지 않습니다. (이것은 Linux Mint와 Mono입니다)Mono (Linux)에서 Args가있는 Process.Run() 프로세스가 시작되지 않음

나는 SO, net 등을 이미 검사했고 UseShellExecute를 false로 설정하거나 ProcessStartInfo를 사용하는 등의 해결책을 시도했습니다.

내가 뭘 잘못하고 있니? Updater는 주 EXE가있는 폴더와 같은 폴더에 있습니다. 모노 콘솔에 오류가 표시되지 않습니다.

작품 (? 아무것도도 예상 발생하지 않습니다)

Process.Start (Application.StartupPath + @"/Updater.exe"); 

가 작동하지 않습니다 (이 모두 그렇게 놀랄 작동) : 나는 시도 다른 솔루션에서

Process.Start(Application.StartupPath + @"/Updater.exe", "URLToFile"); 

:

Process.Start(new ProcessStartInfo(Application.StartupPath + @"/Updater.exe", @"URLToFile.zip") { UseShellExecute = false }); 

나는 또한 많은 해결책을 제안했다 : How to use Process.Start() or equivalent with Mono on a Mac and pass in arguments 그리고 다른 블로그와 Google 검색 결과를 확인했습니다. 슬프게도 나를위한 해결책이 없었습니다.

가 중요하지 않을 수도 있지만 도움을 줄 수

상세 정보 :

  • 코드는 윈도우에서 작동
  • 내가 업데이트를 플랫폼을
  • 응용 프로그램 검사를 선택하여 Windows 코드에서 분리 된 모노 코드를 실행 한 다음 업데이터를 시작합니다 자체를 닫습니다
  • 업데이터는 기본 exe가 같은 폴더에 있습니다
  • 업데 이터가 구분 된 프로젝트
  • 이것은 휴대용 응용 프로그램입니다

무엇이 잘못 되었나요? 감사.

답변

2

실제로 .exe를 인수로 사용하여 모노를 실행하려면 "모노"접두어를 붙이십시오. 또한 나는 다른 방법으로 응용 프로그램의 경로를 결정 :

string sAppPath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);

Process.Start("mono " + sAppPath + @"/Updater.exe");

+0

나는 제공된 예를 사용하여 콘솔에서 "그런 파일이나 디렉토리를"점점하지거야. 파일/Updater.exe : '/ home/hrcak'파일에 대한 정보를 가져 오는 중 오류가 발생했습니다. /mono/home/hrcak/Desktop/File/Updater.exe ': 해당 파일이나 디렉토리가 없습니다. 프로세스 정보를 사용하여 "모노"와 "오픈"을 시작하려고했습니다. 동일한 오류가 발생합니다. – Hrcak

0

미안 해요, 난 내 코드를 테스트하지 않았다. 이제는 작은 프로젝트를 수행하고 테스트했습니다. 레이블과 버튼이있는 양식입니다. 잘 작동합니다. 올바른 경로를 얻었고 HelloWorld App이 시작되고 CmdLineArg가 처리됩니다. 여기에 핵심 내용은 온다 :

private void DoIt() { string sAppPath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo(); psi.FileName = "mono"; psi.Arguments = sAppPath + @"/HelloWorld.exe CmdLineArg"; System.Diagnostics.Process.Start(psi); }

관련 문제