在mac中找不到匹配命令“dotnet-aspnet-codegenerator”asp.net core 2.1项目的可执行文件

Posted

技术标签:

【中文标题】在mac中找不到匹配命令“dotnet-aspnet-codegenerator”asp.net core 2.1项目的可执行文件【英文标题】:No executable found matching command "dotnet-aspnet-codegenerator" asp.net core 2.1 project in mac 【发布时间】:2018-12-10 04:50:02 【问题描述】:

我正在关注来自https://docs.microsoft.com/en-us/aspnet/core/tutorials/razor-pages-mac/model?view=aspnetcore-2.1 的关于在 mac 中创建 asp.net core 2.1 项目的教程。尝试搭建模型时出现错误:

找不到匹配命令“dotnet-aspnet-codegenerator”的可执行文件

不同网站上的大多数解决方案都建议对 Microsoft.VisualStudio.Web.CodeGeneration.Tools 使用 DotNetCliToolReference,但这没有帮助。但是,提到可以在 asp.net core 2.1 https://docs.microsoft.com/en-us/aspnet/core/migration/20_21?view=aspnetcore-2.1 中删除所有 DotNetCliToolReference。我什至尝试使用 2.1.0-preview1-final(最新版​​本)和 2.0.4 版本为 Microsoft.VisualStudio.Web.CodeGeneration.Tools 添加 DotNetCliToolReference,但它导致了另一个错误:

无法解析软件包 Microsoft.VisualStudio.Web.CodeGeneration.Tools 的版本。

我错过了什么?如何解决这个问题?

我正在使用的包参考:

<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.3" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.1.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="2.1.0" />
<PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.1.0-preview1-final" />
</ItemGroup>

【问题讨论】:

【参考方案1】:

在浏览了各种网站并在高级开发人员的帮助下,我终于能够解决这个问题。我发现用于模型脚手架的代码生成工具在 2.1 版本中成为了一个全球性的 .NET Core CLI 工具。因此,不应仅添加包引用,而应将其安装在全局范围内。有关详细信息,请参阅https://github.com/aspnet/Docs/issues/6894。全局安装代码生成工具的命令是:

dotnet 工具安装 --global dotnet-aspnet-codegenerator

它将安装最新版本的代码生成工具。

【讨论】:

【参考方案2】:

正如兰吉普所说:

dotnet tool install --global dotnet-aspnet-codegenerator

在下一步中,您可能会遇到这样一个事实,即当您尝试以下任何一种操作时,代码生成器 cmd 都不会列出其生成器:

dotnet aspnet-codegenerator -h
dotnet-aspnet-codegenerator -h

解决方案是同时命名您要处理的项目。即使您在 Package Manager Console 中工作并在下拉列表中选择了正确的项目,您也必须这样做。

这将起作用:

dotnet-aspnet-codegenerator -h -p "C:\Projects\MyProject.csproj"

【讨论】:

没有第一个破折号就可以工作......所有官方文档都包括dotnet-asp......【参考方案3】:

在这里,我在框架 .net 核心上使用 2.1.4。 所以,我需要2.1的dotnet-aspnet-codegenerator工具。

第一个假设 我决定指定我的项目的 .net 框架,并创建了一个 global.json 文件: dotnet new globaljson --sdk-version 2.1.401

它没有达到我想要的效果:与您找到的结果相同。

选择好的安装程序版本 所以我决定:

删除 .store 目录中第一个安装的可执行文件 安装2.1版本的工具:dotnet tool install --global dotnet-aspnet-codegenerator --version 2.1.0

它正在运行! :) (当然是 2.1 版本)

【讨论】:

以上是关于在mac中找不到匹配命令“dotnet-aspnet-codegenerator”asp.net core 2.1项目的可执行文件的主要内容,如果未能解决你的问题,请参考以下文章

在 Mac 中找不到 phmymyadmin.config.php

在 Xcode 4.6 中找不到 Mac 安装程序证书

Objective-C 新手,在 Xcode 包中找不到 Foundation 工具

在 PATH 中找不到“g++”[已安装 mac/Eclipse/XCODE/CDT]

在 Mac 上构建后在电子应用程序中找不到模块

出现错误 - 在用户表中找不到任何匹配的行