Microsoft.VisualStudio.Web.CodeGeneration.Design dotnet aspnet-codegenerator 工具未找到
Microsoft.VisualStudio.Web.CodeGeneration.Design not being found by the dotnet aspnet-codegenerator tool
我刚刚使用 dotnet new mvc --name test-project
(netcoreapp3.1
) 创建了一个 MVC 应用程序,没有任何类型的数据库访问和身份,我想手动添加它们以进行自定义。然后我添加了一些包以使用 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.
即使我使用 -p
标志指定 .csproj
文件,我仍然会收到相同的消息。
在做一些研究时,我在他们的回购协议中发现 this 问题,但这是另一回事:OP 试图使用 3.1 脚手架版本将脚手架添加到 .NET Core App 3.0。
我在 Xubuntu 20.04 上使用 dotnet 3.1.401。
有什么想法吗?提前谢谢你。
编辑 1
有些人建议这将接近我们所拥有的 ,但事实是:我知道它的作用并且我实际上添加了那篇文章中建议的“全局工具”。问题是 aspnet-codegenerator
没有检测到我已经拥有它需要的库,添加到 .csproj
文件中。
编辑 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 on the issue 所提到的,有这个问题的人应该根据 runtime/target:
更新它的包
Use dotnet tool update dotnet-aspnet-codegenerator -g --version 3.1.5/5.0.2 depending on if you are targeting .netcoreapp3.1 or net5.0. [...] You will also need to update the Microsoft.VisualStudio.Web.CodeGeneration.Design package as well.
我刚刚使用 dotnet new mvc --name test-project
(netcoreapp3.1
) 创建了一个 MVC 应用程序,没有任何类型的数据库访问和身份,我想手动添加它们以进行自定义。然后我添加了一些包以使用 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.
即使我使用 -p
标志指定 .csproj
文件,我仍然会收到相同的消息。
在做一些研究时,我在他们的回购协议中发现 this 问题,但这是另一回事:OP 试图使用 3.1 脚手架版本将脚手架添加到 .NET Core App 3.0。
我在 Xubuntu 20.04 上使用 dotnet 3.1.401。
有什么想法吗?提前谢谢你。
编辑 1
有些人建议这将接近我们所拥有的 aspnet-codegenerator
没有检测到我已经拥有它需要的库,添加到 .csproj
文件中。
编辑 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 on the issue 所提到的,有这个问题的人应该根据 runtime/target:
更新它的包Use dotnet tool update dotnet-aspnet-codegenerator -g --version 3.1.5/5.0.2 depending on if you are targeting .netcoreapp3.1 or net5.0. [...] You will also need to update the Microsoft.VisualStudio.Web.CodeGeneration.Design package as well.