昨天,我收到错误消息
无法获取 DbContext 的反射类型
尝试添加新控制器时。我的解决方案中已经有很多控制器,所以我不知道为什么突然发生这种情况。
然后我按照这个问题给出的解决方案进行操作,现在我面临着新的错误消息:
找不到适合指定文化或中立文化的任何资源。确保“SolutionName.DbSeedingResource.resources”在编译时正确嵌入或链接到程序集“SolutionName”中,或者确保所需的所有附属程序集均可加载并完全签名。
我不明白这个错误消息的含义。
资源文件包含一长串 JSON 格式的邮政编码,这些邮政编码在初始迁移时植入数据库中。
更新
我尝试将其添加到 csproj,但我仍然收到相同的错误消息:
<ItemGroup>
<EmbeddedResource Include="DbSeedingResource.resx" />
</ItemGroup>
更新2
我尝试从我的项目中删除 resx 文件,然后我再次收到此错误:
无法获取 DbContext 的反射类型
对于 NetCore 项目也有类似的问题,我注意到在添加迁移后(让我们将其命名为
WhateverMigration
),作为 EmbeddedResource 的 .resx
文件引用并未添加到 .csproj
,即使一切看起来都很好。所以我打开了我的 .csproj
文件并添加了:
<EmbeddedResource Update="Migrations\202107071914322_WhateverMigration.resx">
<Generator></Generator>
<DependentUpon>202107071914322_WhateverMigration.cs</DependentUpon>
</EmbeddedResource>
我在尝试运行 EF 迁移时遇到了类似的问题,我认为同样的答案也适用。
我的错误是
“找不到任何适合指定文化的资源或 中立文化。确保 “(Namespace).(MyMigrationName).resources”已正确嵌入或 在编译时链接到程序集“(MyAssembly)”,或者所有 所需的卫星程序集可加载并已完全签名。”
在 VS 解决方案资源管理器中,我单击文件旁边的三角形以查看 .resx 文件,我注意到用于迁移的 resx 文件未包含在解决方案中:
我右键单击了有问题的 .resx 文件,将其包含在解决方案中,然后他的“丢失文件”小图标被更令人放心和繁荣的东西所取代!一切都成功了。
不确定问题是如何产生的,但很高兴能得到解决。