包恢复失败。回滚 .Net Core Web 中的包更改 API

Package restore failed. Rolling back package changes in .Net Core Web API

我正在处理 .Net Core 3.1 Web API 项目。我想添加一个 API Controller using Entity Framework。但它不断产生错误。它说,“所选代码生成器出现错误 运行:包恢复失败。回滚包更改。”

我也安装了 3.1 版下的 NuGet 包。我尝试清除所有 NuGet 缓存,但没有用。 我怎样才能解决这个问题?请帮忙!

对比项目中的代码和配置,项目似乎没有错误,于是OP尝试新建一个.net 5项目,这次一切如常。也许它可以作为类似问题的提示,即更改项目框架的版本。

============================================= ======

Google 错误消息我真的发现高票答案要求清除 Nuget 缓存,但正如你所说,它不起作用。恐怕我需要你的帮助,你检查一下你和我的区别在哪里,因为它在我身边有效。顺便说一句,使用 v3.1.18 Microsoft.EntityFrameworkCore.SqlServer 也对我有用,所以我猜这可能是您的 visual studio 客户端造成的。您可以重新安装客户端。

我新创建了一个asp.net core 3.1 api项目,并安装了ef:

<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.9" />
  </ItemGroup>
</Project>

并且在启动时,我修改了 ConfigureService 方法:

public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();
            services.AddDbContext<LocaldbContext>(options =>
                options.UseSqlServer(Configuration.GetConnectionString("Localtest")));
        }

这是一个测试控制器:

using WebApplication1.Data;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using System;
using System.Linq;
using System.Threading.Tasks;

namespace WebApplication1.Controllers
{
    public class LocaldbController : Controller
    {
        private readonly LocaldbContext _context;
        public LocaldbController(LocaldbContext context)
        {
            _context = context;
        }

        [HttpGet("/getUser")]
        public async Task<IActionResult> Index(string searchString)
        {
            var users = from m in _context.user
                        select m;

            if (!String.IsNullOrEmpty(searchString))
            {
                users = users.Where(s => s.user_name.Contains(searchString));
            }
            return Ok(await users.ToListAsync());
        }
    }
}

和 Dbcontext 文件:

using WebApplication1.Models;
using Microsoft.EntityFrameworkCore;

namespace WebApplication1.Data
{
    public class LocaldbContext: DbContext
    {
        public LocaldbContext(DbContextOptions<LocaldbContext> options) : base(options){}

        public DbSet<LocalMallUser> user { get; set; }
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.Entity<LocalMallUser>().ToTable("MallUser");
        }
    }
}