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>
我想将版本更改为&#34;最新版本&#34;。
我已经尝试过两次
<packages>
<package id="psake" version="" />
</packages>
和
<packages>
<package id="psake" />
</packages>
但两者都会产生Unable to parse version value '' from 'packages.config'.
我正在使用Nuget.exe 2.8.2
答案 0 :(得分:34)
从Nuget 2.8开始,您可以将以下属性添加到nuget.config
<configuration>
<config>
<add key="dependencyversion" value="Highest" />
</config>
</configuration>
解析包时,将解析该包的最新版本。其他属性包括HighestMinor,HighestPatch和最低(基于语义版本控制)
答案 1 :(得分: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>
答案 2 :(得分:0)
或者,您可以根据https://docs.nuget.org/consume/command-line-reference在任意版本上运行restore
,然后按update
运行update
。为了确保最新,您需要重新运行{{1}}。
将软件包更新到最新版本。此命令还会更新NuGet.exe本身。请注意,运行Update命令需要存在Packages文件夹。建议的方法是在运行Update命令之前先运行NuGet.exe Restore命令。
答案 3 :(得分:-1)
您可以修改.cspoj文件以执行“BeforeBuild”目标,如下所示:
<Target Name="BeforeBuild">
<Exec Command=""$(SolutionDir).nuget\NuGet" update "$(ProjectDir)packages.config" -Id psake" />
</Target>
请注意:您需要在ur解决方案目录中使用“Nuget.exe”。