우리는 MSI 설치 프로그램 패키지를 통해 사용자에게 배포하는 .NET 응용 프로그램을 보유하고 있습니다. 우리는 매일 아침마다 실행되는 C++ 응용 프로그램을 통해 사용자의 응용 프로그램 사본이 최신 버전인지 여부를 확인합니다. 그렇다면 새 MSI를 풀고 설치합니다. 응용 프로그램이 실행중인 경우 업데이트를 수행 할 수 있도록 응용 프로그램을 종료해야합니다.Windows에서 .NET 응용 프로그램을 추적하지 못하는 것 같습니다.
우리의 문제는 모든 창문이 우리의 응용 프로그램을 "잃어 버리는"것처럼 보일 때가 있다는 것입니다. 프로세스가 실행 중임을보고하지 않습니다. 응용 프로그램을 중단하지 않고 사용중인 실행 파일을 덮어 쓰거나 심지어 삭제할 수도 있습니다.
어쩌면 이것은 일반적 일 수 있습니다. 그러나 우리는 무슨 일이 일어나는지 알 수 없습니다! 누구든지이 상황에 대한 통찰력을 가지고 있습니까?
우리 응용 프로그램의 임시 복사본이 만들어지고있는 것처럼 보입니다. 프로그램이 실행되고 있습니다. 그러나 그렇다면 왜 항상 그런 일이 발생하지 않습니까?
EDIT : 우리 프로그램에서는 플랫폼 SDK의 "EnumProcesses"기능 (PSAPI.dll)을 사용하여 실행중인 프로세스를 모두 열거합니다.
응용 프로그램이 실행되고 있는지 감지하기 위해 당신은 무엇을 사용합니까? –
실행되고 있지 않다는 것을 나타냅니다 * 및 *는 실행 파일을 덮어 쓸 수 있습니까? 거기에 대한 간단한 설명이 있습니다 : 그것은 실행되지 않습니다. –
앱이 무슨 일을하는지 모르지만 ClickOnce가 더 깨끗한 솔루션이라고 생각됩니다. – Walter