1

我正在使用 NuGet 创建一个包含代码、母版页、css、javascript 等的“Web 框架”包。

为了加快构建/测试过程,我正在运行nuget.exe update packages.config,但我注意到它的行为与包管理器控制台的Update-Package命令不同。

  • nuget.exe update似乎仍然安装了以前版本的包,导致安装了多个版本的包。这通常不会导致问题,但 Package-ManagerGet-Package命令显示安装了许多版本,有时项目将无法构建。
  • Update-Package实际上卸载软件包然后重新安装它,这更干净但更慢

我的问题是:
1. 是否有关于这些命令之间的差异/关系的文档
2.安装多个版本nuget.exe update的行为是错误吗? 3. 有没有更好的方法在一个项目中创建一个包并在另一个项目中以快速和自动化的方式更新它?

4

1 回答 1

3

不幸的是,除了拼凑论坛和工作项线程之外,没有太多官方指南或文档。

当前包管理器控制台行为首先包含在此线程中的讨论中,后来在工作项中派生(抱歉,显然没有足够的代表发布更多链接)。

但是,正如其他人已经指出的那样,行为与nuget.exe没有这样的开关不一致。

因此,在回答您的问题时:

  1. VS Package Manager Consolenuget.exe确实有不同的行为,并且似乎是独立更新的(这很不幸)。

  2. nuget.exe并排安装多个版本的更新行为从一开始就是一个设计功能,您可以从 David Ebbo 的博客上关于 NuGet 命令行的评论中找到(同样,我会给您链接,但 SO 仍然没有不要相信我)。

  3. 不幸的是,我没有发现任何关于在构建期间使用包管理器控制台 cmdlet 的信息。您可以尝试在构建事件中使用您packageId 手动删除所有文件夹,然后使用. 基本上复制手动操作,因为正如 David Ebbo 所说,通过命令行界面卸载包的方式是删除文件夹(同样,不能发布参考,这有点烦人......)nuget.exeUpdate-Package

于 2013-09-02T04:19:39.663 回答