我正在遵循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>
答案 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
它没有满足我的要求:与您发现的结果相同。
选择好的安装程序版本 所以我决定:
它正在运行! :)(适用于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"