首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将NuGet包还原到最新版本

将NuGet包还原到最新版本
EN

Stack Overflow用户
提问于 2018-10-02 07:49:00
回答 1查看 1.4K关注 0票数 2

在这个项目中,我一直在使用一些定制的NuGet源代码。显然,其中有些已经不可用了,但我确实在另一个(仍在工作的)服务器上拥有更新的(也只有更新的)版本的包。有没有一种方法可以直接将包恢复到最新版本,而无需手动替换.csproj和packages.config文件中的所有引用?

我尝试过运行Updade-Package -Reinstall,但只收到以下错误消息:

Some NuGet packages are missing from the solution. The packages need to be restored in order to build the dependency graph. Restore the packages before performing any operations.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-12 02:15:48

如果您使用的某些包(并且仍然想使用)不再可用,我建议您对它们进行备份。

在服务器上找到Nuget缓存。在Windows上,这个位置位于

%userprofile%.nuget\packages

查找要备份和复制相应文件夹中的.nupkg文件的包(和版本)。

那么你有两个选择:

  1. 创建一个私有Nuget提要
  2. 开发机器上的创建本地Nuget提要

第一个选项的优点是可以在任何您想要的机器(开发机器、构建server...etc)上使用单一的源,但是您将有更多的设置,特别是用于身份验证/授权(因为它是一个私有提要)。

对于第二个选项:只需创建一个C:/Nuget文件夹并放置任何您想要的.nupkg。然后在中转到:

工具-> Nuget软件包管理器->软件包管理器设置->包源

单击绿色+按钮添加一个新源代码,只需给它命名Local并浏览到您的C:/Nuget来设置源代码。

从现在开始,当您想要还原您的Nuget包时,Visual将首先查看nuget.org提要,如果它找不到引用的包,那么将查看您的本地提要并将安装的包缓存到您的机器的%userprofile%.nuget\packages中。

我希望回答你的问题,我不太清楚你问了什么,你对Nuget的了解。

更新:

我想我现在更明白你的问题了。

首先,我认为您误解了Update-Package -Reinstall命令。它将重新安装与已经引用的版本相同的软件包,但只需重新安装它们。例如,当您更改项目的目标框架时,它是一个有用的命令。然后,您可以重新安装相同版本的包,它们将重定向这个.NET框架版本。

因此,如果nuget restore不能工作,那么Update-Package -Reinstall显然也会失败。

对于Nuget,当一些东西不起作用的时候,你不应该坚持,相反,找到能使它再次发挥作用的调整。我不知道有多少次我去不同的缓存删除一些缓存包。

我认为您应该尝试使用nuget restore,看看是什么包导致了问题,然后卸载这些包(如果它们还没有安装在项目中,这只会从.csprojpackages.config中删除引用),那么您就可以最终安装这些包的最新版本了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52604035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档