ASP.NET Core CRUD 工具:未找到但实际安装的命令

Posted

技术标签:

【中文标题】ASP.NET Core CRUD 工具:未找到但实际安装的命令【英文标题】:ASP.NET Core CRUD tool: command not found but actually installed 【发布时间】:2020-02-01 14:02:43 【问题描述】:

我正在学习 ASP.net,所以我正在阅读 https://docs.microsoft.com/fr-fr/aspnet/core/tutorials/razor-pages/model?view=aspnetcore-3.0&tabs=visual-studio-code 并且在 支架电影模型部分中,我必须安装并运行 CRUD 工具(ASP.net Core dotnet- aspnet 代码生成器)。 我遇到的问题是我无法使用他们的工具,输出错误;但是我可以安装它。下面是详细信息。

所以我按照三步教程来使用这个 CRUD 代码生成器(上面给出的链接)。我引用:

    在项目目录(包含 Program.cs、Startup.cs 和 .csproj 文件的目录)中打开命令窗口。

✔ 成功了。

    安装脚手架工具:dotnet tool install --global dotnet-aspnet-codegenerator

✔ 它有效,现在如果我尝试重新安装它,它会输出它已经安装。

    对于 macOS 和 Linux:运行以下命令:dotnet aspnet-codegenerator razorpage -m Movie -dc RazorPagesMovieContext -udl -outDir Pages/Movies --referenceScriptLibraries

????它不起作用。 这是输出错误:

无法执行,因为找不到指定的命令或文件。 可能的原因包括: * 你拼错了一个内置的 dotnet 命令。 * 您打算执行 .NET Core 程序,但 dotnet-dotnet-aspnet-codegenerator 不存在。 * 您打算运行一个全局工具,但在 PATH 上找不到具有此名称的 dotnet 前缀可执行文件。

问题:如何调试它以使该命令正常工作?

【问题讨论】:

你确定你运行的是dotnet aspnet-codegenerator吗?你的错误说:dotnet-dotnet-aspnet-codegenerator does not exist 所以看起来你试图运行:dotnet dotnet-aspnet-codegenerator 是的,我已经运行了:dotnet aspnet-codegenerator razorpage -m Movie -dc RazorPagesMovieContext -udl -outDir Pages\Movies --referenceScriptLibraries AND dotnet-aspnet-codegenerator razorpage -m Movie -dc RazorPagesMovieContext -udl -outDir Pages\Movies --referenceScriptLibraries AND dotnet dotnet-aspnet-codegenerator razorpage -m Movie -dc RazorPagesMovieContext -udl -outDir Pages\Movies --referenceScriptLibraries - 这三个命令都不起作用。 :( 哦,哦...“由于您刚刚安装了 .NET Core SDK,因此在运行您安装的工具之前,您需要注销或重新启动会话。” - 我没看,这是安装代码生成器时 CLI 输出的。 更新: 代码生成器的 3.0.0 和 2.1.10 版本都没有解决我的问题(我重新运行我的计算机和 Ubuntu 会话):( ... 【参考方案1】:

export PATH=$HOME/.dotnet/tools:$PATH 是必需的,如 Core MVC (https://docs.microsoft.com/fr-fr/aspnet/core/tutorials/first-mvc-app/adding-model?view=aspnetcore-3.0&tabs=visual-studio-code) 所示。 Core Razor 忘记了这个指示。 . .

【讨论】:

我在 Windows 10 系统上遇到了同样的问题。在这种情况下,使用 set PATH=$HOME/.dotnet/tools:$PATH 并重新启动 powershell 应该会有所帮助。 谢谢。我不再从事这个项目,所以我无法测试你的解决方案。但是谢谢:)【参考方案2】:

有时最新版本可能不一致。尝试使用旧版本,看看是否有任何区别。从当前版本之前的最高版本开始,然后继续寻找真正有效的版本。如何安装旧版本:

dotnet tool install --global dotnet-aspnet-codegenerator --version version

您可以在 nuget 页面中找到版本历史记录:https://www.nuget.org/packages/dotnet-aspnet-codegenerator/

【讨论】:

我应该在使用你的命令之前卸载最后一个版本的代码生成器吗?:) @JarsOfJam-Scheduler 刚刚更新了我的答案。尝试比您当前更旧的最新版本。这类问题在 core3.0 版本中非常常见。 好吧 1) 我卸载了它(使用 dotnet tool uninstall --global dotnet-aspnet-codegenerator)然后 2) 我安装了旧版本 (dotnet tool install --global dotnet-aspnet-codegenerator --version 2.2.4) 但 3) 我得到了同样的错误:( @JarsOfJam-Scheduler 真是太糟糕了。可能是别的东西。但只是为了确保在放手之前尝试 2.1 范围内的某个版本:) 相同:/(我尝试使用 2.1.10)。我认为有一个关于命令名称的 pb。在微软的文档中,它说要运行:dotnet aspnet-codegenerator razorpage。但是:安装代码生成器后,我的 CLI 指示我运行:dotnet-aspnet-codegenerator。什么是正确的命令?然而,两者都不起作用:它们是否有任何第三个命令要运行?【参考方案3】:

在 Windows 10 上

在我的情况下,安装程序将错误的路径添加到 Path 环境变量。 添加的路径指向程序下不存在的文件夹。它需要指向dotnet-aspnet-codegenerator.exe。 对我来说,正确的路径在我的用户文件夹中:~\.dotnet\tools

您可以通过运行检查是否添加了正确的路径:echo $env:Path 如果路径丢失或不正确,您只需将正确的路径添加到Path 系统环境变量即可。

您也许可以通过使用 PowerShell 设置本地变量来进行测试:$env:Path += ";C:\Users\<YOUR_NAME_HERE>\.dotnet\tools"但我还没有尝试过。


全局修复

    开始在 Windows 搜索中输入 Environment,您应该会看到 Control panel 选项到 Edit system environment variables。 点击右下角的Environment Variables...按钮。 在System variables 下找到并选择Path 变量,然后单击Edit。 检查dotnet-aspnet-codegenerator.exe的路径是否存在,如果没有,请单击New并添加它。 重新启动计算机。

【讨论】:

【参考方案4】:

哦,哦...“由于您刚刚安装了 .NET Core SDK,因此您需要先注销或重新启动会话,然后才能运行您安装的工具。” - 我没看,这是安装代码生成器时 CLI 输出的。

更新: 代码生成器的 3.0.0 和 2.1.10 版本都没有解决我的问题(我重新运行我的计算机和 Ubuntu 会话):(...

【讨论】:

@Anand 你应该看看底部的答案:)

以上是关于ASP.NET Core CRUD 工具:未找到但实际安装的命令的主要内容,如果未能解决你的问题,请参考以下文章

低码asp.net core 实体类可生产 CRUD 后台管理界面

为 dotnet core asp.net 运行 CRUD 脚手架时出错

如何使用 ASP.NET Core 更新由依赖表组成的记录 [关闭]

Asp.Net Core 3.1 数据被检索但未保存到数据库中

该程序无法找到 MediatR 查询 ASP.Net Core 的处理程序

使用 Kendo UI Asp.net mvc core 未显示图表组件