我刚刚开始第一次制作自定义 MSBuild 脚本。我看到有两个扩展功能的标准选项:MSBuild Extension Pack和MSBuild Community Tasks。
我正在寻找一些关于这些之间有什么区别的指导,以及为什么我会使用一个而不是另一个,甚至两者都使用。我在 Bing 上用 Google 搜索过,但只见树木不见森林。任何指导表示赞赏。
我刚刚开始第一次制作自定义 MSBuild 脚本。我看到有两个扩展功能的标准选项:MSBuild Extension Pack和MSBuild Community Tasks。
我正在寻找一些关于这些之间有什么区别的指导,以及为什么我会使用一个而不是另一个,甚至两者都使用。我在 Bing 上用 Google 搜索过,但只见树木不见森林。任何指导表示赞赏。
我会插话的,只值2美分。有几件事——首先我不会把它们称为“标准”选项。两者都早于 MSBuild 4.0,内联任务和属性函数功能以及其中的许多任务都已经过时了。我已经编写了数千行 MSBuild,并且只需要几次来自这些库中的任何一个的任务。
它们的优点是它们非常模块化。您可以只挑选您需要的程序集和目标文件,并将它们签入您的代码库,而不会“卡住”整个实现。有时我会从一个库中挑选一个任务,从另一个库中挑选一个任务,两者都在同一个版本中。我总是更喜欢使用简单的 MSBuild 4.0 功能而不是库中的某些功能。我对图书馆中的一些任务很感兴趣,但这种行为根本不是我需要的,所以我自己动手(这个任务想到了 zip 任务,因为我想控制分组压缩与源文件夹无关)。一旦您必须编写一个自定义任务,在同一个程序集中滚动另一个和另一个非常容易。
最后,我要说的是,它实际上与图书馆无关,而是关于您对图书馆中特定任务的非常具体的需求,使用您需要的东西,不要将您的构建与任何东西纠缠在一起那。
我的 2 美分 - 我不得不为要在普通 Windows 机器上运行的项目快速创建构建脚本(没有安装 TFS 和 VS.NET)。构建脚本应该执行以下操作 -
我不得不超越 MSBuild 4.0,因为我想要一种简单的方法来运行上述工具并发送电子邮件。我查看了 MSBuild 社区任务和 MSBuild 扩展包。虽然我已经读到扩展包是一个复杂的、有益健康的包,但我仍然尝试了一下,但我最终还是使用了社区包,因为它真的很容易使用,甚至与其他包相比,甚至可以扩展代码,即使文档很少或没有. 扩展包,在我看来,只有当您有时间了解如何使用它时,它才是一个选项。
我目前在工作中使用 MSBuild 社区任务。我没有接触过其他扩展,但我可以在这个库上告诉一些事情。
优点:
缺点:
总结:
这是一个有用的工具,易于安装和使用,它可以帮助你的代码更清晰,更容易理解,并且可以节省一些时间。我认为最大的问题是文档,但你可以在谷歌中写下任务和库的名称,然后在论坛、博客和这里找到一些代码。