19

我将正在处理的 Web 应用程序从一台机器移动到另一台机器。它是使用 .Net MVC 和 Entity Framework 构建的,但是当我执行Update-Database命令以更新数据库时,出现此错误:

Could not find any resources appropriate for the specified culture or the neutral culture.  Make sure "NameofMigration.resources" was correctly embedded or linked into assembly "NameofProject" at compile time, or that all the satellite assemblies required are loadable and fully signed.

有谁知道如何解决这个错误?

4

7 回答 7

50

当其他开发人员签入项目时(可能是由于合并问题),当迁移的 resx 部分未包含在项目文件中时,我遇到了类似的问题。您可能会发现 resx 文件在那里,但显示为灰色。如果存在,请尝试右键单击“NameofMigration.resx”文件并选择“包含在项目中”。如果它不存在,您最好在另一台机器上找到它并将其添加到项目中:-)

于 2013-07-05T08:30:40.540 回答
3

对于VS 2017,解决方案如下:

转到项目文件,对于所有迁移,应用以下格式:

 <Compile Include="Migrations\201804251606403_emailsWithEffort.cs" />
<Compile Include="Migrations\201804251606403_emailsWithEffort.Designer.cs">
  <DependentUpon>201804251606403_emailsWithEffort.cs</DependentUpon>
</Compile>

    <EmbeddedResource Include="Migrations\201804251606403_emailsWithEffort.resx">
  <DependentUpon>201804251606403_emailsWithEffort.cs</DependentUpon>
</EmbeddedResource>

我猜问题是在更改 Visual Studio 的版本时,描述依赖项的旧格式仍然存在,并且 Visual Studio 2017 无法正确解释它。

因此,应用上述格式(将格式更改为此),您可以让 Visual Studio 了解它的资源在哪里。

于 2019-03-26T12:24:50.477 回答
2

我认为问题(一个问题)是.resx文件被添加为“依赖”(嵌套在).cs文件,构建引擎的工作方式,“依赖”改变了嵌入资源的名称保存(类似于,它从基于文件名更改为基于类型名;我在其他情况下处理过这个问题,但无法确定)。

由于某种原因,这在使用 SDK .csproj 文件时会导致问题(我猜默认情况下 SDK .csproj在这种情况下不会更改资源名称,但迁移系统希望这样做)。

正如其他人所发布的那样,SDK .csproj 可以使用以下标记更改“依赖”资源的嵌入式资源命名方案,然后允许迁移系统找到嵌入式资源:

<EmbeddedResourceUseDependentUponConvention>
  true
</EmbeddedResourceUseDependentUponConvention>

这应该在<PropertyGroup>您的 SDK .csproj 文件中。

于 2021-09-20T16:49:19.373 回答
1

情况略有不同,我创建了一个新环境和数据库,并收到上述错误消息。

对于我的修复,我必须右键单击迁移文件(初始和 resx)并将属性设置为作为资源嵌入。之后更新数据库命令运行良好。

于 2017-08-17T01:54:27.867 回答
1

我遇到了同样的问题(VS 2017),这里提供的解决方案都不起作用。我通过清理解决方案并手动删除 bin 文件夹然后重新构建它来解决问题。

于 2018-07-03T12:53:07.547 回答
0

如果有人想查看源代码或编译器以了解发生这种情况的原因;我现在不喜欢。经过一个小时的修补,我的决心很奇怪。

当然,我一开始就不应该这样做,但是为了快速编写代码,我暂时将类添加到与生成的DbMigration 201906212110305_initial.cs. 这些临时类仅存在于同一文件中就导致了此错误。一旦我将它们移动到他们自己的文件中(无论如何我都会这样做),运行时错误就消失了。

于 2019-06-22T02:54:11.603 回答
0

卸载然后重新加载迁移文件对我有用!

于 2018-02-08T17:12:33.047 回答