I have very little experience with licensing issues. Let's say I'm developing an application for .NET 2.0. Is it OK to use (and distribute) some .NET 3.5 DLL's with my application?
For example, could I just copy "System.Core.dll" in my setup to the client's machine? Or could I even just extract some class (e.g. using Reflector), put its source code in one of my projects, and use it as-is?
I'm not sure whether using Reflector to do this would be legally OK, but what difference would it make from downloading the same class from <a href="http://referencesource.microsoft.com/" rel="nofollow">Microsoft's Reference Source Server</a>?
In any case, I guess I am just <em>using</em> the class, which is what the framework actually provides. Is there some misconception with my ideas?Answer1:
You definitely, <em>definitely</em> shouldn't start redistributing DLLs from one framework version to another.
For one thing it may well be illegal (even or possibly <em>especially</em> using Reflector to extract source) - but more importantly, you've then got a bit of code which was designed and written for one version of the framework running against another. Who knows if they've relied on a bugfix in mscorlib which was only implemented in .NET 3.5?
If you want LINQ to Objects in .NET 2.0, <a href="http://www.albahari.com/nutshell/linqbridge.aspx" rel="nofollow">LINQBridge</a> is your friend. For other issues, I would strongly recommend looking for a third party implementation or upgrading the version of the framework on the deployment machine.Answer2:
I'm sure that you idea absolutely illegal for Microsoft license on .NETAnswer3:
Why would you need to distribute those dll's? You need an installation of the .Net framework on your client's machine anyway. That should include all relevant Microsoft dll's.
AFAIK a .Net ap can not be run on a machine without the framework, so you need it anyway.
<strong>Edit</strong> I just had a look at the <a href="http://msdn.microsoft.com/en-us/library/ms994344.aspx" rel="nofollow">.NET Framework 1.1 Redistributable EULA</a> (could not find the one for 3.0 in Google). It does not specificly allow what you are proposing, so my guess is that you may not do it.
p.s.: IANAL ;-)