首页 / 知识
最佳的.NET生成工具
2023-04-12 13:01:00

Best .NET build tool本问题已经有最佳答案,请猛点这里访问。
.NET的最佳构建工具是什么? 我目前使用NAnt,但仅是因为我有使用Ant的经验。是MSBuild首选吗? 我们实际上将NAnt和MSBuild与CruiseControl结合使用。 NAnt用于脚本流控制,并调用MSBuild来编译项目。触发物理构建后,将使用NAnt将单个项目的构建输出发布到共享位置。 我不确定这是最好的过程。我认为我们许多人仍在寻找出色的构建工具。我最近在.NET Rocks上第362集上听到的一个很有前途的事情是James Kovac的PSake,这是他完全基于PowerShell的构建系统。听起来确实很有希望,因为从理论上讲,您可以使用PowerShell进行的操作是无限的。 我只想将FinalBuilder加入其中。它不是免费的,但是如果您对编辑XML文件感到厌倦,并且想要在一个更好的(IMO)环境中工作,我将为您提供帮助。 我已经与所有这些人一起工作,并且总是回到FinalBuilder。 还有另一个名为NUBuild的新构建工具(非常智能的package器)。它是轻量级的,开源的,并且非常易于设置,并且几乎没有接触维护。我真的很喜欢这个新工具,我们已经将它作为我们持续构建和集成项目的标准工具(我们在75个开发人员中拥有大约400个项目)。试试吧。 http://nubuild.codeplex.com/
我完全使用MSBuild进行构建。这是我的通用MSBuild脚本,该脚本在树中搜索.csproj文件并进行构建:
(很抱歉,如果它有点密集。Markdown似乎正在删除空白行。) 这很简单,但是一旦您了解了概念,并且所有依赖项都会自动处理。我应该注意,我们使用Visual Studio项目文件,这些文件中内置了很多逻辑,但是该系统允许人们在Visual Studio IDE或命令行中几乎完全相同地进行构建,并且仍然可以灵活地添加内容到您在上面的脚本中看到的xUnit测试之类的规范构建。 一个PropertyGroup是所有配置发生的地方,并且可以对其进行自定义,例如从构建中排除某些项目或添加新的测试程序集掩码。 ItemGroup是发生逻辑的地方,该逻辑在树中找到所有.csproj文件。 然后有一些目标,大多数熟悉make,nAnt或MSBuild的人都应该能够遵循。如果您调用Build目标,它将调用__Compile,__Deploy和__Test。清理目标在所有项目文件上调用MSBuild来清理它们的目录,然后删除全局部署目录。重建调用先清理,然后再构建。 Rake和Albacore是出色的组合。 Ruby的力量,没有XML。 .NET开放源5-Liam McLennan的Rake和Albacore的.NET自动化[Tekpub.com] 我们正在使用Bounce,这是C#中用于更干净的构建脚本的框架。 我使用商业软件Automated Build Studio进行构建。 我们使用MSBuild,因为我们从VisualStudio2005(现在为VisualStudio2008)开始,并且MSBuild已"内置"到SDK中-构建服务器上的维护较少。确实,这是一个NAnt克隆-两种工具都具有无限的灵活性,因为它们可以让您在代码中创建自定义构建任务,并且都已经创建了一套不错的社区构建任务。
使用动态脚本语言(如Python,BOO,Ruby等)创建和维护构建脚本可能是NAnt等基于XML的良好选择。 (它们倾向于比XML更干净。) 这也取决于您要构建的内容。 MSBuild SDC任务库具有几个特殊任务。例如,对于AD,BizTalk等。
我既使用过又喜欢使用NAnt。我很难说一个比另一个"好"。 UppercuT使用NAnt进行构建,并且使用Build Framework非常容易。 对于大多数项目,自动构建就像(1)解决方案名称,(2)源代码控制路径,(3)公司名称一样容易! http://projectuppercut.org/ 这里有一些很好的解释:UppercuT 我同时使用了MSBuild和NAnt,我更喜欢MSBuild,主要是因为默认情况下它需要的配置要少得多。尽管您可以使事情变得过于复杂,并通过大量的配置垃圾来加载MSBuild,但最简单的是,您可以将其指向解决方案/项目文件,然后将其移至大多数情况下,足够。 通常来说,与MSBuild相比,我觉得NAnt提供了更多的灵活性,而(由于我的相对简单的需求)到目前为止,我对后者感到满意。 |
最新内容
相关内容
python生成器是什么?
python生成器是什么?,培训,生成器,python让Python代码更易维护的工具
python让Python代码更易维护的工具,代码,工具,培训,python生成器如何实现
python生成器如何实现,数据,培训,生成器,函数,程序,语句,方法,定义,外部,功能,python生成器实现方法:生成器和迭代器的功能非常相似,它也会提供python怎么用python生成不同随机数
python怎么用python生成不同随机数,培训,模块,方法,长度,例子,下面,以上,之间,参数,操作,python中的random模块用于生成随机数,random模块中有python怎么生成随机数
python怎么生成随机数,数字,培训,代码,函数,以上,实例,模块,之间,语法,演示,以下实例演示了python如何生成一个随机数:#生成0~9之间的随机数#python怎么生成不重复的随机数
python怎么生成不重复的随机数,培训,长度,模块,以上,参数,操作,方法,更多,内容,想要使用Python生成随机不重复的数,我们可以使用random模块来python生成不重复的随机数怎么写
python生成不重复的随机数怎么写,培训,数字,范围内,结果,表达式,语法,个数,模块,以上,表示,python中的random模块用于生成随机数,其语法表达式python怎么生成xml文件
python怎么生成xml文件,数据,培训,设计,标准,文件,标记,语言,实例,模块,宗旨,用python内置的xml.dom可以对xml文件进行解析处理。什么是xml?Xpython如何委派生成器
python如何委派生成器,培训,暂停,数据,代码,异常,生成器,表达式,主线,函数,实例, python如何委派生成器1、生成器函数包含yieldfrom表达python生成器推导式是什么
python生成器推导式是什么,培训,生成器,对象,列表,括号,实例,以上,不是,方法,更多,python生成器推导式是什么1、生成器推导类似于列表推导,但python迭代器如何转换为生成器
python迭代器如何转换为生成器,地方,状态,培训,生成器,函数,实例,下次,之前,声明,以上,1、说明生成器在Python中引入了yield声明。这有点像re您使用什么工具进行静态代码分析?
您使用什么工具进行静态代码分析?,您使用什么工具进行静态代码分析?,复杂性,一致性,代码分析,循环,What tools do you use for static