dotnet aspnet-codegenerator工具找不到Microsoft.VisualStudio.Web.CodeGeneration.Design

问题描述

我刚刚使用[ server_cert ]<br> basicConstraints = critical,CA:FALSE<br> nsCertType = server<br> subjectKeyIdentifier = hash<br> authorityKeyIdentifier = keyid,issuer:always<br> keyUsage = critical,digitalSignature,keyEncipherment<br> extendedKeyUsage = serverAuth<br> <br> dotnet new mvc --name test-project)创建了一个MVC应用程序,没有任何类型的数据库访问权限和身份标识,我希望手工添加这些属性以用于自定义目的。然后,我添加了一些软件包以使用netcoreapp3.1工具。我的dotnet aspnet-codegenerator看起来像这样:

.csproj

如您所见,<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>netcoreapp3.1</TargetFramework> <RootNamespace>test_project</RootNamespace> </PropertyGroup> <ItemGroup> <packagereference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.1.4" /> <packagereference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="3.1.7" /> <packagereference Include="Microsoft.AspNetCore.Identity.UI" Version="3.1.7" /> <packagereference Include="Microsoft.EntityFrameworkCore" Version="3.1.7" /> <packagereference Include="Microsoft.EntityFrameworkCore.Design" Version="3.1.7"> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <PrivateAssets>all</PrivateAssets> </packagereference> <packagereference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.1.7"> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <PrivateAssets>all</PrivateAssets> </packagereference> <packagereference Include="Newtonsoft.Json" Version="12.0.3" /> <packagereference Include="Npgsql.EntityFrameworkCore.Postgresql" Version="3.1.4" /> <packagereference Include="Npgsql.EntityFrameworkCore.Postgresql.Design" Version="1.1.0" /> </ItemGroup> </Project> 是列表中的第一位。但是,当我尝试通过Microsoft.VisualStudio.Web.CodeGeneration.Design工具运行任何脚手架时(例如:dotnet aspnet-codegenerator),我收到以下消息:

dotnet aspnet-codegenerator identity -h

即使我使用No code generators are available in this project.Add Microsoft.VisualStudio.Web.CodeGeneration.Design package to the project as a NuGet package reference.标志指定了.csproj文件,我仍然收到相同的消息。 在做一些研究时,我发现他们的仓库中有this个问题,但这是另一回事:OP试图使用3.1脚手架版本将脚手架添加到.NET Core App 3.0。

我在Xubuntu 20.04上使用dotnet 3.1.401。

有什么想法吗?预先谢谢你。

编辑1 有人认为这将接近我们拥有的here,但问题是:我知道它的作用,实际上我添加了该文章中建议的“全局工具”。问题是-p无法检测到我已经拥有了它所需要的库,并已将其添加aspnet-codegenerator文件中。

编辑1

显然,也有一些人也面临这个问题,因此,我在其回购中提交了issue

解决方法

这已经有几个月的历史了,但是最近我所有的项目都碰到了它。

万一有人登陆该页面,我的解决方案(MAC OS)是卸载并重新安装dotnet-aspnet-codegenerator

在终端中运行:

dotnet tool uninstall --global dotnet-aspnet-codegenerator

dotnet tool install --global dotnet-aspnet-codegenerator --version 3.1.4

相关主题here

,

正如我上面在问题中提到的 maintainer 上的存储库 issue 所提到的,有这个问题的人应该根据运行时/目标更新其包:

使用 dotnet tool update dotnet-aspnet-codegenerator -g --version 3.1.5/5.0.2,具体取决于您的目标是 .netcoreapp3.1 还是 net5.0。 [...] 您还需要更新 Microsoft.VisualStudio.Web.CodeGeneration.Design 包。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...