4

我目前正在为新数据库创建 InitialCreate 迁移。我是这个迁移框架的新手,不知道它究竟会生成什么,我一直在运行update-database以查看结果,删除数据库然后update-database在进行一些更改后再次运行以查看结果。

现在我做了两次更改,运行更新并收到如下错误:

应用基于代码的迁移:201209121936571_InitialCreate。System.Resources.MissingManifestResourceException:找不到适合指定区域性或中性区域性的任何资源。确保“$assemblyName$.resources”在编译时被正确嵌入或链接到程序集“$assemblyName$”,或者所有所需的附属程序集都是可加载的并且完全签名。在 [堆栈跟踪]

然后它以红色结束

找不到适合指定区域性或中性区域性的任何资源。确保“$assemblyName$.Migrations.InitialCreate.resources”在编译时被正确嵌入或链接到程序集“$assemblyName$”,或者所有需要的附属程序集都是可加载的并且完全签名。

我第一次遇到这种情况时,我删除了迁移文件夹,enable-migrations重新进行了更改并能够运行迁移。

它又发生了,我不想每次发生这种情况时都必须重新创建文件。有谁知道如何纠正这个问题以使迁移再次工作?

4

3 回答 3

14

对我来说,解决方案是在我投影的 .csproj 文件中添加以下代码,里面<PropertyGroup>

<EmbeddedResourceUseDependentUponConvention>true</EmbeddedResourceUseDependentUponConvention>

之后,Update-Database 命令运行良好。

于 2020-01-03T16:14:58.357 回答
2

我最终在收集所有我想问这个问题的信息的过程中发现了这一点。即,尝试重现该问题。

事实证明,如果您将 DbMigration 的继承者以外的类作为文件中的第一个类,则资源文件将采用另一个类的名称,而不是破坏迁移的迁移。

我在这里提交了一个错误报告。

于 2012-09-14T03:31:18.213 回答
1

在 Full .Net Framework 中遇到实体迁移、实体 6.4 和 Microsoft.Net.SDK 样式项目的问题。

我通过编辑我的数据项目解决了这个问题:

  <ItemGroup>
    <EmbeddedResource Update="**\*.resx">
      <DependentUpon>$([System.String]::Copy('%(FileName)')).cs</DependentUpon>
    </EmbeddedResource>
  </ItemGroup>
于 2020-11-26T08:47:59.353 回答