index > ClickOnce and Setup & Deployment Projects > Deployment options

Deployment options

I have not been able to try out Whidbey's ClickOnce deployment yet, but reading through the documentation I could find, I still have a few questions.  These questions come from what we had to do to get the Updater Application Block to work for our situation.

In some corporate environments, there are ten-thousand desktops using a server or mainframe for a backend.  Development for the desktop and the mainframe occur simultaneously, but may not go into production at the same time.  The code for the desktops and mainframe need to go live on the same date.  If the desktop code is available before that date, it seems reasonable to have the desktops download the new version before the live date and just not start it until that time.  Will the new ClickOnce offer this feature?  If not, will there be a way to for developers to extend ClickOnce?

Second, is there a way to split users into groups.  Some companies prefer split their users into groups and have them update at different times, usually with a group acting as beta testers with other groups following at certain time periods.  I understand that this can be accomplished by specifying a different manifest for each group, but this would also require that the groups be created in advance changes in the groups would require a change at individual workstations to point them to the new group.

Third, it appears that ClickOnce will allow you to just download files that have changed, unlike the UAB.  How does it determine that a file has changed?  Does it go by the version number in assemblies?  What does it do for files that are not assemblies (ex - XML files, config files, etc. ).  Is there a way to force a download of application files even if the version numbers have not changed, if version numbers are used?

Fourth, does ClickOnce depend on BITS?  Is there a way to specify that a straight HTML downloader be used for check upon application startup but use BITS for downloading in the background during application runtime if an update appears later?

Any answers you can supply would be most appreciated.

WinFormsUser
Hi Minton.  Some good quesitons.   Answer below:

1) Download but don't activate is unfortunately not directly supported.    If your super determined there are ways to partially achieve this... but it's a bit messy.   This is really part of the background download feature we don't have yet.  See #4.

2) There are several ways to accomplish the user segmentation.   One is different deployment manifests (you can have the web page render the link to the right one based on who the user is).    You can tie this with the System.Deployment APIs.   With these apis you can do your own update checks... perhaps calling a web service to ask if an update is available for this user.  If so, just call our system.deployment api & we'll do the udpate.   

3) ClickOnce uses file hashes to detect changes.   You can have xml, config, etc.. files in your app.   When they change, ClickOnce will download them.

4) CLickOnce does not use BITS for the simple reason that BITS is not suppoted on my .NET Framework supported platforms.   You can use the System.Deployment APIs to control when an app checks for updates, but there is no native background trickle download support in Whidbey.   In Longhorn there will be.
WinFormsUser
Thank you for the quick response.  I am trying make sure that we can switch to ClickOnce deployment when it is available instead of continuing with our own version of the Updater Application Block in which we have implemented the extra features I mentioned above, so your response are very helpful.  I have some followup questions, however.

1)  Is it possible that Using hashes to detect changes might be problematic?  If the build number is included as part of the version number, the hash of the assembly will change even if the actual version number does not, so the assembly will always be downloaded.

2)  Will there be command line versions of the deployment utilities?  Our developers will never be deploying anything themselves.

3)  If we are unable to do everything we need with ClickOnce, will there be a way to extend it?
WinFormsUser

1) Great question.  I'll check & get back.   If it does, you could always use the original files...  but clearly that's not ideal in terms of an automated process.

2) Yes, you will have two cmd line options.  a tool called mage.exe (manifest generator & editory... also has a UI version) in the .NET SDK & you can use the msbuild tasks that VS uses to do it's manifest generation at the cmd line.

3) It depends, I can't promise you can extend ClickOnce to do anything.   The main set of extensiblity for ClickOnce is the system.deployment apis & the fact that it's just using HTTP, so you can do a lot of interesting things on what the server sends back to ClickOnce.    I've talked with quite a number of customers that wanted to do something not quite in the scope of what clickonce directly supports & we were able to find ways they could accomplish what they need to do using one of those mechanisms.
WinFormsUser
reply 4

You can use google to search for other answers

 

More Articles

• Launch Simple Managed EXE After Install.
• ClickOnce - Update from a Mapped Drive
• ClickOnce localization
• Dynamic creation of an SQL Server database
• package for multiple applications
• Vb.net with MS-access database
• Using a non IIS web server
• Removing optional groups between versions
• How to specify WSE in the prerequisite components?
• problem downloading winfx as prerequisite
Bookmark and Share
Welcome to Bokebb   New Update  
 

New Articles

• install desktop icon conditionlly
• ClickOnce installation error
• security grant vanishes when control is
• Deployment Projects include .net framework
• Exception when rising event to javascrip
• Setup Project in VisualStudio.NET(2003)
• problem width msimsp.exe tools
• ActiveX control e88121a3-9fa9-11cf-9d9f-
• System Update Required
• ClickOnce Error Message
• ClickOnce Fails to Install (DFSVC Proble
• Aoolication Icon
• ClickOnce application StartupPath
• Clear understanding of the license polic
• Connection error when application deploy

Hot Articles

• IE not recognising .NET dlls?
• File Download - Security Warning??
• ClickOnce Samples and Questions
• Rich HTML edit control hosted in a WinFo
• Building deployment project causes SQL S
• ClickOnce Failing on one machine after w
• Specifying DefaultLocation property if n
• Tutorial loader UI/Code
• How to step into Costom Action
• ClickOnce - No execution of application
• Passing command line arguments to setup
• how to create desktop shortcut automatic
• Install files to user's local applicatio
• Remoting from Embedded Control
• ClickOnce deployment for a .Net Word Add

Recommend Articles

• projectname.application page cannot be f
• One Touch Deployment
• How to Access varaibles in JavaScript fr
• Where Do MSI maintain the Install Location
• Question Regarding ClickOnce Security Se
• xxx not a valid Win32 application
• Change configuration setting after it is
• Multiple executables delivered through 1
• vb.net application using Crystal reports
• Deployment of windows Application on win
• installing windowsInstaller
• Shipping higher ASCII characters in MSI
• Launch Simple Managed EXE After Install.
• Launching application after install
• Setup project & Shortcut to startup