may I ship the MSVC compiler / toolchain with my app

Dragos Cruceru 21 Reputation points
2022-11-02T15:28:12.64+00:00

Dear Microsoft Q&A community!
I'm new to the community, but I did use MSVC compiler at home (mostly, as part of the MS Visual Studio Community or, to a lesser extent, as a command - line tool).
My topic is a rather simple one, and I'm sure you can give me an answer:

  • may I ship the MSVC toolchain within my C++ application (probably created with an IDE, possibly with another compiler (not decided yet)) ?
    To further explain: I'm creating an app (.exe) which includes a GUI and performs things, such as simulation. But, for user-defined components (typically, console interfacing with the user), he/she will need to define either a function or a class... Thereby requiring the presence of a compiler / toolchain on his/her computer -> otherwise the functionality will not work (the structure, or topology, must be dynamic - here I mean, not OOP only (e.g., selecting from a limited number of classes to create objects), since the user is supposed to define his/her own class at runtime - during program execution/usage). The structure should be dynamic (and fast - otherwise I would have tried Python for this).
    The portions of C/C++ code that the user might create (or the application will automatically generate for him/her) will be compiled either to .dll (then, attached to my shipped large .exe), or to a standalone (small) executable -> to perform the program's task, i.e. to smulate a process.
    I know that MSVC, as toolchain for Windows, is a free tool. But, may I ship / distribute it together with my app (within a subfolder of my app) ? I'm not very accustomed to reading cumbersome lincenses, to be honest (portions of the clauses I might not fully comprehend (what I may, what I may not)). Essentially, though, the (main) app I'm shipping (which may be built with MSVC or not - I do not know now at this point) should remain closed – source, because there will be some IP associated with the tool I'm developing. This app will create some (smaller) .cpp codes that the user, at a push of a button, will trigger, under the hood, the compiler/toolchain invoking, in order to obtain:
  • either a .dll to be attached to the shipped .exe,
  • or a standalone executable, that will be run as an external process by the shipped (application) .exe.
    Of course, I can mention that parts of the software tool I'm creating are built using MSVC -> in the readme.txt file, also in the Help/About, in the documentation etc.
    Hence, under these conditions, may I ship the MSVC with my application, as a subfolder of the installation folder ?
    Thank you for your answer and your support!
Visual Studio
Visual Studio
A family of Microsoft suites of integrated development tools for building applications for Windows, the web and mobile devices.
4,627 questions
C++
C++
A high-level, general-purpose programming language, created as an extension of the C programming language, that has object-oriented, generic, and functional features in addition to facilities for low-level memory manipulation.
3,540 questions
Not Monitored
Not Monitored
Tag not monitored by Microsoft.
36,199 questions
{count} votes

Accepted answer
  1. RLWA32 40,661 Reputation points
    2022-11-02T16:08:49.403+00:00

    I'm not a lawyer. Having said that, my opinion is that you may not redistribute the Visual Studio Build tools.

    The related Microsoft license terms at https://visualstudio.microsoft.com/license-terms/vs2022-ga-diagnosticbuildtools/ state -

    " You may copy and install files from the software onto your build devices, including physical devices and virtual machines or containers on those machines, whether on-premises or remote machines that are owned by you, hosted on Microsoft Azure for you, or dedicated solely to your use (collectively, “Build Devices”)".

    and also

    " In addition, you may not: provide the software as a stand-alone offering or combine it with any of your applications for others to use, or transfer the software or this agreement to any third party."


0 additional answers

Sort by: Most helpful