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 应该用作构建自动化工具吗?的主要内容,如果未能解决你的问题,请参考以下文章