We have kind of a special deployment scenario and are not sure we can get our head around how ClickOnce may or may not help us. Here's the setup

An application needs to be deployed to clients on different network, that is not all clients are able to see a single unique deployment server. This means a number of different deployment servers on the different networks will be delivering (potentially different versions of) the application. This will work great for the users on the network since the individual deployment server can be updated seperately with the desired version of the application.

But unfortunately there are a large user group that "roams" between the networks. As far as we can understand they will, once a ClickOnce application is installed from a specific deployment server, be checking updates from this server (which is embedded in the installed manifest). But a roaming user is probably not connected to the original deployment server all the time and will therefore not be able to update against another server (or is there a loophole anywhere so it can check updates against another server ).

But what happens if the roaming user tries to install from the local deployment server (which is not his "original" deployment server). It is logically speaking the same application, has the same assembly identity and public key token but perhaps not the same version so does it install it as a new ClickOnce app, does it upgrade or downgrade the existing app, does it fail (since it may recognize the app but from another server) or is it something entirely different

We've tried to reproduce the scenario and it seems that only one app gets presented to the user, the one which was "installed" last. Installing from a new server seems to make the application be downloaded from this new location regardless of version and replace the existing. But is this really the case or is something different going on and what exactly determines the logic behind this.

Any help in digging into this problem and highlighting what is going on would be much appreciated.

Re: ClickOnce and Setup & Deployment Projects Deploying ClickOnce from multiple deployment servers



did you succeed in finding a reasonable solution for this issue i'm currently having the same need. any hint would be really appreciated.

Re: ClickOnce and Setup & Deployment Projects Deploying ClickOnce from multiple deployment servers


No I did not.

Presented the problem for our customers and they decided to use ClickOnce on a central server and force local users to be connected up against this central server for deployment and upgrades (and allowing initial installations from CDs)

I was initially looking for hints as well or someone telling me how to "extend" ClickOnce to provide a custom solution. Would it not have been cool if the ClickOnce technology was constructed from buildingblocks and you could decide which blocks to use (upgrade against servers, assembly signatures) and which to override and implement yourself (hard coupling to a specific server, allowing the upgrade to happen against a number of servers, while still using the assembly verification and versioning).


Re: ClickOnce and Setup & Deployment Projects Deploying ClickOnce from multiple deployment servers


thanks for reply.

I think ClickOnce is a good solution yet incomplete and, under some pov, insufficient (not-for-all-users-installations, one-deployment-server and so on).

ClickOnce in VS2008 currently in beta2 promises to leverage some limitations, for example distribute to several websites and to multi-users; not sure, i'm reviewing specs.

At present, with VS2K5 it seems doesnt exist an easy solution to use ClickOnce when you want to deploy to multi servers.

Of course we can think of mixing DFS, NLB, mage, msbuild etcetera etcetera etcetera, but it looks like MS is not providing an official solution 'packaged' for customers.

Re: ClickOnce and Setup & Deployment Projects Deploying ClickOnce from multiple deployment servers

Kunal Mahajan

This is an issue where ClickOnce team is currently working. VS2008 has some changes related to this issue. I will explain VS2005 ( .net 2.0 and .net 3.0) behavior.

1. If user installs application from location A, and activates application deployment URL from location B

Trust settings will reset and user will have to go through trust prompts if necessary. Local user data will be lost. New shell exposure will be added with a new shortcut and "Add and Remove Program" entry. -1 suffix will be added to the new name. Application will execute. User will not have option to rollback to earlier version.

2. If user installs application from location A, launches application by clicking on shortcut. ClickOnce checks sever for update and discovers an update with a new deployment provider URL in the deployment manifest pointing to location B. Clickonce will swtch to the new location and try to update from the new location B.

No new trust prompt is displayed. However, local user data will be lost. Rest of the behavior will be exactly same as URL activation scenario explained earlier.

Re: ClickOnce and Setup & Deployment Projects Deploying ClickOnce from multiple deployment servers


i know.

The best scenario for me would be to have a sort of 'application launcher' coded inside the application itself or better

coded directly by ClickOnce publishing phase. This 'launcher' should take care to identify the subnet the user is in

(using its IP) then calculating with some logic the nearest deployment server and finally launch the application update

as usual. This way roaming users should not complain for possible long update times when connected in remote offices.

To accomplish what describedabove, however, ClickOnce should be aware of URL provider (at least).

As of today, VS2K5 is not able to manage such this scenario.