Visual Studio、Build Tools和Windows SDK之间的区别

21
据我了解,Visual Studio包括两者,而SDK允许编写Windows应用程序。我尝试在线搜索,但没有找到明确的比较。任何帮助都将是非常好的。
编辑:例如,您可以使用Xamarin在VS中构建跨平台应用程序,那么使用构建工具是否也可以呢?我尝试使用 此教程 构建libtorrent,但在安装了VS之前它无法正常工作。我试图逐步按照教程进行,但在许多地方都会出现文件未找到的错误。
所以(如果我理解正确),SDK是一个库,用于构建Windows程序,但除了IDE之外,构建工具与VS有什么不同吗?
抱歉,英语不是我的母语。

你提出了一个无法回答的问题。虽然@SurvialMachine在下面给出了一个答案,但我们可以看到它可能没有展示你想要的“清晰比较”部分。我猜你可能更感兴趣的是它们之间的“关系”,而不仅仅是“差异”,但这需要以更具体的方式提问。 - Lex Li
“在我安装了VS之前它没有工作”缺乏清晰度。Build Tools的安装程序确实提供了安装VC++编译器/MSBuild/Windows 10 SDK的选项,但您没有提到您选择安装哪些组件,更重要的是,实际的构建错误。 - Lex Li
2个回答

20
为了更详细地描述VS、Build Tools和Windows SDK之间的关系:
1. Build Tools 的全称是 Build Tools for VS,通常我们称之为msbuild。它是VS IDE的构建系统,VS IDE通过调用msbuild来构建托管项目。(如果我们安装了VS IDE,无论我们选择哪个工作负载,默认都会启用msbuild)
2. 自从VS2017以来,MSbuild成为独立的构建包。这意味着我们可以选择安装此包,在未安装VS IDE的远程服务器上构建项目。因此,对于使用VS2017及更高版本的我们来说,msbuild是IDE安装的默认工具,用于管理和构建项目。
因此,我们也可以选择单独安装该工具,我们可以在Tools for VS部分找到Build Tools for VS2019(独立构建包)。据我所知,msbuild可以像在VS IDE中一样构建大多数托管项目。
例如,如果我们在VS中开发asp.net core Web项目,则需要安装此工作负载:

enter image description here

如果我们需要在没有VS的远程服务器上构建它,我们需要在构建工具包中安装这两个工作负载:

enter image description here

enter image description here

对于大多数托管项目而言,我们只需要确保已经安装了相应的工作负载和组件,然后就可以使用构建工具包在命令行中构建它们。
3.至于Windows SDK,它包含用于开发和构建Windows 10应用程序的头文件、库、元数据和工具。如果您正在尝试构建UWP项目,则需要在VS IDE(开发和构建)或Build Tools Package(仅用于构建)中安装相应的Windows SDK。
另外:要使用单个构建工具包构建Xamarin跨平台项目,我认为您应该安装Mobile Development with .Net.net core build Tools工作负载。

我真的很喜欢这个解释。+1 - Rajdeep Dutta
1
那么这与 Windows SDK 有什么关系呢?如果我想要在没有安装 Visual Studio 的情况下编译 C++ 代码,我需要同时安装 Windows SDKBuild Tools for VS 还是只需要其中的一个? - antred

9

Visual Studio 是一个集成开发环境 (IDE),它提供了用户界面。

构建工具包括编译器,用于将源代码编译成机器码。

Windows SDK 包含用于开发应用程序的头文件、库和示例代码。


顺便提一下,自从VS2017以来,Build Tools 更像是一个特殊的Visual Studio版本,因为它可以与其它版本并存安装。 - Lex Li
1
@LexLi,我们需要两个都吗?如果没有构建工具会发生什么? - cikatomo
为了简单理解 - 构建工具有助于编译源代码。 在VS2017之前,构建工具随VS一起提供。 在VS2017之后,构建工具作为单独的构建包出现。我们可以在未安装VS IDE时安装此构建工具。 - AHAMED AAQIB
1
@AHAMEDAAQIB 简单回答cikatomo的问题,是否需要在同一台机器上安装VS Build Tools,如果已经安装了VS Studio。只需简单回答“是”或“否”即可。我不想在同一内存中重复安装东西,因为已经有文件空间问题了。 - Benjamin
1
@Benjamin回答你的问题“不需要”。如果你已经安装了VS,就不需要单独安装VS Build工具(默认情况下,如果你有Visual Studio,那么你已经安装了Build Tools)。VS Build工具允许你从命令行界面构建Visual Studio项目。因此,当你不想安装VS时,可以使用VS Build工具来构建本地和托管的基于MS Build的应用程序,但是你需要一个有效的Visual Studio许可证(社区版、专业版或企业版)。 - AHAMED AAQIB

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接