当我在 Asp.net Core (MVC) 中构建控制器时,出现代码生成错误
When I scaffold a controller in Asp.net Core (MVC), I get a Code generation error
我正在使用 Visual Studio 2017 开发 Web 应用程序(Asp.net Core 2.0 MVC),然后我转到 Visual Studio 2019。然后我将目标框架从 .NET Core 更改为2.0 到 .NET 核心 2.2。
之后,我使用 (Scaffold-DbContext) 命令从数据库创建了模型。
然后我执行了后续步骤:
- 右键单击控制器文件夹。
- 添加。
- 新脚手架项目。
- 带视图的 MVC 控制器,使用 Entity Framework。
- Select 模型、DbContext、控制器名称。
- 添加。
然后我明白了
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>
如果您需要任何进一步的信息,请告诉我。
你不应该在看起来像 2.2 版应用程序的地方使用 Microsoft.EntityFrameworkCore.Tools
或 Microsoft.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>
我正在使用 Visual Studio 2017 开发 Web 应用程序(Asp.net Core 2.0 MVC),然后我转到 Visual Studio 2019。然后我将目标框架从 .NET Core 更改为2.0 到 .NET 核心 2.2。 之后,我使用 (Scaffold-DbContext) 命令从数据库创建了模型。
然后我执行了后续步骤:
- 右键单击控制器文件夹。
- 添加。
- 新脚手架项目。
- 带视图的 MVC 控制器,使用 Entity Framework。
- Select 模型、DbContext、控制器名称。
- 添加。
然后我明白了 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>
如果您需要任何进一步的信息,请告诉我。
你不应该在看起来像 2.2 版应用程序的地方使用 Microsoft.EntityFrameworkCore.Tools
或 Microsoft.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>