2012-11-09 61 views
10

某人可以详细说明或指向某个信息,说明DFSVC.EXE在ClickOnce应用程序的执行周期中的确切角色?如果我通过以下方式启动ClickOnce应用程序:ClickOnce运行时DFSVC.EXE

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是负责下载,安装和启动应用程序 - 这是正确的吗?完成调用的ClickOnce应用程序的这些任务后,是否有任何方法可以告诉DFSVC.EXE自动关闭?它是否继续存在(即使在ClickOnce应用程序关闭后)针对下次调用ClickOnce应用程序的优化的原因?如果

+3

简答:我相信你所有的猜测都是正确的。如果您在Fiddler中观看,您会发现DFSVC执行版本检查/清单下载,并且这是一种非常常见的模式,可将这些服务作为性能优化保持一段时间。 – EricLaw

回答

4

DFSVC.EXE检查应用程序已经安装并及时更新(如果配置的话),如果需要下载的用户应用程序数据的应用程序的ClickOnce文件夹,然后启动它,从它的当前位置(其中每次更新的变化)。它还必须删除之前可能在后台执行的应用程序的先前版本。

相关问题