错误:包还原失败

use*_*446 15 c# telerik asp.net-core

我正在尝试在 Asp.net Core 项目中将控制器添加到我的解决方案中。

这样做时,我收到此错误。

在此处输入图片说明

在此处输入图片说明

我收到相同的消息,为控制器添加最小依赖项和完全依赖项。

请帮我解决这个问题。提前致谢。

Sco*_*can 34

我也有这个问题。“使用实体框架添加控制器>带有操作的 API 控制器”会给出“包恢复失败”错误。

正如 Anish 所说,这似乎是由于软件包版本未对齐。我能够使用“管理解决方案的 NUGET 包”来解决这个问题,然后执行“全部更新”。这将我的 AspNetCore 版本设置为 2.1.5 并解决了我的“Package Restore Failed”错误,但随后导致了另一个错误“NETCore version 2.1.5 not found”。显然,脚手架代码生成器需要 AspNetCore 和 NETCore 版本同步,所以我从 Microsoft 下载手动下载并安装了 NETCore 2.1.5 版。这奏效了,我终于能够生成控制器。


Say*_*ood 14

如果没有答案适合您,请尝试从命令行运行代码生成器。

对于我的具有多个项目的 sln,使用net 5 以及一些 5.0.5 和一些 5.0.2 的 NuGet 包,只有通过命令行的代码生成器才有效。确保它已安装。

或者通过以下命令安装

dotnet tool install -g dotnet-aspnet-codegenerator
Run Code Online (Sandbox Code Playgroud)

或通过以下命令更新

dotnet tool update -g dotnet-aspnet-codegenerator
Run Code Online (Sandbox Code Playgroud)

基本的代码生成器命令可以在这里找到

他们之中有一些是:

Generator           Operation
area                Scaffolds an Area
controller          Scaffolds a controller
identity            Scaffolds Identity
razorpage           Scaffolds Razor Pages
view                Scaffolds a view
Run Code Online (Sandbox Code Playgroud)

例如:

dotnet-aspnet-codegenerator identity --dbContext MyDbContextClass
Run Code Online (Sandbox Code Playgroud)

要获得帮助:

dotnet-aspnet-codegenerator [YourGenerator] -h
Run Code Online (Sandbox Code Playgroud)

  • 谢谢 !唯一对我有用的解决方案。这些参数与您的示例不同。对我有用的: dotnet-aspnet-codegenerator razorpage -dc MyContext -m MyModel -udl -outDir Areas/MyModel (2认同)
  • 该命令显示缺少什么包。添加后,它确实生成了文件! (2认同)

小智 9

我在制作新控制器时遇到了同样的错误。我是这样修的。实际上,VS只有离线包源,无法解析需要的包。

添加在线参考:工具> nuget 包管理器> 包管理器设置> 包源

添加源:https : //api.nuget.org/v3/index.json


nit*_*nde 7

  1. VS2019 [5.0]。

  2. 更新 NuGet 包(工具 -> Nuget 包管理器 -> 管理解决方案的 NuGet 包 -> 单击更新选项卡,选择所有并运行更新。

  3. 解决方案 -> 清洁

  4. 解决方案 -> 构建

  5. 创建一个控制器。

我尝试了一切,但上述方法对我有用


waz*_*dev 7

我在使用 net5.0 时遇到了这个问题,特别是针对某些依赖项的 5.0.5 版。我将我的 nuget 包从 5.0.5 降级到 5.0.4:

"Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="5.0.4"
"Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="5.0.4"
"Microsoft.AspNetCore.Identity.UI" Version="5.0.4" 
"Microsoft.EntityFrameworkCore.Tools" Version="5.0.4"
Run Code Online (Sandbox Code Playgroud)


Dax*_*xxy 5

我最近遇到了同样的问题。

我最终通过查看解决方案中包含的每个单独的 .csproj 文件并修复包含的所有 Microsoft 库版本来解决该问题。

我将引用的元包从“Microsoft.AspNetCore.All”更改为“Microsoft.AspNetCore.App”,然后在 nuget 上加载“App”包的引用列表,并删除了对已包含的库的任何引用在元包中。

然后,我确保修复了所有未完成包的版本,以匹配项目自动选择的元包版本,即在我的例子中为 2.2.0。

让我困惑的是,如果您的解决方案中包含多个项目,您需要确保它们引用相同的元包,就好像您的解决方案中包含的项目之间存在版本不匹配一样,您也会遇到此问题。

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.All" Version="2.2.5" />
    <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="2.2.0" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.2.0" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.2.3" />
  </ItemGroup>
Run Code Online (Sandbox Code Playgroud)

改成这样了。

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.App" />
    <PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.2.0" PrivateAssets="All" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.2.0" />
  </ItemGroup>
Run Code Online (Sandbox Code Playgroud)


Aam*_*mir 0

我也遇到了同样的问题,这是我解决问题的方法

运行所选代码生成时出错,“包恢复失败”。回滚网络包变更”

1 - 检查您的解决方案是否有多个项目,请检查他们的目标 Dot.net Framework。(在我的例子中,它是用于类库的 .Net Standard 1.6 和用于 Web 项目的 .NetCoreApp 1.0,我将其更改为 .NetCoreApp 1.1)

2 - 拥有相同的框架后,清理 Web 项目,重建并添加新的控制器。

如果成功则不然您可能会遇到另一个错误,例如

'运行代码生成器时出错:'找不到与命令“dotnet-aspnet-codegenerator”匹配的可执行文件''

如果您有project.json文件,请打开它,否则请在记事本中 打开.csproj.user 项目,请添加以下内容 。请注意,根据您的.net 版本,您可能有不同的版本号。

如果您的项目中生成了ScaffoldingReadMe.txt文件,您可以在该文件中找到说明