我正在阅读Microsoft文档中针对.Net Core 3.1 SDK的基本TodoList API教程。我已经在本教程中达到了这一点:https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-web-api?view=aspnetcore-3.1&tabs=visual-studio-code#scaffold-a-controller
全局安装aspnet-codegenerator工具后,确保它在正确的路径'User.dotnet \ tools'中,尝试使用旧版本,重新启动VScode和powershell,它仍然会出现以下错误:
“无法执行,因为找不到指定的命令或文件。 可能的原因包括: *您拼写了内置的dotnet命令。 *您打算执行.NET Core程序,但dotnet-aspnet-codegenerator不存在。 *您打算运行全局工具,但是不能使用具有该名称的dotnet前缀可执行文件 在PATH上找到。”
我正在尝试使用以下命令来搭建待办事项控制器: “ dotnet aspnet代码生成器控制器-名称TodoItemsController -async -api -m TodoItem -dc TodoContext -outDir控制器”
答案 0 :(得分:0)
确保已将这些NuGet程序包添加到用作启动项目的项目中。
dotnet add package Microsoft.VisualStudio.Web.CodeGeneration.Design
dotnet add package Microsoft.EntityFrameworkCore.Design
答案 1 :(得分:0)
我正在使用VSCodes终端,但找不到该工具。当我在Windows计算机上使用cmd时,它可以工作。
答案 2 :(得分:0)
在与我类似的情况下,这可能会帮助一些人。我也遵循同样的教程,并在“将控制器脚手架”步骤卡住了。
由于某种原因,我发现我的NuGet包源仅在“ Microsoft Visual Studio脱机包”模式下配置。显然,这是Visual Studio完整版某些安装的默认(??)配置。
依次输入以下命令(遵循本教程中的VS Code步骤):
dotnet工具安装--global dotnet-aspnet-codegenerator
它失败并显示一条错误消息,因为此软件包的(本地)版本确实旧并且与 netcoreapp3.1 目标框架不兼容。
要解决此问题,...我打开了完整的Visual Studio IDE并导航至:
Picture of NuGet Package Manager Settings - Under Package Source Option
现在正确配置了NuGet,可以检查在线站点了……我在VS Code-Terminal窗口中重新执行了上述命令,并正确地提取了必要的软件包。我能够继续进行本教程中的后续步骤(包括TodoItemsController类的生成)。
答案 3 :(得分:0)
添加这个包对我有用。
dotnet tool install --global dotnet-aspnet-codegenerator --version 5.0.2
然后在 Visual Studio CodeIDE 中从 CLI 生成控制器,如下所示:
dotnet aspnet-codegenerator controller -name MoviesController -m Movie -dc MvcMovieContext --relativeFolderPath Controllers --useDefaultLayout --referenceScriptLibraries
还要检查以下在 public void ConfigureServices(IServiceCollection services) 中添加的内容:
services.AddDbContext<MvcMovieContext>(options =>
options.UseSqlite(Configuration.GetConnectionString("MvcMovieContext")));