NuGet 应该用作构建自动化工具吗?

Posted

技术标签:

【中文标题】NuGet 应该用作构建自动化工具吗?【英文标题】:Should NuGet used as a build automation tool? 【发布时间】:2014-06-17 12:41:52 【问题描述】:

我完全是 .net 菜鸟,并尝试用竹子自动构建 .net。似乎大多数人使用 Nant/Msbuild 作为构建工具,但这些工具并不管理项目依赖项。

我想要一个像 maven 这样的工具来处理依赖管理和构建过程。当我查看文档时,NuGet 似乎只管理依赖项。我应该使用 NuGet 来处理构建吗?还是应该将 NuGet 与 Nant/MSBuild 一起使用?

【问题讨论】:

【参考方案1】:

你的想法是对的。 Nuget 是一个包管理器,可以根据需要解决依赖关系。然后 MSBuild 是将您的项目编译成可以执行的程序集的编译器。当 MSBuild 编译您的项目时,您的项目可以配置为使 Nuget 解决所有依赖项(也称为“恢复包”),我认为您正在寻找。

如果您想在构建时恢复包,请在 Visual Studio 中右键单击解决方案(通常是解决方案资源管理器中最顶部的项目)并选择启用 NuGet 包恢复。然后将生成的 .nuget 文件夹提交到版本控制以供 MSBuild 使用。

【讨论】:

“启用 NuGet 包还原”将设置解决方案以使用 MSBuild 集成包还原。虽然这确实有效,但 NuGet 团队建议改用自动包还原(如果您在 VS 之外构建,则使用命令行包还原)。 docs.nuget.org/docs/reference/package-restore【参考方案2】:

来自 NuGet 主页。

NuGet 是 Microsoft 开发平台的包管理器 包括.NET。 NuGet 客户端工具提供了生成 并消费包裹。 NuGet 库是中心包 所有软件包作者和消费者使用的存储库。

它不是像 Maven 这样的构建工具。 MSBuild 可能是最接近您正在寻找的东西。

【讨论】:

我猜是这样,但想确定一下。是否有任何工具可以解决 .net 世界中的 maven 之类的依赖+构建,还是我应该使用 nant + nuget?行业标准是什么?

以上是关于NuGet 应该用作构建自动化工具吗?的主要内容,如果未能解决你的问题,请参考以下文章

基于微软开发平台构建和使用私有NuGet托管库

自动化构建工具Gulp初体验

Gulp和webpack的区别,是一种工具吗?

我们可以在 iPhone 模拟器中使用 UI 自动化工具吗?

如何使用自动工具构建静态和共享库?

你真的了解 Gulp 吗