views:

67

answers:

4

Is there any utility that will copy the "official" build of a windows forms app from a central network share and launch it (from a client desktop)? I want to make sure users get the latest version when I update the binaries on the central network share.

ClickOnce is user un-friendly so I'm looking for something else...

+1  A: 

Is it possible you could revise your question to describe what it is you find unfriendly about ClickOnce? In my office we have found ClickOnce to be the most efficient and user-friendly way of updating and distributing applications desktop business apps that we have ever had. I'm wondering if the best way to resolve your question might be to address the issues you have with ClickOnce, rather than integrating/rolling another solution.

bouvard
A: 

Check out this one:

.NET Client Applications: .NET Application Updater Component

It is a white paper which discuses in detail on what it takes to make an application auto-updatable.

Vijesh VP
A: 

We have a tool that would do that, which has been in use before there was such a thing as Windows Update (or any other update.)

The problem with any sort of update of this fashion is the security level of the user. Many times you need to be administrator to perform certain functions.

Our solution is two part/one executable: 1. a service mode that runs local system or admin to perform such operations. 2. an executable which can be called by an app to fetch via UNC, HTTP, FTP the updates for an application and apply them.

The basic process is this: 1. Application checks its version number; we use a central database to list all applications and their version numbers. 2. If the application is a minor revision we give the user an opt out on the install; if it is a major revision we require an install. 3. Once the update is confirmed, we call the updater executable which in concert with its service mode product, retrieves the updates, installs them, and relaunches the application.

If you are interested, go to the website listed in my profile and send us a support request address to me and I will give you more details and the codebase if desired.

Bill
A: 

I've done this before by the following method:

1 - Keep the "official" build at a specific network location

2 - User launches program from their local machine

3 - At launch, program compares its' own file version # to the one on the server.

4 - If the two versions are different, copy the new version down from the server and relaunch.

Pretty simple, and it works as long as you are in an intranet environment.

Step 4 is the only tricky part. You can't replace a file while it's in use, so you have to either

1 - first rename the current (in-use) file and then copy down the new one. Since you will be updating many times, you'll also want to delete any existing renamed copies that are hanging around.

or

2 - Have the user launch a "helper" application that does the version check, updates if necessary, and then launches the real app. Of course then you have to deal with updating the helper app.

JosephStyons