尽管版本号变化很大,但 NuGet 2.0 实际上只做出了相当小的变化。 除了在包管理控制台中改善了标签页之外,大多数变更都是围绕打包规约(packaging conventions)做出的。
在过去,唯一支持特定框架的文件夹是“lib”。 在这个版本中,“content”和“tools”也可以用类似的方式分开。 content 文件夹中的文件会直接复制到项目的根目录下。 这可以用于许可文件、图像以及任何项目需要的文件,除了程序库文件。
tools 文件夹主要用于包的安装和卸载脚本。 这些脚本是用 PowerShell 编写的,当把包添加到项目中时,包管理器就会执行它。 脚本接受的一个参数是 $project,它是对 Visual Studio 的 EnvDTE 项目对象的引用。 使用它你可以借助一般的 VS 插件和宏做很多事情。
另一项变更是注册包依赖关系(package dependencies)的方式。 在过去,包的依赖关系要么是所有,要么是没有。 现在你可以通过target 框架对依赖关系分组,每个组都带有特定框架的标签。 你还可以创建默认的依赖关系组,但它只有在没有其他匹配的情况下才会被使用。
NuGet 仍然是一种明确针对 C#、VB 和 F#的工具。 还没有提供对 IronPython、C++/CLI 和 Mono 项目的支持。 由于你无法直接从 NuGet.org 直接下载 NuGet 安装包,所以使用这些项目类型的开发者需要使用命令行工具。
查看英文原文: NuGet 2.0 Brings New Package Conventions, Still no Mono, Python, or C++ Support
评论