ClickOnce运行时DFSVC.EXE

时间:2012-11-09 16:44:12

标签: .net clickonce

有人可以详细说明或指出一些有关DFSVC.EXE在ClickOnce应用程序的执行周期中扮演什么角色的信息吗?如果我通过以下方式启动ClickOnce应用程序:

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

我看到DFSVC.EXE进程已启动。然后我看到我的ClickOnce应用程序的实际EXE进程被调用(由DFSVC.EXE,它被列为ProcessExplorer中的父进程)。此时,我可以通过:

杀死DFSVC.EXE
rundll32.exe dfshim.dll,KillService

我的ClickOnce应用程序继续运行。我也注意到如果我不杀死DFSVC.EXE,它将在大约15分钟后自行消失。

我怀疑DFSVC.EXE负责下载,安装和启动应用程序 - 这是正确的吗?有没有办法告诉DFSVC.EXE在调用ClickOnce应用程序完成这些任务后自动关闭?它是否持久化(即使在关闭ClickOnce应用程序之后)是为了下次调用ClickOnce应用程序的优化?

1 个答案:

答案 0 :(得分:4)

DFSVC.EXE检查应用程序是否已安装且是最新的(如果已配置),如果需要,将应用程序下载到用户AppData中的ClickOnce文件夹,然后从其当前位置启动它(每次更新都会发生变化)。它还必须删除之后可能在后台执行的应用程序的先前版本。