Support .NET Builds without requiring Visual Studio on the server
To build certain PCL libraries and libraries for Windows 8 RT requires having Visual Studio on the server.
Nick Berardi writes about a workaround that allows running a build server without VS, but it's really just a workaround for functionality that should be easy.
Not to mention there's probably licensing considerations we're just ignoring by doing that.
Please make it easy (and legal) to build .NET projects on a server without requiring a Visual Studio installation (or license) on that server.
Thank you for your feedback, and your overwhelming support for this feature.
To support the creation of more lightweight build servers, we now have made available Visual Studio 2017 Build Tools (https://www.visualstudio.com/downloads/#build-tools-for-visual-studio-2017-rc). This release allows you to build native and managed MSBuild-based projects without requiring the Visual Studio IDE. By default (that is without selecting any workload options) the Build Tools provides support for managed projects. You can also optionally install the Visual C++ compilers and libraries, MFC, ATL, and C++/CLI support.
While Visual Studio 2017 has not yet RTM’d, we’re marking this User Voice suggestion as “Completed”, and we will continue to update the Visual Studio 2017 Build Tools as we provide updates to Visual Studio 2017.
If you have additional capabilities that you would like to see included with the Visual Studio Build Tools, please create a new User Voice entry so that we can more easily track your feedback.
Thank you once again for your support for this request!
—The Visual Studio Team
In many ways, the new build environment is a major step backwards from the XAML builds. I never had to install VS on out build controllers to get builds to work.
Der Meister commented
The build tools are very limited. For example, they do not support build of desktop application. See available workloads: https://docs.microsoft.com/en-us/visualstudio/install/workload-component-id-vs-build-tools
I tried this VS 2017 tool but its not working for me.
Still i am unable to build my Latest C# code from it.I am using .net 4.6 framework.
I would appreciate,If any one have any other way to solve it.
Do the build tools include the ability to run unit tests that would have been run with mstest?
Ed Morris commented
Also a way to include code coverage!
Georgii Kalnytskyi commented
There are Visual C++ Build Tools , that enable user to compile C++ projects without Visual Studio. Why couldn't similat .Net (C#,F# etc.) tools exist?
Mark Arnott commented
The same issue exists with SQL Server Data Tools and Visual Studio SQL projects. It is still a huge hassle to get SSDT installed without Visual Studio.
Colin Young commented
Absolutely. Any project I create and build on a dev machine I should be able to build from the command-line only on a build server that has MSBuild Tools installed. I shouldn't need to:
* install MSBuild Tools
* install the .Net Framework Developer Pack
* copy some arbitrary directories from a dev machine
* copy everything under VC\bin because somebody needed to use editbin.exe after MS decided to switch the default setting of TSAWARE in C# exe and didn't provide a way to override it
Am I done? I hope so, at least until somebody discovers another missing "requirement" and I need to go and update every build agent...
It's already supported, MSBuild is an externally installable component, isn't it?
I have spent countless hours trying to get builds working without Visual Studio. There are so many dlls and target files and other references that are included within the Visual Studio install that are not available elsewhere that I have now given up.
The final straw for me was SQL database projects. I just could not see a way of building them without Visual Studio installed. Any approach which I looked at was extremely brittle and would be hard to keep up-to-date.
I really do not understand why Microsoft do not create an install package for build servers that does not include the tens of GB of unnecessary files that come with Visual Studio. There are crazy things like the .target files shipping only with Visual Studio rather than MSBuild, why would you not include these in MSBuild or the build agents package?
Our build servers now use almost 60GB of disk space, the majority of which is not required simply to get builds to work. This is a fine example of bloat and one of the reasons people turn to open source alternatives.
A comment from Microsoft on this issue would be very much appreciated.
Nick Schonning commented
I'd say this issue is now "in progress" with https://github.com/microsoft/msbuild
Ke Zhan commented
Try to setup a simple dev environment on my windows 8 tablet, Visual studio is too big for a tablet. So used Visuao Studio Code and want to be able to build the project using MSBUILD, but it's so painful to make it work. It'd be super nice to have this happening!!! So we can code everywhere!!!
Francesco Pontillo commented
I'd just like to point out it's 2015, and developers still have to install 10 GBs of Visual Studio to simply compile one damned package.
Søren Nguyen Boisen commented
How is this even an issue in 2015? Who in their right mind would require a build server to have a full version of Visual Studio (with all its bloat and problems installing/upgrading) installed?
I truly regret choosing .NET as platform for our company, it simply isn't mature yet, even after all these years.
I mentioned this to MSFT 5 years ago, and their official response was "As Designed"...
Craig Deubler commented
VS community edition is a great help with this, but it's still a huge unnecessary install.
Graham Bunce commented
@martin. No, the build environment should be as stripped bare as possible to make sure there is nothing on it, in the gac, etc that mean it can build in one environment but not another. "works on my machine" pseudo-certification should be avoided, and can be with a clean room build server, so +1 from me...
Can't believe this is still a thing in this day and age.
Søren Nielsen commented
And when you allow this, also allow for a way for Clickonce applications to change assembly name and productname, to allow for side by side installation of Test, CI and Production versions.