Is partial redistribution of VS 2005 DLLs allowed?

We're looking at migrating our applications from Visual C++ 6 to Visual Studio 2005.  We link in the MFC and the C-runtime DLLs.  Since users download our application over the Internet, we need to minimize the download size as much as possible.  We would need to redistribute the VS 2005 DLLs as applocal.

Does the license agreement for redistribution require that the entire contents of the Microsoft.VC80.CRT and Microsoft.VC80.MFC be redistributed if any of them are needed

Or would it be possible to just redistribute mfvcr80.dll and mfc80.dll and their manifests appropriately modified, since that's all we need at this point, and skip the other DLL's in those directories

Thanks!



Answer this question

Is partial redistribution of VS 2005 DLLs allowed?

  • rrao

    Thank you for that information!  That's what I was looking for.

    I did try to contact PSS by phone and email, but after taking down the information for my request, they never provided an answer.  Nor did they respond to my follow up requests.  That's OK, though - I was simply trying to make sure that what I wanted to do was in the realm of possibility.


  • Carlos

    My understanding is that the dlls can be distributed as an entire set. The setup project for example will do that for you.

    Thanks,
      Ayman Shoukry
      VC++ Team

  • JimRLoverOfJesus

    We can't distribute the setup.exe; its too large, and it won't work in the environment we're using.  I have to distribute the individual DLLs and their manifests as a part of the package.  The license agreement appears to allow this, and various posts talk about it, however, the legal documentation is not clear on what DLLs I can exclude.

    I very much appreciate your quick and consise answers.  Unfortunately, we're going to have to make a decision about migrating to VS 2005 and this issue is a big factor.  Is there someone in Microsoft's legal area that can answer this

    Thanks!
    James Spink


  • phunkie

    I would advise you to reasd the EULA. This should be on your machine with the VS installation. For example, I have the VC++ Express version at
     D:\Program Files\Microsoft Visual Studio 8\Microsoft Visual C++ 2005 Express Edition - ENU\eula.1033.txt on my machine.

    No modification is allowed to dlls but again the EULA should have more details.

    Thanks,
      Ayman Shoukry
      VC++ Team



  • Gu Xu

    Yes, the Microsoft legal could for sure answer such issues. I believe the PSS folks could put you in contact with them. I am not sure exaclty how to reach them but probably calling the Microsoft number in your area should be able to help.

    Thanks,
      Ayman Shoukry
      VC++ Team

  • SanthaMind

    Hello,

    I'd be interested to hear how this issue was resolved. I'm in a slightly similar situation in that I have to provide a company I work for with an OCX that uses MFC and the C runtime library. At first I thought that giving them the merge modules would be the best solution, but when I tried to install to Windows 2000 using the merge modules, I had to upgrade to Windows Installer 3 before it would work. The component that I develop will be installed in strict IT environments, and it might not be possible for them to upgrade to Windows Installer 3 if they don't have it already.

    It would seem that rather than use the merge modules, if the mfc and c runtime dlls (and their manifests) could be added individually to a setup program and installed in the same directory as the exe which uses them, this would solve it.

    Is there any reason why this can't be done

  • Yitzhak

    First, let me say that if you truly need the EULA interpreted, you should indeed consult PSS and the usual channels for official legal advice.

    However, I can give you a direct answer on this specific issue. We do license redistribution of the libraries for app-local install with only the specific DLLs you need. You can get the relevant DLLs and manifests from ...\vc\redist folder, and see some details of the process in the redist.txt file. You do not need to redist any more DLLs than your application needs.

    Note that we require the use of the manifest, and we do not license the DEBUG DLLs for redistribution except to your own test machines.

    Martyn Lovell
    Development Lead
    Visual C++ Libraries


  • Namedetails

    Ayman-
    Thank you for your reply.

    I did look at the EULA, and the EULA doesn't appear to address this subject.  Keep in mind that I'm just a software developer.  I will not be modifying the DLLs, just trying to find out if I can ship only the ones I actually need versus everything in a given category, in an effort to keep my download sizes at a minimum.

    Here's the relevant section from my EULA:
    i. Right to Use and Distribute.  The code and text files listed below are “Distributable Code.”
      ? REDIST.TXT Files.  You may copy and distribute the object code form of code listed in REDIST.TXT files.
      ? Sample Code.  You may modify, copy, and distribute the source and object code form of code marked as “sample.”
      ? Microsoft Merge Modules.  You may copy and distribute the unmodified output of Microsoft Merge Modules.
      ? MFCs, ATLs and CRTs.  You may modify the source code form of Microsoft Foundation Classes (MFCs), Active Template Libraries (ATLs), and C runtimes (CRTs) to design, develop and test your programs, and copy and distribute the object code form of your modified files under a new name.
      ? MDAC.  You may copy and distribute the object code form of the MDAC_TYP.EXE file.
      ? Image Library.  You may copy and distribute images and animations in the Image Library as described in the software documentation.  You may also modify that content.  If you modify the content, it must be for use that is consistent with the permitted use of the unmodified content.
      ? Third Party Distribution.  You may permit distributors of your programs to copy and distribute the Distributable Code as part of those programs.

    ii. Distribution Requirements.  For any Distributable Code you distribute, you must
      ? add significant primary functionality to it in your programs;
      ? require distributors and external end users to agree to terms that protect it at least as much as this agreement;
      ? display your valid copyright notice on your programs; and
      ? indemnify, defend, and hold harmless Microsoft from any claims, including attorneys’ fees, related to the distribution or use of your programs.

    iii. Distribution Restrictions.  You may not
      ? alter any copyright, trademark or patent notice in the Distributable Code;
      ? use Microsoft’s trademarks in your programs’ names or in a way that suggests your programs come from or are endorsed by Microsoft;
      ? distribute Distributable Code, other than code listed in OTHER-DIST.TXT files, to run on a platform other than the Windows platform;
      ? include Distributable Code in malicious, deceptive or unlawful programs; or
      ? modify or distribute the source code of any Distributable Code so that any part of it becomes subject to an Excluded License.  An Excluded License is one that requires, as a condition of use, modification or distribution, that
      ? the code be disclosed or distributed in source code form; or
      ? others have the right to modify it.

     


  • Is partial redistribution of VS 2005 DLLs allowed?