我想知道是否可以更新用/ x标志安装的软件包? 对我来说,似乎现在不可能。更新的意思是使packages.config更改为更高版本的给定包(由nuget.exe更新SolutionName.sln完成)
更新操作的流程是什么?它看起来在实际安装的包的nupgk里面?或者它只是在目录名称中搜索版本? 缺少目录名称中的版本时是否存在版本比较问题?
我需要准确的解释。
注意: 我用nuget 2.8.50224.430
我在nuget codeplex上创建了相同的线程: https://nuget.codeplex.com/discussions/543299
答案 0 :(得分:0)
我想我设法回答了我自己的问题。 在等待响应时,我决定查看nuget.exe源代码并查找已安装软件包的版本是如何收集的。
我意识到:
1.版本直接来自packages.config
2. nuget update命令在packages目录中查找PackageName.PackageVersion.nupkg
3.当想要的文件不存在时,无法完成更新(中止)。
我尝试更改代码以使用没有版本的目录和包名称。 这是可能的,但为此目的请求另一个标志会更好。
好奇:PathResolver是在UpdateCommand.cs中创建的
var pathResolver = new DefaultPackagePathResolver(sharedRepositoryFileSystem);