tags:

views:

159

answers:

5

I'm deploying an app to an unknown number of clients. It'll be 5-10 to start, couple dozen eventually. I'm thinking of making a different web folder for each client, so I can control updates and roll them out in a gradual manner.

Are there any major known issues with One-Click deployment? Am I going to commit suicide shortly after golive?

+3  A: 

We've been using ClickOnce here for the better part of 3, maybe 4 years, and have never experienced any major problem.

The only minor problem we experienced was with code signing in the Visual Studio 2005 version of ClickOnce - the app would fail to run if the CS certificate was changed, and we'd have to uninstall/reinstall. But that has been fixed since Visual Studio 2008, and I haven't noticed any other issues.

ClickOnce is fairly limited compared to MSI installers or other types of installers - you don't have an incredibly robust system of pre-install and post-install actions, registry keys, startup registration, etc., but that's to be expected since ClickOnce deployments are meant to be run in a low-privileged environment.

Aaronaught
Does the app absolutely have to be signed? What happens if I don't sign the app?
Yoenhofen
@Yoenhofen: It's not the app that needs to be signed, it's the ClickOnce package itself. That does need to be signed, see here: http://msdn.microsoft.com/en-us/library/ms172240(VS.80).aspx. If you don't have a "real" certificate than it generates a self-signed cert for you.
Aaronaught
You don't have to sign the package, but it's a huge security hole if you don't. It basically enables C/O to make sure nobody has tampered with or moved your deployment package. Another comment -- they fixed the cert problem in .NET 3.5 SP-1 and .NET 2.0 SP-1 if you are using automatic updates. If using programmatic, you will still have a problem. They have fixed all in .NET 4.0. Here's an article explaining: http://msdn.microsoft.com/en-us/library/ff369721.aspx
RobinDotNet
+4  A: 

For one thing, ClickOnce deployed applications must be installed for each user on a given workstation. There is no way to install for all users via ClickOnce. This is because ClickOnce deployed applications install under the user's profile folder, not under the "Program Files" folder.

JSR
Very helpful. Enjoy your upvote.
Yoenhofen
+1  A: 

I think what may drive you crazy in your model is keeping track of the possible couple dozen versions. ClickOnce isn't going to be your problem there.

Austin Salonen
Yeah, we may end up limiting that to just a few folders. Or create different virtual directories that point to the same file location. I just want to make sure I have options.
Yoenhofen
You can make it so you only have to keep track of one version; just update the minimum version on each successive deployment and force an update. ClickOnce actually makes this a lot easier than other tools. Although if he wants different versions/branches for each customer then I guess that's a separate issue.
Aaronaught
+1  A: 

There aren't any major issues with ClickOnce you need to worry about, it does its thing really well. However you will run into a number of challenges to make it work smoothly for multiple clients.

By 'client' I presume you mean 'customer'? And each customer has n users who will each install your app?

You and MAGE will need to become friends. Why? Ideally you want to create one published build (that has passed all tests on your build machine and has passed QA), from this build you want to create a separate deployment for each client. To do so requires changing, at the very least, the InstallUrl and UpdateUrl MsBuild values, because it is a different web dir for each client.

As soon as you make these changes ClickOnce will no longer install the app because one or more of the files have been modified. At this point you may use MAGE to regenerate the application manifest (e.g. myApp.exe.manifest) and THEN the deployment manifest (e.g. myApp.application). One issue I found with doing this was you need to change the "Application Files" directory to "ApplicationFiles".

We are in the process of doing exactly this, take one published build then create a couple of dozen 'deployments' of that build for separate sites, each of which has different configuration info such as web service urls.

It takes quite a bit of time to get it working properly and then more time to automate it...if I was to say one 'must do' it would be make sure you automate the process with batch files or a command line app...doesn't matter HOW you automate it just make sure it is.

Good luck!

wallismark
+1  A: 

We have thousands of customers all over the world and have been using ClickOnce deployment with great success for 2-1/2 years. The only issues we see are with firewalls and anti-virus software, and even that is fairly rare.

RobinDotNet