在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
Objective-C 新手,在 Xcode 包中找不到 Foundation 工具