As far as I get it Visual Studio includes both and the SDK allows writings apps for Windows, I tried online but I haven't found any clear comparison. Any help would be great.
EDIT: For instance you could build cross platform apps using Xamarin in VS, is it possible using build tools? I tried to use this tutorial to build libtorrent, but it didn't work until I installed VS, I tried to take the tutorial step by step, at many points I got errors about files not found.
So (if I understand correctly) the SDK is a library to build Windows programs, but aside from the IDE, what sets build tools apart from VS?
Sorry but English is not my first language.
These Build Tools allow you to build Visual Studio projects from a command-line interface.
The Windows SDK is installed as part of the Desktop development with C++ workload in the Visual Studio Installer. A standalone version is available at Windows SDK.
The Visual Studio SDK helps you extend Visual Studio features or integrate new features into Visual Studio. You can distribute your extensions to other users, as well as to the Visual Studio Marketplace.
If you have Visual Studio 2019 installed, you don't need to install "Build Tools for Visual Studio 2019". The description for "Build Tools for Visual Studio 2019" states: "These Build Tools allow you to build native and managed MSBuild-based applications without requiring the Visual Studio IDE."
To add more details to describe the relationship between VS, Build Tools and Windows SDK.
1.The full name of Build Tools
is Build Tools for VS
. Normally we call it msbuild. It's the build system of VS IDE, VS IDE calls msbuild
to build managed projects. (If we install VS IDE, no matter which workload we choose, msbuild will be enabled by default)
2.Since VS2017, MSbuild becomes a separate build package. It means we can choose to install this package to build projects in remote server where VS IDE is not installed. So for us who use VS2017 and higher, msbuild is a default tool
installed by IDE used to manage and build projects.
So we can also choose to install the tool separately, we can find the Build Tools for VS2019
(stand-alone build package) in Tools for VS part. AFAIK, msbuild can build most of the managed projects like what we do in VS IDE.
For example, if we're developing asp.net core web projects in VS, we need to install this workload:
And if we need to build it in remote server without VS, we need to install these two workloads in Build Tools Package:
So for most managed projects, we only need to make sure we've installed corresponding workloads and components, then we can build them in command-line with Build Tools package.
3.As for Windows SDK, it contains the headers, libraries, metadata, and tools for developing and building Windows 10 apps. If you're trying to build UWP projects, then you need to install corresponding windows sdk in VS IDE(develop and build) or in Build Tools Package(only for build).
In addition: To build Xamarin cross-platform projects with single Build Tools package, I think you should install both Mobile Development with .Net
and .net core build Tools
workloads.
Visual Studio is an IDE (Integrated Development Environment). It's the user interface.
Build Tools include the compiler that compiles your source code into machine code.
Windows SDK contains headers, libraries and sample code used to develop applications.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With