redistributing .net 3.5


Andy Fish


I have a .Net application and I want to upgrade it from .Net 2.0 to
3.5, but I am only using a tiny selection of the 3.5 features.

From what I understand, 3.5 consists of basically the same framework/
CLR as 2.0 but with additional DLLs

Is it possible from (a) a technical perspective and (b) a legal
perspective to simply ship the additional .net 3.5 assemblies I need
in my application's bin directory and leave the user on .Net 2.0,
rather than forcing each user to download 200mb of .Net
redistributable before they can upgrade?

My application has both client and server parts. I don't mind about
having to upgrade the servers, but having to install .Net 3.5 on each
client workstation would be a PITA


Alex Clark


As far as I know, no you cannot do it this way. The PITA from having each
client download .NET 3.5 is nothing compared to what you'd go through to try
and achieve what you're attempting, if it's even possible, and I suspect it
isn't. .NET 3.5 also relies on SP1 of 2.0 being installed (I believe),
which means some 2.0 DLLs may be different if your client machine hasn't
been patched.

You would likely find it a problem to determine *every* dependent library,
which is not only the framework DLLs that your app references, but any DLLs
that *they* reference and so on. You may find yourself including 100MB of
DLLs anyway, and when you get to 100MB... why not just do the 200MB install?

This is all assuming that the framework will even allow you to xcopy-deploy
core libraries that were intended to be installed into the GAC. Subsequent
problems could then arise if the client machine is upgraded to 3.5 *after*
you've done this - which DLLs is your app using, the correctly installed
set, or the ones that are loose in your app's directory?

My advice would be to bite the bullet and configure a Setup project. If
your client machines have a fair internet connection (anything better than
dialup) then it really shouldn't be an issue for you or for them to just do
a one-time install.

Hope that helps,

Kornél Pál

Mono assemblies are licensed under MIT/X11 that is very permissive. I
don't know what exact functionality you need but if it's implemented in
Mono you even could have your own stripped down version of the assembly
you need.

Mono assemblies were reportedly used with success on Microsoft .NET
Compact Framework to supplement missing functionality of that.


Cowboy \(Gregory A. Beamer\)

The EULA will not allow distributing Framework components with an app, but
you can create bootstraps that can install the bits from Microsoft. This may
not be the answer you are looking for, but it is the legal way.

Gregory A. Beamer


| Think outside the box! |

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question