Visual Studio license for TeamCity agent
Completed
Hello everyone. I'm a license manager and currently struggling with Visual Studio licensing on TeamCity agents. Our developers installed full Visual Studio IDE (not MS Build Tools) on some TeamCity agents. Reading this forum, I see in most cases only MS build tools are being installed and then no licensing issues. in my case, I'm interested whether all users that can trigger a build compilation do require Visual Studio license, as indirectly they are using that, or not? Definitely they use the software and such usage is not a scenario when unlicensed user can use the software (https://visualstudio.microsoft.com/wp-content/uploads/2019/06/Visual-Studio-Licensing-Whitepaper-May-2019.pdf). Did anyone have to deal with such scenario? How to license? Thank you in advance for your support!
Please sign in to leave a comment.
You shouldn't allow installing the full visual studio IDE on a build agent. This is exactly why there are the MSBuild Tools available from Microsoft. You actually pay the license for Visual Studio, not for the compiler and therefore using MSBuild Tools don't need any special commercial license. There is also no need at all to have visual studio installed on the build agents as you are not supposed to develop or debug on the agents.
Hi Frank. Thank you for your opinion. This is not something I allowed. It already has happened- I discovered installed instances of VS IDE on servers as a result of license review. Moreover, I'll do everything to uninstall IDEs from the servers, but it will take some time, especially as the developers are not very keen to apply changes on their development environment. I understand, IDE has been installed exactly to have MSBuild, which it includes. TeamCity integrates many IDEs and has different user roles for projects. I can imagine, not every TeamCity user, having access to build particular project, has active Visual Studio subscription, then triggering a build, not intentionally and indirectly, such user is using a component of VisualStudio (MSBuild), so require a license. Does it make sense and am I right saying that when full IDE installed on a build agent then all users of TC should be VS Licenses (or at least those triggering builds)?
I'm not a lawyer, but I would say you would need a license for every agent? Not sure if Microsoft consider this case in their license agreement, as technically, the build is running through MSBuild which doesn't require a license and the idea to install full blown IDEs on a build machine is somehow not the smartest one ;). Also when you install MSBuild with Visual Studio, the license is needed for Visual Studio, not for MSBuild as I stated before. Visual Studio never get started when the build is triggered through Teamcity.
From my personal view, the installation of Visual Studio on Build Agents is an absolute No-Go and I would give them the task to immediately uninstall it and replace it with the MSBuild command line tools. Installing it without having a license was already a failure and not the common way of setting up a build agent.
Teamcity doesn't integrate IDEs. It just offers some predefined build configurations for some popular solution/project formats. If you choose a build step type for Visual Studio Solutions in Teamcity, Teamcity will just build the MSBuild command line argument in the background and executes this on the agent. You can achieve exactly the same result by using a command line build step and enter the command line arguments manually. It's just a convenience function of Teamcity, not an integration.
Hi Szymon,
to mostly confirm what Frank has said, but be a bit more specific, TeamCity runs the builds via the build agents, and the user that runs the process is the user running the build agents in that specific machine, not the user logged in into teamcity. Particularly given that teamcity is mostly thought around automatic triggering, where a user is not involved at all, under many scenarios that wouldn't even be an option. I understand the concern, but it is not the case as far as I have been able to test, and definitely it is not needed that all TeamCity users have VS licenses. If it would be required, it should only be required that the user running the build agent process should be licensed.
When running a build, you can check in the build log to see exactly what is going on. For most build runners, simply a command is built specifically using the settings of the build configuration and it gets run introducing some of TeamCity's libraries to be able to hook to some events. This commands, in particular for the VS steps usually do not require the IDE installed at all (the SDK is required, though), so not even running them should require a license.