views:

633

answers:

4

I work on a project consisting of a server and a client application deployed via ClickOnce. The client is installed the first time an user clicks a http://...file.application link, and the interaction with the user during installation are minimal (just the standard ClickOnce install/don't install dialog box).

One of our client wants to be able to automate the installation of the client on the users' machines. Is there a way to install the ClickOnce application without any user interaction, in order to automate the deployment process ?

Does a software providing this kind of deployment exist ?

My problem comes from the fact I don't know how the ClickOnce deployment works under the hood (I don't even know if it is possible to run an ClickOnce installer from the command line...), and as clickonce application are not packaged at all like Windows Installer, I am not sure of anything.

Any information about this is welcome.

+1  A: 

You can build a standard msi installer and deploy it via Group Policy, but then updates are a little trickier. As a hybrid, you could be an msi installer (deployed via group policy) that just installs a shortcut to the correct clickonce address on the desktop.

Joel Coehoorn
+1  A: 

There are many third party solutions available for automated deployment. You can also create your own scripts but you need some way of invoking them. If your client's machines are configured to look for network located start up scripts then this would be an ideal method. Typically, automated deployments work with a standard deployment package, i.e. containing a setup.exe and required files, so this would probably be the best way to package your application.

ClickOnce is specifically designed for manual deployment by an end user and only confuses things when the goal is automated deployment. Obviously you can keep your ClickOnce deployment in place in case someone wants to install your app manually, but it will make things easier if you package it seperately for automated deployment.

AdamRalph
"ClickOnce is specifically designed for manual deployment by an end user and only confuses things when the goal is automated deployment."That's true, and i'm actually confused when thinking about this.If, like you suggest, i package the application differently for automated deployment, won't the application be registered differently than the ClickOnce deployed one ? It will be possible to have the same application installed twice isn't it ?
alfred barthand
that's true, the ClickOnce installation will exist independently of the automatically deployed application. However, if the published ClickOnce deployment is never older than the automatically deployed version then this shouldn't be an issue. So longs as a user launching a ClickOnce version doesn't get an older version than the automatically deployed package, it doesn't really matter that they are running a seperate installation.
AdamRalph
A: 

It's possible to automate it. The trick is the way the manifests are generated and signed.

Once an application manifest has been built and the deployed files are renamed, you have a set of files and folder that you can just copy to your install source.

Brett Veenstra
A: 

Check out this article: http://bloggingabout.net/blogs/dennis/archive/2007/11/05/manual-check-for-updates-with-clickonce.aspx

It describes how you can do it yourself, including an example.

Dennis van der Stelt