微信号:infoqchina

介绍:有内容的技术社区媒体

微软在GitHub上开源MSBuild引擎

2015-03-23 11:45 InfoQ



近日,微软在GitHub上开源了Microsoft Build Engine,即MSBuild,并将其贡献给.NET基金会。这是一个用于构建应用程序的平台。它为项目文件提供了一个XML模式,用于控制构建平台如何处理和构建软件。Visual Studio使用MSBuild,但MSBuild并不依赖于Visual Studio。通过在项目或解决方案文件中调用MSBuild.exe,就可以在未安装Visual Studio的环境中编排和构建产品。


MSBuild包含如下组件:

Microsoft.Build.CommandLine是Microsoft Build Engine(MSBuild.exe)的执行入口;


Microsoft.Build命名空间包含了编程访问及控制MSBuild引擎的类型;


Microsoft.Build.Framework命名空间包含的类型定义了任务和日志记录器如何与MSBuild引擎交互;


Microsoft.Build.Tasks命名空间包含了MSBuild所提供的所有任务实现;


Microsoft.Build.Utilities命名空间提供了辅助类,开发人员可以用它们创建自己的MSBuild日志记录器和任务。


微软此次开源的MSBuild源代码与Visual Studio 2015中的MSBuild略微有一些不同,但他们声称会逐步消除两者之间的差别。同时,微软表示,他们会很快增加Linux和Mac支持,从而使开发人员可以在他们喜欢的平台上构建开源.NET项目,最终使它成为.NET开发人员在Linux和Mac平台上的首选构建工具。有一点需要提醒开发人员注意,MSBuild源代码需要使用Visual Studio 2015及以上版本进行构建。


虽然开源的目的之一是获取来自社区的反馈,但开发人员在提交一项功能或大量贡献代码之前,需要与MSBuild团队进行协商,确保将要提交的内容符合该产品的路线图。团队会对所有提交的代码进行严格审查和测试,确保代码的质量、设计、向后兼容性和路线图相符度都达到一个极高的标准。由于当前的重点是保持向后兼容性,所以团队对pull request做了限制:

在进行贡献之前需要首先同团队进行协商,否则会被拒绝;


只接受与已核准问题相关的贡献;


不容易合并到主干末端的pull request会被拒绝;


提交的内容必须满足功能和性能要求,包括团队尚没有提供开源测试的情况;


提交的内容必须遵循.NET基金会编码指南


此外,开发人员必须在提交pull request之前签署贡献者许可协议(CLA)。





如果想要评论本篇文章,想看下其他读者都有什么话想说,欢迎点击“阅读原文”参与讨论。

 
InfoQ 更多文章 Facebook如何实现PB级别数据库自动化备份 学术派Google软件工程师Matt Welsh谈移动开发趋势 Spotify为什么要使用一些“无聊”的技术? 妹纸们放假了,汉纸们做啥? 大多数重构可以避免
猜您喜欢 调度系统,Crontab的格式 要怎样和程序猿谈一场没有bug的恋爱 MySQL 高可用集群之 MySQL-MMM 平常心造就一颗赛艇 为了1亿特殊的“亲”们……