tags:

views:

1851

answers:

5

I was wondering if there was a way (hacky will do) to allow a user to go back to a previous version of a ClickOnce network deployed application?

I've looked in the docs and API and there seems to be no way. You can selectively choose if you would like to update, but once updated there is, seemingly, no way back.

Any advice would be cool.

+2  A: 

You can go in Add/Remove application and select your application and choose to get the last installation instead.

Daok
Thanks Mate,I'll try that out in the morning!
Jan Bannister
A: 

If you look at your deplpyment location, you'll see every previous version, in a separate folder with the version number appended, as well as the deployment manifest, also with the version number appended. You can rename any one of them to be the current deployment, and the next time you update that application, it'll pull in the version you rolled-back to.

I'll expand on this tomorrow when I get back to work.

rjrapson
+1  A: 

ClickOnce will use whatever version you send them. If you send them an old version, they will rollback to that old version.

Back in May my buddy David wrote an article on how to do this on a per-user basis. We can literally have every user on a different version. The application even tells the database which version the user wants, so they could in theory change their version and then simply restart the application.

Fine Grained Versioning with ClickOnce

Jonathan Allen
Cheers, That looks like a nice approach!
Jan Bannister
+1  A: 

You can use MAGEUI to rollback to a previous manifest version on the server. Check this out.

Gulzar
+3  A: 

You can revert back to an older version on the Server Side by changing the server manifest file. When the client restarts the application, it will see that it has a different version than what the server says is the 'current' version and it will download the new one. This server manifeset file usually always points to the most recent version, but it doesn't have to.

Here's how to change it. (I published using Visual Studio 2008. Other versions might have a different publish folder structure.)

In the same folder as the publish.htm is an xml document called [appName].application. This is the server-side manifest file that the client uses to compare it's current version against. Contained in this document includes the 'current' version that the client should be running as well as the location on the server that the deployment files can be found.

In the same location as the publish.htm is also a folder called 'Application Files'. This folder contains subfolders for each of the previous publishes. Within each of these sub-folders is another xml document with the same name I mentioned above called [appName].application. Copy this file (from whatever folder that contains the version you want to revert back to) and paste it into the same folder as publish.htm (a couple levels up). When the client application restarts, it will appear just like a new version is available, download it, and run it. The client will now be running a previous version.

Jason Hornor
Thanks Jason, I ended up using just such and approach :)
Jan Bannister