使用“ nuget.exe恢复解决方案”时,软件包文件夹中的版本号错误

伊夫

在某些主机上,当nuget.exe restore solution.sln用于在构建之前强制恢复软件包,与Nuget可视插件相比,我观察到该命令的行为并不相同。

在某些主机上,命令版本将内部版本号(默认值0)附加到版本号上,从而导致程序包文件夹中的路径包含该内部版本号。

因此,例如,除了拥有:

/packages/my_package.1.57.0/...

我有:

/packages/my_package.1.57.0.0/...

最后,它会导致构建失败,因为在内部,存储在.vcxproj中的目标正在寻找不包含构建号的第一个路径。我不知道它是否与观察到的行为有关,但是这些程序包是使用CoApp构建的本地C ++程序包

如果不是在同一主机上使用nuget.exe,而是使用Visual 2013的程序包管理器还原功能,它可以正常工作,并且使用不包含内部版本号的路径正确复制了程序包。然后构建就可以了。

nuget.exe在某些主机上而不是在其他主机上工作时,我怀疑是组件的不同版本或不同的默认设置。

对于我检查过的组件:

nuget版本:2.8.50926.602

视觉2013版本:12.0.31101.00更新4

它们在工作和不工作的主机上都是相同的。那还剩下什么呢?

伊夫

最终,它出现在以下简单情况下(不幸的是,我无法重现该问题):

  • 遇到麻烦的地方哪里有boost库的自制软件包。
  • 其中一些软件包可能具有相同的名称,但nuget.org上的内容和版本编号不同

在有问题的工作站上,我可以通过以下方法解决此问题:

  • 从存储库列表中禁用nuget.org
  • 最重要的是=>清除nuget缓存!

即使我无法复制:我对这种情况也很有信心,因为当查看包装内的东西时,我发现里面的东西与我制作的东西不一样。因此,该软件包已从其他位置下载。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

更改Visual Studio 2017使用的NuGet软件包文件夹

当多个解决方案中包含某些项目时,为所有解决方案设置一个公共的nuget软件包文件夹

您如何在解决方案中找到未使用的NuGet软件包?

使用NuGet下载旧版本的软件包

从解决方案中删除nuget软件包还原

您如何在解决方案中找到未使用的NuGet软件包?

使用NuGet Pack时,是否可以不使用nuspec文件来指定软件包名称?

将解决方案相对软件包文件夹与NuGet和project.json一起使用

使用dotnet pack使用外部.exe文件创建NuGet软件包

启动解决方案时如何禁用恢复NuGet软件包

Visual Studio 2017:如何在解决方案文件夹中包含NuGet包

添加到解决方案中时,NuGet软件包可还原/安装到多个位置

广泛安装Nuget软件包解决方案

NuGet软件包安装到错误的文件夹

在解决方案中的项目上使用时缺少NuGet软件包

卸载使用nuget.exe安装的nuget软件包

使用错误版本的软件包的Azure DevOps构建解决方案

更新相同版本号的Nuget软件包

如何使用程序集中的版本号创建预发布的nuget软件包

Gitversion在AzureDevops构建管道中回滚了我的NuGet软件包的版本号

我可以从解决方案文件夹中删除NuGet.exe吗

使用Powershell的Nuget软件包版本差异分析

在具有两个项目的一个解决方案文件中安装不同版本的nuget软件包

配置解决方案以还原构建中的NuGet软件包时发生错误。操作已超时

无法使用正确的.NET版本安装NuGet软件包

如何使用nuget.exe命令行获取特定Visual Studio解决方案的软件包列表

如何成功恢复整个解决方案的nuget软件包?

在VS解决方案中使用git子模块时如何解析nuget包

NuGet Packager 版本使用内部版本号,添加 -beta