Время выполнения ClickOnce DFSVC.EXE

Может ли кто-нибудь детализировать или указать мне какую-либо информацию о том, какую роль играет DFSVC.EXE в цикле выполнения приложения ClickOnce? Если я запустил приложение ClickOnce через:

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

Я вижу, что запущен процесс DFSVC.EXE. Затем я вижу, что фактический процесс EXE моего приложения ClickOnce вызывается (через DFSVC.EXE, который указан как родительский процесс в ProcessExplorer). На данный момент я могу убить DFSVC.EXE с помощью:

rundll32.exe dfshim.dll,KillService

и мое приложение ClickOnce продолжает работать. Я также заметил, что если я не уничтожу DFSVC.EXE, он исчезнет сам по себе примерно через 15 минут.

Я подозреваю, что DFSVC.EXE отвечает за загрузку, установку и запуск приложения - это правильно? Есть ли способ сообщить DFSVC.EXE о завершении работы после завершения этих задач для вызванного приложения ClickOnce? Причина в том, что она сохраняется (даже после закрытия приложения ClickOnce) оптимизация для следующего вызова приложения ClickOnce?

Ответ 1

DFSVC.EXE проверяет, установлено ли приложение и обновлено (если это настроено), при необходимости загружает приложение в папку ClickOnce в AppData Users, а затем запускает из него текущие местоположения (которые меняются при каждом обновлении). Он также должен удалить предыдущую версию приложения, которую она могла бы сделать в фоновом режиме впоследствии.