ClickOnce运行时DFSVC.EXE

cod*_*urn 12 .net clickonce

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

rundll32.exe dfshim.dll,ShOpenVerbApplication http://www.domain.com/application/?param1=foo
Run Code Online (Sandbox Code Playgroud)

我看到DFSVC.EXE进程已启动.然后我看到我的ClickOnce应用程序的实际EXE进程被调用(由DFSVC.EXE,它被列为ProcessExplorer中的父进程).在这个时间点,我可以通过以下方式杀死DFSVC.EXE:

rundll32.exe dfshim.dll,KillService
Run Code Online (Sandbox Code Playgroud)

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

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

Boh*_*dan 5

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