.NET Automatic Deployment is a feature built into the .NET Framework, allowing applications to download assemblies (via HTTP) from remote locations on an as-needed basis.
Also you can use this tool named "launcher" for the purpose. When your user runs Launcher, everything happens automatically. Launcher prompts the user for downloading a newer version if one is available, downloads, unzips, and runs the app ..... link:
http://www.franklins.net/dotnet/
Cheers
