在 mac 中未找到匹配命令 "dotnet-aspnet-codegenerator" asp.net 核心 2.1 项目的可执行文件
No executable found matching command "dotnet-aspnet-codegenerator" asp.net core 2.1 project in mac
我正在学习 https://docs.microsoft.com/en-us/aspnet/core/tutorials/razor-pages-mac/model?view=aspnetcore-2.1 中关于在 mac 中创建 asp.net 核心 2.1 项目的教程。尝试构建模型时出现错误:
No executable found matching command "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,但它导致了另一个错误:
Version for package Microsoft.VisualStudio.Web.CodeGeneration.Tools
could not be resolved.
我错过了什么?如何解决这个问题?
我正在使用的包参考:
<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>
在浏览了各种网站并在高级开发人员的帮助下,我终于解决了这个问题。我发现用于模型脚手架的代码生成工具在 2.1 版本中成为了一个全局的 .NET Core CLI 工具。因此,与其仅仅添加包引用,还不如全局安装。有关详细信息,请参阅 https://github.com/aspnet/Docs/issues/6894。全局安装代码生成工具的命令为:
dotnet tool install --global dotnet-aspnet-codegenerator
它将安装最新版本的代码生成工具。
在这里,我在框架.net 核心上使用 2.1.4。
所以,我需要工具 dotnet-aspnet-codegenerator 的 2.1。
第一个假设
我决定指定我的项目的 .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 版本)
正如兰吉普所说:
dotnet tool install --global dotnet-aspnet-codegenerator
在下一步中,您可能会遇到这样一个事实:当您尝试以下任何一种方法时,代码生成器 cmd 将不会列出其生成器:
dotnet aspnet-codegenerator -h
dotnet-aspnet-codegenerator -h
解决方案是同时命名您要处理的项目。即使您在包管理器控制台中工作并在下拉列表中选择了正确的项目,您也必须这样做。
这会起作用:
dotnet-aspnet-codegenerator -h -p "C:\Projects\MyProject.csproj"
我正在学习 https://docs.microsoft.com/en-us/aspnet/core/tutorials/razor-pages-mac/model?view=aspnetcore-2.1 中关于在 mac 中创建 asp.net 核心 2.1 项目的教程。尝试构建模型时出现错误:
No executable found matching command "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,但它导致了另一个错误:
Version for package
Microsoft.VisualStudio.Web.CodeGeneration.Tools
could not be resolved.
我错过了什么?如何解决这个问题?
我正在使用的包参考:
<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>
在浏览了各种网站并在高级开发人员的帮助下,我终于解决了这个问题。我发现用于模型脚手架的代码生成工具在 2.1 版本中成为了一个全局的 .NET Core CLI 工具。因此,与其仅仅添加包引用,还不如全局安装。有关详细信息,请参阅 https://github.com/aspnet/Docs/issues/6894。全局安装代码生成工具的命令为:
dotnet tool install --global dotnet-aspnet-codegenerator
它将安装最新版本的代码生成工具。
在这里,我在框架.net 核心上使用 2.1.4。 所以,我需要工具 dotnet-aspnet-codegenerator 的 2.1。
第一个假设 我决定指定我的项目的 .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 版本)
正如兰吉普所说:
dotnet tool install --global dotnet-aspnet-codegenerator
在下一步中,您可能会遇到这样一个事实:当您尝试以下任何一种方法时,代码生成器 cmd 将不会列出其生成器:
dotnet aspnet-codegenerator -h
dotnet-aspnet-codegenerator -h
解决方案是同时命名您要处理的项目。即使您在包管理器控制台中工作并在下拉列表中选择了正确的项目,您也必须这样做。
这会起作用:
dotnet-aspnet-codegenerator -h -p "C:\Projects\MyProject.csproj"