尝试使用EF Core 3.1创建迁移时出现以下错误。
PM> add-migration InitialDB
Unable to resolve startup project ''.
Using project 'UI\UI.Web' as the startup project.
Build started...
Build succeeded.
System.IO.FileLoadException:无法加载文件或程序集'netstandard,Version = 2.1.0.0,Culture = neutral,PublicKeyToken = cc7b13ffcd2ddd51'。找到的程序集的清单定义与程序集引用不匹配。 (来自HRESULT的异常:0x80131040)
文件名:“ netstandard,Version = 2.1.0.0,Culture = neutral,PublicKeyToken = cc7b13ffcd2ddd51”在Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.AddMigration(字符串名称,字符串outputDir,字符串contextType)
在Microsoft.EntityFrameworkCore.Design.OperationExecutor.AddMigrationImpl(String name,String outputDir,String contextType)
在Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase中。<> c__DisplayClass3_0`1.b__0()
在Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(操作动作)处无法加载文件或程序集'netstandard,版本= 2.1.0.0,区域性=中性,PublicKeyToken = cc7b13ffcd2ddd51'。找到的程序集的清单定义与程序集引用不匹配。 (来自HRESULT的异常:0x80131040)
我是否需要做些什么才能使我的项目获得迁移以支持.NET Core 3.0 / 3.1?
任何帮助将不胜感激。
答案 0 :(得分:0)
最近,我将EF Core从2.2
升级到3.1.6
后,自己也遇到了同样的问题,在对问题进行了一些调查之后,如果您尝试将{{ 1}}在您的RuntimeFrameworkVersion
文件中,可以解决此问题。这似乎为我解决了这一问题,请记住,根据您的配置,只有某些兼容的.NET Core框架可用。如果您错误地将其设置为不存在的版本,则会看到此
.csproj
更新了开发环境所支持的It was not possible to find any compatible framework version
The framework 'Microsoft.NETCore.App', version '3.1.0' was not found.
- The following frameworks were found:
2.0.9 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
2.1.0 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
2.1.7 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
2.1.11 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
2.1.20 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
3.1.6 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
之后,您的RuntimeFrameworkVersion
可能看起来像这样
.csproj
希望这对您有所帮助,因为它对我有帮助。但是,如果没有,您也可以编辑<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
<GenerateRuntimeConfigurationFiles> true</GenerateRuntimeConfigurationFiles>
<RuntimeFrameworkVersion>3.1.6</RuntimeFrameworkVersion>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
</PropertyGroup>
文件以包括所有私有和实体资产
.csproj
P.S。第一次发布有关堆栈溢出的答案,因此,如果这不能帮到您,我谨此致歉,希望对您有所帮助。