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 数据被检索但未保存到数据库中