ClickOnce runtime DFSVC.EXE

Can someone either detail or point me to some information on what role exactly the DFSVC.EXE plays in the execution cycle of a ClickOnce application? If I launch a ClickOnce application via:

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

I see that a DFSVC.EXE process is started. I then see that the actual EXE process of my ClickOnce application is invoked (by DFSVC.EXE, which is listed as the parent process in ProcessExplorer). At this point in time, I can kill the DFSVC.EXE via:

rundll32.exe dfshim.dll,KillService

and my ClickOnce application continues to run. I also noticed that if I do not kill the DFSVC.EXE, it will go away on its own after about 15 minutes.

I suspect that DFSVC.EXE is responsible for downloading, installing and launching the application — is this correct? Is there any way to tell DFSVC.EXE to shutdown automatically after these tasks are complete for an invoked ClickOnce application? Is the reason it is persisting (even after the ClickOnce application is shut down) an optimization for the next invocation of a ClickOnce application?

Leave a Comment