Mamy aplikację .NET, którą rozprowadzamy dla naszych użytkowników za pośrednictwem pakietu instalacyjnego MSI. Mamy aplikacje C++, które są uruchamiane każdego ranka, aby sprawdzić, czy kopia aplikacji użytkownika jest nieaktualna, a jeśli tak, ściągamy nowy MSI i instalujemy go. Jeśli aplikacja jest uruchomiona, musimy ją usunąć, abyśmy mogli przeprowadzić aktualizację.System Windows wydaje się tracić dostęp do aplikacji .NET
Naszym problemem jest to, że co jakiś czas wygląda na to, że Windows "traci" naszą aplikację. Nie będzie raportować, że proces jest uruchomiony - choć tak jest. Umożliwi nam to zastąpienie, a nawet usunięcie pliku wykonywalnego w użyciu bez likwidowania aplikacji.
Może to coś powszechnego - ale nie wiemy, co się dzieje! Czy ktokolwiek ma wgląd w tę sytuację?
Wygląda na to, że tworzona jest tymczasowa kopia naszej aplikacji, a program jest od tego pobierany. Ale jeśli tak jest, dlaczego to się nie dzieje przez cały czas?
EDYTOWANIE: W naszym programie Używamy funkcji "EnumProcesses" z zestawu Platform SDK, PSAPI.dll, aby wyliczyć wszystkie uruchomione procesy.
Czego używasz do wykrycia, czy aplikacja działa? –
Mówi, że nie działa * i * pozwala na nadpisanie plików wykonywalnych? Oto proste wytłumaczenie: nie działa. –
Nie wiesz, co robi twoja aplikacja, ale na pewno brzmi jak ClickOnce byłby czystszym rozwiązaniem. – Walter