views:

167

answers:

6

We have a desktop application run on a few thousand client computers. We want to move from framework 2.0 to 3.5, but are concerned with the impact on clients. I understand that 3.0 and 3.5 are additions to the framework, and that they install service packs to 2.0; what I want to know specifically:

  1. When a client upgrades to the latest version (forced upgrade) and they only have framework 2.0 or 3.0, will Windows go and grab 3.5 invisibly in the background?
  2. If not, can we make this part of the installer or is it only available via Windows Update? (Edit: We use MSI.)
  3. If there is no way to make the process invisible to the user, is there a site that provides step-by-step instructions?
  4. If a customer is on a box where they don't have rights to update the framework, is there anything that can be done to make the app still work correctly?
+1  A: 

If you are using MSI installer for your application, it will attempt to install 3.5 for them.

If you are not using MSI, tell them to go here: http://www.microsoft.com/downloads/details.aspx?FamilyId=333325FD-AE52-4E35-B531-508D977D32A6&displaylang=en

Then download and install.

If they don't have administrator access, they will need one.

Aequitarum Custos
You have to manually update the installer to depend on 3.5.
Robert Gowland
+1  A: 

Depends how it's installed. If you are deploying via OneClick, then yes, it will happen automatically.

Otherwise, yes, it should be possible to use the redistributable package to install it.

Matthew Scharley
Are you sure about that? I'm not saying you are wrong, but I had real problems moving from 2.0 to 3.0 click once apps. It seemed that the framework setup was only being run for new installs of our app, not existing ones that were getting upgraded. Perhaps there is some setting to have clickonce re check the pre reqs during an update? In the end I just had everyone remove and re-install it. It was only an internal app so it had a restricted and known user base.
Simon P Stevens
Really? The way I understand it, it shouldn't have problems. I've introduced new dependancies without issue before, I don't see why changing the framework should be different.
Matthew Scharley
+1  A: 

1) Not invisibly.

2) With any installer you can set prerequisites.

4) IMO user need administrator rights to install framework.

Also you can embed .Net 3.5 Client Profile into you installation.

Also you can spread necessary .Net 3.5 .dll files with your application.

Edit: Also you can embed .Net 3.5 Client Profile bootstrapper into your installation. It is only 2.8MB. See here.

Vasiliy Borovyak
+2  A: 

In all likelihood, your client's machines are already updated to .NET 3.5 SP1. Windows Update automatically updates any machine with .NET 2.0 through 3.5. If that didn't happen then your client's IT staff is blocking updates. In which case you should leave it up to them to deploy it, you can't reasonably deploy updates yourself that the IT staff intentionally blocked.

More background info in this blog post.

Hans Passant
We actually found about only a 55% adoption rate for 3.5 in our customer base (using the user agent string of visitors to our web app as the source of data). This likely has little to do with IT staff blocking updates since the users of our desktop app run it on their own PCs.
Robert Gowland
A: 
  1. How large of a deployment is this? It might be better to execute the deployment of .net 3.5 as a previous enterprise deployment. And then follow up with your application. For enterprise wide deployments there are tools like Zenworks, and others that deploy applications and other file sets "invisibly" to the user.

  2. Have you confirmed that your application will not function with .net 2.0?

  3. If your application is only files, and does not have registry settings, etc. you may be able to copy the files to the users' computers, and copy a shortcut to their desktop, or startmenu certainly without their intervention, and probably with out their knowledge. If you have admin level credentials that apply to all your PCs and can get a list of all you r PCs' network names, you could "push" the files out through the C$ share, or if they log in to a domain you can have them "pull" them via a login-script.

There are actually lots of ways to do this. If you have server admins, they can help you with this.

Ken Lange
+1  A: 

Just a few bits of info I picked up reading through all these great answers, the links provided and the ideas those sparked:

  • Only about 55% of the boxes that access our web site that report .NET Framework versions in their user agent string have 3.5. I was unable to determine when Microsoft will be pushing 3.5 with Windows Update (some say they've been doing for a year, some say they're starting soon).
  • MSI apparently will auto install the right .NET framework. It lists .NET Framework in the installer as a dependency under the installers. EDIT: We had to update the installer project to specifically target 3.5. EDIT: Users must run the generated Setup.exe and not just the .msi file if you want the dependencies checked.
  • For those not using MSI... One can't distribute .NET framework without a licensed copy of .NET Framework SDK (see http://msdn.microsoft.com/en-us/library/ms994395.aspx). However, one can distribute an installer (http://msdn.microsoft.com/en-us/library/cc160716.aspx).
Robert Gowland