我正在考虑使用PowerShell和/或C#编写自己的交付代码,可能是对NAnt或MSBuild进行炮轰.
背景(PS这对某些人来说是宗教问题.没有侮辱意图):
一人开店,多个探索性项目.作为我们大多数人 - 现在的Windows和ASP.Net.考虑移动和云.
我已经开始干涉NAnt了,并试图使用NAnt和CruiseControl.Net跟踪Expert .Net Delivery.整个"交付"问题已经解决,现在是时候"解冻"了.但是,我不知道该走哪条路.从我所学到的:
NAnt正在显示它的年龄.它很笨拙:理解和维护比C#等现代的OO语言更难理解和维护.即使在我读完这本书之后,在一个神秘的环境中工作似乎很奇怪,你想要执行的是XML,循环和继承(据我记得在"冰河时代"之前)很难做到.
MSBuid是MS特定的.我甚至不确定它是否会支持非MS环境.团队基础服务器很贵.
即便如此,他们似乎都提供了价值,因为在我的SO搜索中我没有听到任何人使用他们自己的自定义软件.但是,我不明白为什么不使用C#并根据需要简单地调用NAnt和/或MSBuild任务.
我的建议正好相反 - 避免像瘟疫这样的MSBuild.NANT更容易设置您的构建以进行自动测试,部署到多个生产环境,与cruisecontrol集成以用于入口环境,与源代码控制集成.我们通过TFS/MSBuild(使用TFSDeployer,自定义PowerShell脚本等)经历了如此多的痛苦,以使它能够完成我们能够用NANT开箱即用的功能.不要浪费你的时间.
构建产品远不仅仅是编译产品.由于这些工具(及其扩展)提供的功能,创建安装,更新版本号,创建托管,分发最终包等任务变得更加容易.虽然您可以使用常规脚本完成所有这些操作,但使用NAnt或MSBuild为您提供了一个可靠的框架来完成所有这些操作
我已经看到了先前的问题和答案.在这一个问题中,原始海报询问了一个后续问题:
使用msbuild有什么令人信服的理由?有缺点吗?
我没有看到答案.我也想知道反过来.Nant有哪些引人注目的特征?
我认为,对于nant,跨平台是很大的.对于msbuild,它是与Visual Studio的货币和集成.这听起来不错吗?还要别的吗?
编辑/添加:任何人都有功能列表比较?有人说"nant开箱即用了更多功能." 哪个?
将这些项目结合起来,结合努力以便相互受益是否有意义?有没有人问MS他们是否愿意为社区贡献msbuild,比如WiX?有什么机会?
编辑2:我刚刚发现这个事先的讨论,不知道为什么我以前找不到它.