包恢复失败。回滚包更改

时间:2017-08-27 16:04:34

标签: asp.net-core visual-studio-2017

当我尝试在VS2017中为asp.net核心安装任何nuget包时。它不断显示"包恢复失败。回滚包装更改"对于每个包裹。

12 个答案:

答案 0 :(得分:11)

您需要将目标.net核心1.1更改为 2.0 ,如果您使用最新版本(例如VS 2017 15.3)更新您的VS 2017 < / p>

OR,如果您在使用.net核心1.1时遇到此问题,请执行以下任务。

VS Tools - &gt;选项 - &gt; Nuget包管理器 - &gt;包管理器设置 - &gt;一般 - &gt; 清除所有Nuget缓存

enter image description here

答案 1 :(得分:8)

如果您尝试更新dotnet core 2.0软件包,则需要更改.csproject文件中的目标。

<PropertyGroup>
   <TargetFramework>netcoreapp2.0</TargetFramework>
</PropertyGroup>

答案 2 :(得分:5)

您只需清除NuGet缓存即可。 要做到这一点 - &gt;

  1. 转到工具
  2. 选项
  3. NuGet Package Manager
  4. 一般
  5. 清除所有NuGet缓存

答案 3 :(得分:4)

enter image description here 尝试安装您想要定位的.net框架的相应版本。

右键单击您的项目,转到“属性”,然后安装其他框架

这将带您到TechNet download page for .netCore,在此处下载相应的SDK版本,安装然后重新启动Visual Studio。

现在返回Project Properties并选择新的Target Framework版本并重试,这次应该可以正常工作。

答案 4 :(得分:2)

将解决方案包的版本带到1.1.3 nuget package Version 1.1.3

答案 5 :(得分:0)

能否请您指定要安装的nuget软件包

正如您所说的那样,您会收到错误消息

  

打包还原失败。回滚软件包更改

一旦获得此消息,请打开输出窗口。它会显示所有已安装的软件包以及它在哪里失败并开始还原。从那里您将能够对其进行调试。

对于那些对Microsoft.AspNetCore.All出错的人。 请转到project> properties> application>目标框架。

框架应与Microsoft.AspNetCore.All兼容

答案 6 :(得分:0)

就我而言,我只需要更新所有已经安装的Nuget软件包,然后它就可以开始工作。

答案 7 :(得分:0)

答案: 添加/更新nuget包Microsoft.VisualStudio.Web.CodeGeneration.Design

答案 8 :(得分:0)

使用VS2019时,转到“项目”>“管理Nuget Packackes ...”,然后检查已安装的软件包是否有任何更新,运行更新为我修复了此问题。

答案 9 :(得分:0)

对于我来说,它说我只需要将.csproj文件中的版本更改为“ 4.5.0.530”。

因此,我转到了.csproj文件,如果您不知道如何执行操作,请签出this one minute video,然后按照步骤操作,您应该进入一个类似于以下内容的页面。

enter image description here

在第一行将您的版本更改为“ 4.5.0.530”(我已经做过,但是最初是“ 4.9”之类的东西:

  <PackageReference Include="Xamarin.Forms" Version="4.5.0.530 />

然后,您可以保存.csproj文件并重新加载项目。 请尝试重新安装该插件。

答案 10 :(得分:0)

有趣的是,我在 .net5 和 Visual Studio 2019 v16.9.4 中遇到了同样的问题,代码生成设计包的版本为 Microsoft.VisualStudio.Web.CodeGeneration.Design v5.0.2

经过一番挖掘后,我发现脚手架试图安装比我已经依赖的版本旧的 Microsoft.EntityFrameworkCore.SqlServer 版本。这是 Microsoft.EntityFrameworkCore.SqlServer v5.0.5 所以我将它的版本降级到 v5.0.4 并在清除 nuget 缓存后再次尝试,它工作了!完成脚手架后,我将依赖项升级回所需的版本。

答案 11 :(得分:-1)

更新Nuget程序包 Microsoft.EntityFrameworkCore, Microsoft.EntityFrameworkCore.SqlServer

**之所以能够解决,是因为当我们在新控制器上使用脚手架时,会创建DbContext类对象,这就是为什么要为EntityFrameworkCore **更新正确包的原因。