2012-11-09 12 views
10

Kann mir jemand Details zu der Rolle, die die DFSVC.EXE gerade im Ausführungszyklus einer ClickOnce-Anwendung spielt, näher erläutern oder aufzeigen? Wenn ich eine Clickonce-Anwendung starten über:ClickOnce-Laufzeitumgebung DFSVC.EXE

rundll32.exe dfshim.dll,ShOpenVerbApplication http://www.domain.com/application/?param1=foo 

Ich sehe, dass ein DFSVC.EXE Prozess gestartet wird. Ich sehe dann, dass der tatsächliche EXE-Prozess meiner ClickOnce-Anwendung aufgerufen wird (von DFSVC.EXE, das als den übergeordneten Prozess in ProcessExplorer aufgelistet wird). Zu diesem Zeitpunkt kann ich die DFSVC.EXE über töten:

rundll32.exe dfshim.dll,KillService 

und meine Clickonce-Anwendung läuft weiter. Ich habe auch bemerkt, dass wenn ich das DFSVC.EXE nicht töte, es nach 15 Minuten von alleine verschwindet.

Ich vermute, dass DFSVC.EXE ist verantwortlich für das Herunterladen, Installieren und Starten der Anwendung - ist das korrekt? Gibt es eine Möglichkeit, zu sagen, dass DFSVC.EXE automatisch heruntergefahren wird, nachdem diese Aufgaben für eine aufgerufene ClickOnce-Anwendung abgeschlossen sind? Ist der Grund dafür, dass es (auch nachdem die ClickOnce-Anwendung heruntergefahren wurde) eine Optimierung für den nächsten Aufruf einer ClickOnce-Anwendung ist?

+3

Kurze Antwort: Ich glaube, dass alle Ihre Vermutungen richtig sind. Wenn Sie in Fiddler zusehen, sehen Sie, dass DFSVC den Versions-Check/Manifest-Download durchführt, und es ist ein sehr gebräuchliches Muster, diese Art von Diensten für eine gewisse Zeit als eine Perf-Optimierung zu behalten. – EricLaw

Antwort

4

DFSVC.EXE prüft, ob die Anwendung bereits installiert und auf dem neuesten Stand ist (falls konfiguriert), lädt die Anwendung bei Bedarf in ClickOnce-Ordner in Benutzer-AppData und startet sie dann von ihren aktuellen Speicherorten aus (was sich bei jedem Update ändert). Es muss auch die vorherige Version der Anwendung löschen, die es möglicherweise später im Hintergrund tun könnte.

Verwandte Themen