当我在Asp.net Core(MVC)中搭建控制器时,出现代码生成错误

时间:2019-06-06 23:17:49

标签: c# asp.net-mvc code-generation visual-studio-2019 asp.net-core-scaffolding

我正在使用Visual Studio 2017开发Web应用程序(Asp.net Core 2.0 MVC),然后转移到Visual Studio2019。然后将目标框架从.NET Core 2.0更改为.NET Core 2.2。 之后,我使用(Scaffold-DbContext)命令从数据库创建了模型。

然后我按照后续步骤操作:

  1. 右键单击控制器文件夹。
  2. 添加。
  3. 新脚手架物品。
  4. 使用实体框架的具有视图的MVC控制器。
  5. 选择模型,DbContext,控制器名称。
  6. 添加。

然后我得到这个 Error

这是.csproj文件的一部分:

<ItemGroup>
  <PackageReference Include="Microsoft.AspNetCore.All" Version="2.2.5" />
  <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.0.0-preview5.19227.1" PrivateAssets="All" />
  <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.0.0-preview5-19264-04" PrivateAssets="All" />
</ItemGroup>

<ItemGroup>
  <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.1" />
  <DotNetCliToolReference Include="Microsoft.Extensions.SecretManager.Tools" Version="2.0.0" />
  <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.2" />
</ItemGroup>

如果您需要其他任何信息,请告诉我。

1 个答案:

答案 0 :(得分:1)

在看起来像2.2版应用程序的情况下,您不应使用Microsoft.EntityFrameworkCore.ToolsMicrosoft.VisualStudio.Web.CodeGeneration.Design的3.0.0-preview5.19227.1版本程序包,您需要使用2.2.x版本的这些包裹。

尝试将版本更改为以下版本:

<ItemGroup>
  <PackageReference Include="Microsoft.AspNetCore.All" Version="2.2.5" />
  <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.2.4" PrivateAssets="All" />
  <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.2.3" PrivateAssets="All" />
</ItemGroup>