我刚开始首次制作自定义MSBuild脚本。我发现扩展功能有两个标准选项:MSBuild Extension Pack和MSBuild Community Tasks。
我正在寻找关于这些之间存在差异的一些指导,以及为什么我会使用其中一个,甚至两个。我用Bing搜索了Bing,但看不到树木的木头。任何指导意见。
答案 0 :(得分:8)
我会报到,只需2美分。几件事情 - 首先我不会把它们称为“标准”选项。两者都早于MSBuild 4.0和内联任务和属性函数功能,其中的许多任务都已经过时了。我已经编写了数千行MSBuild,并且几次只需要从这些库中的任何一个创建任务。
他们的好处在于它们非常模块化。您可以只选择您需要的程序集和目标文件,并将它们检入您的代码库,而不会“陷入”整个实现。有时我会从一个库中挑选一个任务,从另一个库中挑选一个任务,两个都在同一个版本中。我总是喜欢在库中使用简单的MSBuild 4.0功能。我对图书馆中的一些任务感兴趣,但行为完全不是我需要的,所以我掀起了自己的想法(我想到了这个拉链任务,因为我想控制组中的拉链与源文件夹无关)。一旦你必须编写一个自定义任务,就可以很容易地滚动另一个和另一个,所有这些都在同一个程序集中。
最后,我会说这不是关于图书馆的,而是关于库中特定任务的特殊需求,使用你需要的东西,不要纠结你的构建什么,除了那个。
答案 1 :(得分:1)
我目前正在使用MSBuild社区任务。我没有与其他扩展程序联系,但我可以在这个库中说几件事 优点:
缺点:
要点:
这是一个有用的工具,易于安装和使用,它可以帮助您使代码更清晰,更容易理解,并且可以节省一些时间。我认为最大的问题是文档,但您可以在google中编写任务和库的名称,并在论坛,博客和此处查找一些代码。
答案 2 :(得分:1)
我的2美分 - 我遇到的情况是我必须为一个在vanilla Windows机器上运行的项目(没有安装TFS和VS.NET)快速创建一个构建脚本。构建脚本应该执行以下操作 -
我不得不超越MSBuild 4.0,因为我想要一种简单的方法来运行上面提到的工具并发送电子邮件。我查看了MSBuild社区任务和MSBuild扩展包。虽然我已经读过扩展包是一个复杂的有益健康的软件包,但我仍然尝试过,但我最终使用了社区包,因为它非常容易使用,甚至扩展了代码而不是其他,甚至没有或没有文档。 Extensions Pack,在我看来只有在你有时间了解如何使用它时才是一个选项。