我一直在我的.csproj文件中设置软件包引用,以接受任何较小版本的依赖版本的nuget软件包(请参阅Nuget package wordeing参考示例(。一个例子可能是以下内容:
<!-- Accepts any 6.2.x version. -->
<PackageReference Include="ExamplePackage" Version="6.2.*" />
但是,尽管这似乎可以使用(即,恢复了最新版本的6.2.2
版本(,但内置在Visual Studio中的Nuget Package Manager GUI似乎将包装参考读为6.2.0
,并提示我升级到6.2.2
。从命令行执行还原似乎下载了6.2.2,但我无法让VS软件包经理玩球。
有什么办法可以让VS Nuget软件包管理器GUI接受6.2.2
实际恢复的方法?
但是,尽管这似乎可以使用(即,恢复了最新版本的6.2.2版(,但内置在Visual Studio中的Nuget Package Manager GUI似乎将包装参考读为6.2.0,并提示我升级到6.2.2
这是关于使用通配符的PackageReference
版本控制的已知问题。
似乎使用通配符*
是Nuget Restore浮动到更高版本的正确方法。但是,Nuget软件包管理器GUI仍然是最低版本。当前的解决方法是通过Nuget Package Manager GUI将Nuget软件包更新为最新版本,但是这种方式将删除通配符*
。
对于跟踪此Nuget问题,我建议您对您进行投票并遵循早期报告的问题以获取更新和修复通知:
https://github.com/nuget/home/issues/3788
希望这会有所帮助。