【问题标题】:Microsoft.VisualStudio.Web.CodeGeneration.Design not being found by the dotnet aspnet-codegenerator tooldotnet aspnet-codegenerator 工具未找到 Microsoft.VisualStudio.Web.CodeGeneration.Design
【发布时间】:2020-12-06 00:08:34
【问题描述】:

我刚刚使用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 有人建议这将接近我们所拥有的 here,但问题是:我知道它的作用,并且我实际上添加了该文章中建议的“全局工具”。问题是aspnet-codegenerator 没有检测到我已经拥有它需要的库,添加到.csproj 文件中。

编辑 1

显然,有几个人也面临这个问题,所以,我在他们的 repo 上提交了issue

【问题讨论】:

  • 您之前是否恢复过软件包? dotnet restore
  • @tym32167 是的,我做到了。即使在做了dotnet cleandotnet restoredotnet build 之后,它在这里也不起作用,不幸的是
  • @RoarS。不幸的是没有。请参考我的编辑。无论如何,谢谢你的建议。

标签: c# asp.net-core .net-core code-generation asp.net-core-scaffolding


【解决方案1】:

这已经有几个月了,但我最近在我的所有项目中都遇到了它。

如果其他人登陆此页面,我的解决方案(MAC OS)是卸载并重新安装dotnet-aspnet-codegenerator

在终端运行:

dotnet tool uninstall --global dotnet-aspnet-codegenerator

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

相关话题here

【讨论】:

  • 嗨@Blondu。谢谢你的回答。这没有用。首先,因为我在 Linux 上。其次,如果您参考我在他们的仓库中创建的问题(问题中的链接),我已经尝试过这样做。
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2020-08-28
    • 2019-05-09
    • 1970-01-01
    • 2020-12-14
    • 2022-01-10
    • 1970-01-01
    • 2018-12-10
    • 1970-01-01
    • 2017-10-20
    相关资源
    最近更新 更多