2010-08-30 115 views
22

我似乎错过了MsBuild 101的第1天。我发现自己问“它做了什么,它取代了什么,我什么时候需要它?”因为我可以打F5并编译我的应用程序。MSBuild:它是什么,我什么时候需要它?

我失踪的大图是什么?

+5

当你点击f5编译你的应用程序VS调用msbuild; msbuild是f5的实现细节。 – 2010-08-30 18:32:00

回答

29

MSBuild是构建平台,使Visual Studio世界中的所有构建活动。

一个更好,更实际的例子是声明,

1)的.csproj的文件(每个C#项目)是的MSBuild文件

2)当你按下F5键,你基本上(简单化)调用msbuild.exe并传入.csproj文件。

MSBuild赋予所有使“打F5”功能的功能。从创建“调试”或“释放”文件夹,到删除引用到bin \目录,调用CSC ...以及其中的所有内容...... MSBuild“支持”所有这些。

如果您从构建中需要的所有内容都是F5为您提供的输出,那么您就知道了关于MSBuild可能需要了解的全部内容。

但是,在大多数商业/实际开发方案中,会有一段时间需要定制构建过程。最常见的方法是自动化构建过程(使用TeamBuild或一些本地系统)。您可能还需要

  • 创建一个“打包”部署你的项目也正在积极 正在开发
  • 您的构建发布到FTP和发送电子邮件到外面
  • 链接到另一个库客户通知 他们的可用性。

利用统一的,可扩展的构建平台(即的MSBuild)的是什么使这些这些可能的,同时仍然在构建过程的一部分......保持开发管线的“构建”部分简单,遏制。

+0

感谢101格式的信息! – LamonteCristo 2010-09-01 20:27:23

1

当您想要从命令行构建项目时使用msbuild。每当你看到一个持续集成的产品会自动构建你的项目时,它会调用msbuild来执行实际的构建步骤。

+0

为什么不使用csc? – LamonteCristo 2010-08-30 18:26:31

+1

MSbuild使用csc,但它也可以做其他事情。这是微软的NANT。 – nportelli 2010-08-30 18:28:38

+0

除了编译它之外,还有更多的东西 - 如果你想运行测试,发送测试结果,存档构建工件等,那么该怎么办? – dsolimano 2010-08-30 18:28:49

2

当你想要做自动化这是非常有用的构建,并具备实现构建过程

The F5 Key Is Not a Build Process和其中的链接(例如this)是这方面的一个很好看的。

此外,您的Visual Studio项目文件是msbuild文件。如果你想在构建时做更高级的东西(例如运行javascript minifier,对自动生成的版本标识符进行更多控制,对文件进行后期处理等),则必须深入研究msbuild。

1

我认为构建服务器应该有一个比通过Windows API更简单的方式按F5键的选项。

0

我知道这是相当陈旧的,但这里是我对MSBuild的看法。

这是一个真正类似于ANT的脚本化构建工具。他们都使用XML进行配置,所以你可以很快地找出它。例如,两者都有“目标”的概念,思路上有很多相似之处,如果你知道ANT,交换机不应该很难。

从Visual Studio生成的MSBuild文件非常类似于从Eclipse获得的生成ANT脚本,这些脚本构建您的项目,记住您的包含并定义您的依赖关系。您可以直接修改它们以获得乐趣和收益。

我喜欢MSBuild,它修复了一些我觉得讨厌ANT的东西。

相关问题