29

在我看到的nuspec 版本控制文档中

1.0  = 1.0 ≤ x
(,1.0]  = x ≤ 1.0
(,1.0)  = x < 1.0
[1.0] = x == 1.0
(1.0) = invalid
(1.0,) = 1.0 < x
(1.0,2.0) = 1.0 < x < 2.0
[1.0,2.0] = 1.0 ≤ x ≤ 2.0
empty = latest version.

我有一个packages.config看起来像这样的

<packages>
  <package id="psake" version="4.2.0.1" />
</packages>

我想将版本更改为“最新”。

我都试过了

<packages>
  <package id="psake" version="" />
</packages>

<packages>
  <package id="psake" />
</packages>

但两者都导致Unable to parse version value '' from 'packages.config'.

我正在使用 Nuget.exe 2.8.2

4

4 回答 4

38

从 Nuget 2.8 开始,您可以将以下属性添加到您的 nuget.config

<configuration>
    <config> 
        <add key="dependencyversion" value="Highest" /> 
    </config>
</configuration>

解析包时,将解析该包的最新版本。其他属性包括 HighestMinor、HighestPatch 和最低(基于语义版本)

来源:http ://docs.nuget.org/docs/release-notes/nuget-2.8

于 2014-10-13T13:03:21.913 回答
4

我猜你正在尝试使用 nuget install 或 nuget restore 来使用 NuGet.exe 拉下 NuGet 包。

packages.config 中的 version 属性定义项目或解决方案中安装的版本。

要获取最新版本的 psake NuGet 包,您需要使用包管理器控制台或“管理包”对话框或通过了解包的确切版本、将其添加到 packages.config 文件并使用包还原来安装它. 由于 psake 是一个解决方案级别的包,它不会更新您的项目,最后一个选项是可行的。

版本范围用于限制允许在您的项目中安装的包版本。

<packages>
    <package id="SomePackage" version="2.1.0" allowedVersions="[2,3)" />
</packages>
于 2014-07-15T20:01:40.160 回答
0

或者,您可以restore在任意版本上运行,然后update按照https://docs.nuget.org/consume/command-line-reference运行。为确保最新,您需要重新运行update.

将软件包更新到最新的可用版本。此命令还会更新 NuGet.exe 本身。请注意,运行更新命令需要存在 Packages 文件夹。推荐的方法是在运行更新命令之前先运行 NuGet.exe 恢复命令。

于 2015-07-07T22:40:29.343 回答
-1

You can modify your .cspoj file to execute a "BeforeBuild" target like this :

<Target Name="BeforeBuild"> <Exec Command="&quot;$(SolutionDir).nuget\NuGet&quot; update &quot;$(ProjectDir)packages.config&quot; -Id psake" /> </Target>

Note that : u'll need to have the "Nuget.exe" in ur solution directory.

于 2015-04-14T07:12:28.810 回答