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)
小智 9
我在制作新控制器时遇到了同样的错误。我是这样修的。实际上,VS只有离线包源,无法解析需要的包。
添加在线参考:工具> nuget 包管理器> 包管理器设置> 包源
添加源:https : //api.nuget.org/v3/index.json
VS2019 [5.0]。
更新 NuGet 包(工具 -> Nuget 包管理器 -> 管理解决方案的 NuGet 包 -> 单击更新选项卡,选择所有并运行更新。
解决方案 -> 清洁
解决方案 -> 构建
创建一个控制器。
我尝试了一切,但上述方法对我有用
我在使用 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)
我最近遇到了同样的问题。
我最终通过查看解决方案中包含的每个单独的 .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)
我也遇到了同样的问题,这是我解决问题的方法
运行所选代码生成时出错,“包恢复失败”。回滚网络包变更”
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文件,您可以在该文件中找到说明
| 归档时间: |
|
| 查看次数: |
23884 次 |
| 最近记录: |