개발 한 플랫폼에 대해 외부 업데이터 응용 프로그램을 시작하려고합니다. 이 업데이트 프로그램을 시작하려는 이유는 플랫폼의 업데이트 및 라이센스 구성을 처리하는 구성 유틸리티가 업데이트가 배포 될 폴더의 다른 어셈블리와 종속성을 공유했기 때문입니다. 따라서 업데이트를 배포 할 때 구성 유틸리티의 이름을 바꾸고 덮어 쓸 수는 있지만 의존하는 DLL의 이름을 바꾸거나 덮어 쓸 수는 없습니다. 따라서 외부 업데이터 응용 프로그램.부모 프로세스보다 오래 걸리는 프로세스를 만드는 방법
구성 유틸리티에서 모든 업데이트 수집 논리를 처리 한 다음 업데이터를 시작하여 실제 파일 복사/덮어 쓰기 작업을 처리하려고합니다. 분명히 사용중인 파일 때문에 업데이트 유틸리티가 시작된 직후에 구성 유틸리티를 종료해야합니다.
내가 가지고있는 문제는 내가 업데이터를 시작하는 표준 Process.Start 메서드를 사용하고 있으며 구성 유틸리티가 종료되자 마자 업데이터 프로세스도 종료된다는 것입니다.
부모 프로세스를 초과하는 프로세스를 만들거나 프로세스를 시작할 수있는 외부 응용 프로그램을 시작할 수있는 방법이 있습니까?
는 편집 :
분명히, 내 업데이터 응용 프로그램에서, 나는에 전달되는 명령 행 인수의 수를 잘못 계산. 이 때문에 업데이트 프로그램이 즉시 종료됩니다. 나는 이것을 발언자 응용 프로그램이 실제로 "자식"프로세스를 죽이고 있다고 잘못 해석했습니다.
아래 답변이 정확합니다.
필자는 일종의 역으로 생각하고 있지만, 전체 작업이 구성 유틸리티와 응용 프로그램 모두를 관리하는 프로세스인지 확인할 수 있습니까? 그렇게하면 응용 프로그램과 구성 유틸리티 (필요할 경우)를 모두 업데이트 할 수 있으며 부모 프로세스가 부모 프로세스와 항상 함께 실행되므로 걱정할 필요가 없습니다. –
업데이터 코드에서 바로 종료하도록 한 버그가 있습니다. 나는 이것을 "시작하는"과정에서 나온 것이라고 생각했다. 그에 따라 메시지를 업데이트했습니다. 어리석은 실수를 저지르기위한 자기 처벌로서 부정적인 담당자를 내줄 수있는 방법이 있습니까? –
C#/Mono/* nix가 아니라 C#/.net/Win32를 사용한다고 가정 할 수 있습니까? Process가 모든 환경에서 동일하게 작동하는지 여부는 알 수 없습니다. – quillbreaker