02nd Apr 2010
ClickOnce Installation for Multiple Users
An interesting question came up in one of the internal mailing lists at work about ClickOnce. The person who asked the question had the following scenario for his ClickOnce application.
The application runs in a call center. Assume there are 100 users and 100 computers. Any user can use any machine on a given day. Assuming everyone uses a different machine each day for 100 days then each day they will have to install the application on the machine they are using and by the 100th day each machine will have 100 installations of the app. Clearly not a desirable situation.
How do we go about solving this ?
The quick answer is that you cannot solve it using ClickOnce in a straightforward manner. The reason ? ClickOnce installations are always per user. It is by design and not a side effect or even a configurable option. When you install a ClickOnce application it goes into C:\Users\<User>\AppData\Local\Apps\2.0\<Blah>. Here <Blah> is a set of folders with names that doesn’t make much sense. For example, here is an actual example of the full path to a ClickOnce installation – C:\Users\<User>\AppData\Local\Apps\2.0\8Y7PD2RC.9VE\L1OL139M.4W2. These names would be different on different machines. This makes it very hard to find the location of the installation, so we cannot share the installation between users (assuming that other users have access to this folder). Other users would not get desktop shortcuts and Start->Programs shortcuts. Also AppData is a hidden folder which makes it even harder to find for non-technical users.
So what do we do ?
For the specific scenario here, ClickOnce does not fit the bill as the deployment strategy. MSI is a better choice. XCopy might also work depending on the application requirements.
An interesting question came up in one of the internal mailing lists at work about ClickOnce. The person who asked the question had the following scenario for his ClickOnce application.
The application runs in a call center. Assume there are 100 users and 100 computers. Any user can use any machine on a given day. Assuming everyone uses a different machine each day for 100 days then each day they will have to install the application on the machine they are using and by the 100th day each machine will have 100 installations of the app. Clearly not a desirable situation.
How do we go about solving this ?
The quick answer is that you cannot solve it using ClickOnce in a straightforward manner. The reason ? ClickOnce installations are always per user. It is by design and not a side effect or even a configurable option. When you install a ClickOnce application it goes into C:\Users\<User>\AppData\Local\Apps\2.0\<Blah>. Here <Blah> is a set of folders with names that doesn’t make much sense. For example, here is an actual example of the full path to a ClickOnce installation – C:\Users\<User>\AppData\Local\Apps\2.0\8Y7PD2RC.9VE\L1OL139M.4W2. These names would be different on different machines. This makes it very hard to find the location of the installation, so we cannot share the installation between users (assuming that other users have access to this folder). Other users would not get desktop shortcuts and Start->Programs shortcuts. Also AppData is a hidden folder which makes it even harder to find for non-technical users.
So what do we do ?
For the specific scenario here, ClickOnce does not fit the bill as the deployment strategy. MSI is a better choice. XCopy might also work depending on the application requirements.
Posted by pc under
Technical
No Comments »
