NuGet 增强了对 Mono 的支持,并开始支持 C++

  • Jeff Martin
  • 李彬

2013 年 5 月 13 日

话题:语言 & 开发

开发者可以通过 Visual Studio(VS)的 NuGet 扩展更加容易地安装和维护第三方插件。自 2010 年起,使用.NET 平台的开发者就得以从 NuGet 中获益,而借助于新的2.5 版本的 NuGet 项目,C++ 开发者现在也可以使用 NuGet 为其项目获取工具和类库了。(对于寻找 NuGet 2.3 或 2.4 版本的人来说,他们并没有错过任何东西——NuGet 团队表示,根据升级的幅度,他们跳过了这些版本号。)

新版本包含多项改进:

  • 能够在升级 / 安装过程中确认文件覆写(并包括“是否全部覆写”的选项),而不是默认为自动跳过这些文件。
  • 优于早先发布的 PowerShell cmdlet,NuGet 现在支持通过 GUI 点击“全部升级”按钮升级所有已安装的程序包。
  • 修复了不区分大小写的问题——此前,文件中大小写的不同可能会出问题,因为 NuGet 会忽略文件。这个问题一般会在 Linux 中运行 Mono 项目的时候出现。
  • 新增对 MonoAndroid、MonoTouch 和 MonoMac 框架的支持,允许创建将安装在 Mono for Android 项目中的 NuGet 程序包。
  • 在程序包中添加“最低 NuGet 版本”的属性,以指明对版本的要求——NuGet 程序包能够通过该属性指定安装它所必须的最低版本的 NuGet。注意,这一变更意味着 NuGet 2.5 以前的版本将不能够安装带有这一属性集的包,无论它的值是什么。
  • 现在,程序包的依赖关系只有在需要的时候才会更新——此前已有的程序包无论是否需要都会被升级到最新版本。
  • 使用程序包中的\build 文件夹自动导入 MS Build 目标和属性文件。

NuGet对 C++ 的支持

NuGet 项目中另一个意义重大的新增部分是对 C++ 项目的支持。NuGet 项目的 Jeff Handley 在博客中表示,NuGet 的官方介绍已经做了调整以介绍这一新功能:

“NuGet 是针对微软开发平台(包括.NET)的程序包管理器。NuGet 客户端工具支持生产和使用程序包。NuGet Gallery(nugget.org)是所有程序包作者和使用者们所使用的中央程序包仓库。”

NuGet 为开发者提供了一个系统,能够管理向项目中添加的插件。NuGet 使用 MSBuild 来生成具有合适属性和目标的文件。另一个额外的好处是,由于是在每个解决方案的基础上缓存 NuGet 程序包,因此同一个类库可以在多个项目间共享。

NuGet 支持 VS2010 和 VS2012,对依旧使用老平台的开发者提供了有用地支持——在利用往返特性的时候这是一个额外的好处 。CoApp 项目的开发者提供了一个测试版本的工具集,以便能够更加容易地创建基于 C++ 的 NuGet 包。

查看英文原文NuGet Improves Mono Support, Adds C++


感谢孙镜涛对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

语言 & 开发