【问题标题】:No executable found matching command "dotnet-aspnet-codegenerator" asp.net core 2.1 project in mac在mac中找不到匹配命令“dotnet-aspnet-codegenerator”asp.net core 2.1项目的可执行文件
【发布时间】: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>

【问题讨论】:

    标签: c# asp.net asp.net-core asp.net-core-2.1


    【解决方案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 版本)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-13
        • 1970-01-01
        相关资源
        最近更新 更多