每当我尝试生成迁移时,我都试图使用SQL Operations Studio从VS代码的终端生成数据库。
dotnet ef migrations add init
未处理的异常:System.IO.FileLoadException:无法加载文件或程序集'/usr/local/share/dotnet/sdk/2.1.401/DotnetTools/dotnet-ef/2.1.2/tools/netcoreapp2.1/任何/工具/netcoreapp2.0/任何/ef.dll”。找到的程序集的清单定义与程序集引用不匹配。 (来自HRESULT的异常:0x80131040)
这就是我的.csproj
的样子
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.1.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.1.2" />
</ItemGroup>
</Project>
有任何解决方法吗?
答案 0 :(得分:0)
如果您将Microsoft.EntityFrameworkCore.Design
软件包添加到错误的项目中,也会发生这种情况。
我将包裹添加到了project A (netcore)
。后来我决定将项目A定位为netstandard
。然后,我创建了引用Project B (netcore)
的{{1}}。
当我尝试在项目B中创建迁移时,构建成功,但是迁移会失败,因为在A而非B中引用了project A (now netstandard)
。将nuget引用移至B可以解决此问题。