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

时间:2018-07-02 00:49:38

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

我正在遵循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。我什至尝试为Microsoft.VisualStudio.Web.CodeGeneration.Tools添加具有版本2.1.0-preview1-final(最新版​​本)和2.0.4的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>

3 个答案:

答案 0 :(得分:11)

遍历各个站点并在高级开发人员的帮助下,我终于能够解决此问题。我发现用于模型构架的代码生成工具在2.1版本中成为全局的.NET Core CLI工具。因此,与其仅添加软件包参考,不如将其全局安装。有关更多详细信息,请参见https://github.com/aspnet/Docs/issues/6894。全局安装代码生成工具的命令是:

  

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

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

答案 1 :(得分:0)

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

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

它没有满足我的要求:与您发现的结果相同。

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

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

它正在运行! :)(适用于2.1版本)

答案 2 :(得分:0)

正如兰吉普所说:

dotnet tool install --global dotnet-aspnet-codegenerator

在下一步中,您可能会遇到这样的事实,当您尝试使用以下任何一种方法时,代码生成器cmd不会列出其生成器:

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

解决方案是还要命名您要处理的项目。即使您在Package Manager控制台中使用下拉菜单中选择了正确的项目,也必须执行此操作。

这将起作用:

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