13

有人可以详细说明或指出一些有关 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 应用程序的下一次调用的优化?

4

1 回答 1

6

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

于 2014-04-06T09:55:05.893 回答