我似乎错过了MsBuild 101的第1天。我发现自己在问“它做了什么,它取代了什么,我什么时候需要它?”因为我可以点击F5并编译我的应用程序。
我失踪的大局是什么?
答案 0 :(得分:46)
MSBuild是构建平台,支持Visual Studio世界中的所有构建活动。
更好,更实际的例子是陈述
1。)。csproj文件(每个C#项目)都是msbuild文件
2。)当你点击F5时,你基本上(过度简化)调用msbuild.exe并传入你的.csproj文件。
MSBuild赋予所有“击中F5”工作的能力。从创建“调试”或“发布”文件夹,到删除引用到bin \目录,调用CSC ......以及介于两者之间的所有内容...... MSBuild“强大”所有这些。
如果构建中需要的只是F5给你的输出,那么你就知道了你可能需要知道的关于MSBuild的所有内容。
然而,在大多数商业/实际开发方案中,将需要定制构建过程。最常见的方法是自动化构建过程(使用TeamBuild或一些自行开发的系统)。您可能还需要
使用统一且可扩展的构建平台(即MSBuild)是使所有这些成为可能的原因,同时仍然是构建过程的一部分......使开发管道的“构建”部分保持简单和包含。 / p>
答案 1 :(得分:2)
当您想要进行自动构建并且必须实现构建过程时,它非常有用
The F5 Key Is Not a Build Process及其中的链接(例如this)在这方面是一个很好的阅读。
此外,您的Visual Studio项目文件是msbuild文件。如果你想在构建时做更多高级的东西(比如运行一个javascript minifier,对自动生成的版本标识符有更多的控制权,文件的后期处理等等),你就必须深入了解msbuild。
答案 2 :(得分:1)
当您想从命令行构建项目时使用msbuild。每当您看到一个自动构建项目的持续集成产品时,它将调用msbuild来执行实际的构建步骤。
答案 3 :(得分:1)
我认为构建服务器应该可以选择以比Windows API更简单的方式按F5键。
答案 4 :(得分:0)
我知道这很陈旧,但这是我对MSBuild的看法。
这是一个非常类似于ANT的可编写脚本的构建工具。它们都使用XML进行配置,因此您可以很快地找到它。例如,两者都有“目标”的概念,在思考方面有更多的相似之处,如果你知道ANT开关不应该很难。
从Visual Studio生成的MSBuild文件非常类似于从Eclipse中获取的生成的ANT脚本,用于构建项目,记住包含并定义依赖项。您可以直接修改它们以获得乐趣和利润。
我喜欢MSBuild,它修复了一些我觉得烦恼ANT的东西。