Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Difference between Visual Studio, Build Tools and Windows SDK

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.

like image 212
Joe Avatar asked Nov 24 '19 14:11

Joe


People also ask

What is Microsoft Visual Studio build tools?

These Build Tools allow you to build Visual Studio projects from a command-line interface.

Does Visual Studio include Windows SDK?

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.

What is Microsoft SDK for Visual Studio?

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.

Do I need build tools if I have Visual Studio?

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."


2 Answers

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:

enter image description here

And if we need to build it in remote server without VS, we need to install these two workloads in Build Tools Package:

enter image description here

enter image description here

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.

like image 152
LoLance Avatar answered Sep 30 '22 14:09

LoLance


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.

like image 39
SurvivalMachine Avatar answered Sep 30 '22 16:09

SurvivalMachine