使用英语阅读

通过


NuGet 1.4 发行说明

NuGet 1.3 发行说明 | NuGet 1.5 发行说明

NuGet 1.4 已于 2011 年 6 月 17 日发布。

功能

Update-Package 改进

NuGet 1.4 引入对 Update-Package 命令的大量改进,从而使包在解决方案中的多个项目之间保持同一版本变得更为容易。 例如,将包升级到最新版本时,通常需将安装该包的所有项目更新到同一版本。

现在,Update-Package 命令可更轻松地:

更新单个项目中的所有包

Update-Package -Project MvcApplication1

更新所有项目中的单个包

Update-Package PackageId

更新所有项目中的所有包

Update-Package

对所有包执行“安全”更新

-Safe 标志可将升级限制为仅具有相同主版本和次要版本组成部分的版本。 例如,如果已安装包版本 1.0.0,且源中提供版本 1.0.1、1.0.2 和 1.1,-Safe 标志则会将包更新到 1.0.2。 在没有 -Safe 标志的情况下进行升级则会将包升级到最新版本 1.1。

Update-Package -Safe

在解决方案级别管理包

在 NuGet 1.4 之前,使用对话框将包安装到多个项目十分麻烦。 它要求每个项目均启动一次该对话框。

NuGet 1.4 添加对同时在多个项目中安装/卸载/更新包的支持。 只需右键单击解决方案并选择管理 NuGet 包菜单选项,即可启动该功能。

Solution Level Manage NuGet Packages dialog

请注意,在对话框的标题栏中将显示解决方案的名称,而不是项目的名称。 现在,包操作将提供一个复选框列表,其中还包含应应用此操作的项目的列表。

Manage NuGet Packages Project Selection

有关更多详细信息,请参阅有关管理解决方案包的主题。

将升级限制为允许的版本

默认情况下,在包上运行 Update-Package 命令(或使用对话框来更新包)时,会将其更新到源中的最新版本。 对于更新所有包的新支持,你可能想将包锁定为特定版本范围。 例如,你可能事先知道应用程序只能处理 2.* 版本的包,但不能处理 3.0 及以上版本的包。 为防止将包意外更新到版本 3,NuGet 1.4 添加了对可升级到的包版本范围的限制,而此升级操作可通过使用新的 allowedVersions 属性来手动编辑 packages.config 文件而实现。

例如,以下示例演示了如何将 SomePackage 包的版本范围锁定为 2.0 - 3.0(不含)。 allowedVersions 属性使用版本范围格式来接受值。

<?xml version="1.0" encoding="utf-8"?>
<packages>
    <package id="SomePackage" version="2.1.0" allowedVersions="[2.0, 3.0)" />
</packages>

请注意,在 1.4 版本中,必须手动编辑将包锁定为特定版本范围的操作。 在 NuGet 1.5 中,我们计划通过 Install-Package 命令来添加对设置此范围的支持。

包可视化工具

通过工具 ->库包管理器 ->包可视化工具菜单选项,可启动新的包可视化工具,从而轻松可视化解决方案中的所有项目及其包依赖项。

重要说明:此功能利用了 Visual Studio 中的 DGML 支持。 仅在 Visual Studio Ultimate 中支持创建可视化效果。 仅 Visual Studio Premium 或更高版本支持查看 DGML 图。

Package Visualizer

针对 NuGet 对话框的自动更新检查

某些版本的 NuGet 引入了通过 .nuspec 文件来表现的新功能,而旧版 NuGet 对话框无法理解这些功能。 例如,在 NuGet 1.4 中引入了用于指定框架程序集的功能。 因此,请务必使用最新版本的 NuGet,从而确保可使用具备这些最新功能的包。 若要使 NuGet 更新更加可见,NuGet 对话框包含在较新版本可用时可进行突出显示的逻辑。

注意:仅当在当前会话中选择联机选项卡时,才会进行此检查。

Manage NuGet Packages dialog with new version available

若要关闭针对更新的自动检查,请转到 NuGet 设置对话框并取消选中自动检查更新

NuGet Settings

此功能其实已在 NuGet 1.3 中添加,但在更新 1.3 版本(例如 NuGet 1.4)之前,此功能将不可见。

包管理器对话框改进

  • 菜单名称已改进:为清晰起见,已重命名用于启动对话框的菜单选项。 此菜单选项现为管理 NuGet 包
  • 详细信息窗格可显示最新更新日期:选择联机更新选项卡时,NuGet 对话框将在包的详细信息窗格中显示最新更新的日期。
  • 已显示标记的列表:NuGet 对话框会显示标记。

Powershell 改进

  • 已签名的 PowerShell 脚本:NuGet 包括已签名的 Powershell 脚本,从而可在更严格的环境中使用。
  • 提示支持:包管理器控制台现在支持通过 $host.ui.Prompt$host.ui.PromptForChoice 命令进行提示。
  • 包源名称:使用 -Source 标志指定包源时,支持提供包源的名称。

nuget.exe 命令行改进

  • NuGet 自定义命令:nuget.exe 可通过使用 MEF 的自定义命令进行扩展。
  • 简化用于创建符号包的工作流-Symbols 标志可应用于基于常规约定的文件夹结构,而该结构要求只需在此文件夹中包括源和 .pdb 文件即可创建符号包。
  • 指定多个源NuGet install 命令支持将分号用作分隔符来指定多个源,或通过多次指定 -Source 来指定多个源。
  • 代理身份验证支持:NuGet 1.4 添加在需要身份验证的代理后台使用 NuGet 时提示用户输入凭据的支持。
  • nuget.exe 更新重大变更:现在,nuget.exe 需要 -Self 标志才能更新自身。 nuget.exe Update 现在会获取 packages.config 文件的路径,并尝试更新包。 请注意,此更新受到限制,因为它不会:** 更新、添加、删除项目文件中的内容。 ** 在包中运行 Powershell 脚本。

对使用 nuget.exe 推送包提供 NuGet 服务器支持

NuGet 包含通过 NuGet.Server NuGet 包托管基于 Web 的轻型 NuGet 存储库 的简易方法。 借助 NuGet 1.4,轻型服务器支持使用 nuget.exe 来推送和删除包。 最新版本的 NuGet.Server 新增了名为 apiKey 的新 appSetting。 省略该密钥或将其留空时,会禁用向源推送包的功能。 将 apiKey 设为某一值(理想情况下为一个强密码)可使用 nuget.exe 来推送包。

<appSettings>
    <!-- Set the value here to allow people to push/delete packages from the server.
            NOTE: This is a shared key (password) for all users. -->
    <add key="apiKey" value="" />
</appSettings>

支持 Windows Phone Tools Mango Edition

现在,NuGet 在 Windows Phone Tools for Mango 的候选发布版本中受到支持。 目前,Windows Phone Tools 不支持 Visual Studio 扩展管理器。因此,若要安装 NuGet for Windows Phone Tools,可能需手动下载并运行 VSIX。

若要卸载 NuGet for Windows Phone Tools,请运行以下命令。

vsixinstaller.exe /uninstall:NuPackToolsVsix.Microsoft.67e54e40-0ae3-42c5-a949-fddf5739e7a5

缺陷修复

NuGet 1.4 共修复了 88 个工作项。 其中 71 个被标记为 bug。

有关 NuGet 1.4 中已修复工作项的完整列表,请查看 [NuGet Issue Tracker for this release](http://nuget.codeplex.com/workitem/list/advanced?keyword=&status=All&type=All&priority=All&release=NuGet%201.4&assignedTo=All&component=All&sortField=LastUpdatedDate&sortDirection=Descending&page=0)

值得注意的 bug 修复:

  • [Issue 603](http://nuget.codeplex.com/workitem/603):指定特定包源时,跨不同存储库的包依赖项可正确进行解析。
  • [Issue 1036](http://nuget.codeplex.com/workitem/1036):将 NuGet Pack SomeProject.csproj 添加到生成后事件便不会再导致无限循环。
  • [Issue 961](http://nuget.codeplex.com/workitem/961)-Source 标志支持相对路径。

NuGet 1.4 更新

NuGet 1.4 发布后不久,我们便已发现几个亟需修复的问题。 针对 1.4 版本,此更新的具体版本号为 1.4.20615.9020。

缺陷修复

  • [Issue 1220](http://nuget.codeplex.com/workitem/1220):存在多个项目时,Update-Package 不会在所有项目中执行 install.ps1/uninstall.ps1
  • [Issue 1156](http://nuget.codeplex.com/workitem/1156):包管理器控制台在 W2K3/XP 上(未安装 Powershell 2 时)出现卡滞