我一直在我的.csproj文件中设置包引用以接受任何次要版本的从属NuGet包(请参阅NuGet Package Versioning reference examples)。这方面的一个例子如下:
<!-- Accepts any 6.2.x version. -->
<PackageReference Include="ExamplePackage" Version="6.2.*" />
然而,虽然这似乎有效(即恢复了6.2.2
的最新版本),但Visual Studio中内置的NuGet包管理器GUI似乎将包引用读作6.2.0
并提示我升级到6.2.2
。
从命令行执行恢复似乎下载6.2.2但我无法让VS Package Manager播放球。
有没有办法让VS Nuget Package Manager GUI接受6.2.2
实际已经恢复的内容?
答案 0 :(得分:2)
然而,虽然这似乎有效(即恢复了6.2.2的最新版本),但Visual Studio中内置的NuGet包管理器GUI似乎将包引用读取为6.2.0,并提示我升级到6.2 0.2
这是使用通配符进行PackageReference
版本控制的已知问题。
似乎使用通配符*
是NuGet Restore浮动到更高版本的正确方法。但是,NuGet包管理器GUI仍然采用最低版本。目前的解决方法是通过NuGet包管理器GUI将nuget包更新到最新版本,但这种方法将删除通配符*
。
为了跟踪此NuGet问题,我建议您投票并遵循先前报告的更新和修复通知问题:
https://github.com/NuGet/Home/issues/3788
希望这有帮助。