如何'nuget restore'下载预发布包?

时间:2014-01-30 05:37:09

标签: c# nuget build-process nuget-package nuget-package-restore

我们在构建环境中遇到了一个问题,我们希望我们的持续集成构建能够通过适当地附加版本号{{1}来下载标记为预发布的“最新且最好的”NuGet包。 }。

每当我们运行命令-dev时,它都无法获取任何预发布版本。我查看了NuGet Versioning页面上的文档,但它不方便地省略了有关如何将预发布范围添加到应在packages.config文件中下载的允许版本的详细信息。

目前,packages.config文件如下所示:

nuget restore

我们希望NuGet至少能够看到然后从以下列表中选择最新版本:

  • Foo.1.0.0-dev1401291727ef87505.nupkg
  • Foo.1.0.0-dev14012918064fdf488.nupkg

不幸的是,没有看到预发布版本,并且恢复过程只使用“已发布”的软件包。尝试下载仅预发布包时的典型错误消息是:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Foo" version="1.0.0" targetFramework="net35" />
</packages>

我是否可以通过某种方式在packages.config文件中指定包含预发布包的一系列版本?甚至是从.nuspec文件本身?

非常感谢提前。

3 个答案:

答案 0 :(得分:11)

AFAIK无法指定在packages.config中使用预发布包。相反,使用-InstallPrerelease标志(PowerShell)或Prerelease标志(命令行nuget.exe)指定应安装预发布/测试版软件包而不是稳定软件包。

请注意,Foo.1.0.0-dev1234被认为是之前的而不是Foo.1.0.0,所以如果稳定包存在(Foo.1.0.0)那么任何Foo.1.0.0-xxxx beta /不会安装预发布包。在这种情况下,您需要将测试版升级到(例如)Foo.1.0.1-devxxxx,以使其被发现为“{更新”而不是Foo.1.0.0

详情请见此处:How to publish nuget prerelease version package

答案 1 :(得分:1)

要指明预发布版本,请务必在packages.config版本中对其进行标注:

ROWLOCK

使用allowedVersions属性指定版本范围。

要检查预发布软件包的更新(不仅仅是稳定版),请在“管理NuGet软件包”对话框中,在标有“仅稳定”的下拉列表中选择“包含预发布”。

答案 2 :(得分:0)

nuget.exe restore将下载packages.config文件中指定的确切版本。您必须使用update-package将已安装的软件包更新到最新版本。