Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ClickOnce runtime DFSVC.EXE

Tags:

.net

clickonce

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?

like image 895
codechurn Avatar asked Nov 09 '12 16:11

codechurn


People also ask

What is Dfsvc EXE?

What is dfsvc.exe? The genuine dfsvc.exe file is a software component of Microsoft . NET Framework by Microsoft Corporation. "Dfsvc.exe" is the name of Microsoft's ClickOnce Launcher Engine, when it is in "C:\Windows\Microsoft.NET\Framework\v2.

What is ClickOnce deployment?

ClickOnce is a deployment technology that enables you to create self-updating Windows-based applications that can be installed and run with minimal user interaction.


1 Answers

DFSVC.EXE checks if the application is already installed and up to date (if configured so), if required downloads the application to ClickOnce Folder in Users AppData and then launches it from it's current locations (which changes with every update). It also has to delete the previous version of the application which it might possibly do in the background afterwards.

like image 159
Bohdan Avatar answered Sep 21 '22 20:09

Bohdan