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



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

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

  1. 右键单击控制器文件夹。
  2. 加。
  3. 新建脚手架项目。
  4. 带有视图的 MVC 控制器,使用实体框架。
  5. 选择模型、数据库上下文、控制器名称。
  6. 加。

然后我得到这个 错误

这是 .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>

如果您需要任何进一步的信息,请告诉我。

您不应该在看起来像 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>

最新更新