最近有.net的项目。用到了Entity Framework,先简单地学习一下的时候,遇到了点问题。
版本不匹配,详见下图
工具->NuGet包管理器->程序包管理器控制台 中执行如下命令的时候,均告失败。
代码语言:text复制Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design
Install-Package Microsoft.EntityFrameworkCore.Design
Install-Package Microsoft.EntityFrameworkCore.SqlServer
失败的截图如下:
原因:
从失败原因来看,是缺省安装的【Microsoft.VisualStudio.Web.CodeGeneration.Design】的版本为7.0.0,与项目的版本不一致,项目版本为net6.0
解决方法:
在如下link中,可以看到该包的所有版本。
https://www.nuget.org/stats/packages/Microsoft.VisualStudio.Web.CodeGeneration.Design?groupby=Version
选取6.0.10来安装。
代码语言:text复制Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design -Version 6.0.10
执行以后,在csproj文件中,将写入如下信息。
代码语言:html复制 <ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="7.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.10">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="6.0.10" />
</ItemGroup>
问题解决了。
存疑事项
即便是安装了net7.0 的sdk和runtime,
代码语言:text复制dotnet --version
返回来的也是【7.0.100】
但是在vs2022中的项目的【target framework】中,没有.net7.0的选项。